认识AdANNS:一种新颖的框架,利用自适应表示来改善ANNS管道不同阶段的准确度-计算权衡
为了获取与给定查询相似的信息,大规模的网络搜索引擎会训练一个编码器来包含查询,然后将编码器连接到一个近似最近邻搜索(ANNS)管道中。学习到的表示通常是僵硬的、高维向量,通常作为整个ANNS管道中的原始形式使用。它们能够准确捕捉尾部查询和数据点,因此可能导致计算开销较大的检索。
检索管道的一个重要部分是学习表示的语义搜索。学习一个神经网络,将查询和大量(N)数据点嵌入到一个d维向量空间中,是语义搜索方法的基本要求。ANNS的所有步骤都使用了现有语义搜索算法所学习的相同信息,这些算法是僵硬表示(RRs)。也就是说,虽然ANNS索引允许在搜索设计空间中使用广泛的参数,以最大化准确性-计算权衡,但输入数据的维度通常被认为是固定的。
ANNS的不同阶段可以使用不同容量的自适应表示来实现比刚性表示更好的准确性-计算权衡,即能够使用更多的近似计算的ANNS阶段应该使用同一数据点的较低容量表示。研究人员提供了AdANNS,一种利用Matryoshka表示所提供的适应性的新型ANNS设计框架。
研究人员展示了使用AdANNS的独特关键ANNS构建模块(如搜索数据结构(AdANNS-IVF)和量化(AdANNS-OPQ))实现的最先进的准确性-计算权衡。例如,AdANNS-IVF在使用相同的计算预算时比基于僵硬表示的IVF在ImageNet检索上实现了1.5%以上的准确性,而在相同数据集上运行的速度快了90倍。AdANNS-OPQ是OPQ的32字节变体,使用灵活表示构建,达到了自然问题的64字节OPQ基准的相同准确性。他们还证明了AdANNS的好处可以应用于最先进的组合ANNS索引,利用搜索结构和量化两者。最后,他们展示了使用Matryoshka表示构建的无适应性的ANNS索引可以利用AdANNS进行计算感知搜索。
请访问https://github.com/RAIVNLab/AdANNS获取源代码。
主要特点
- 使用AdANNS开发新的搜索数据结构和量化技术可以实现更好的准确性-计算权衡。
- AdANNS-IVF比传统IVF更快,同时将准确性提高了1.5%。
- AdANNS-OPQ具有与黄金标准相同的精度,成本却只有一小部分。
- AdANNS强大的搜索数据结构(AdANNS-IVF)和量化(AdANNS-OPQ)在准确性-计算权衡方面明显优于最先进的替代品。
- 除了在推理过程中实现计算感知弹性搜索之外,AdANNS还可以推广到最先进的组合ANNS索引。
AdANNS-自适应ANNS
AdANNS是一种提高语义搜索组件的准确性-计算权衡的系统,它利用Matryoshka表示的固有灵活性。典型ANNS管道有两个主要部分:(a)索引和存储数据点的搜索数据结构;(b)提供查询和一组数据点之间(粗略)距离的查询点计算方法。
在本研究中,我们证明了AdANNS可以用来提高两个ANNS子系统的性能,并通过计算努力和准确性之间的权衡来量化这些改进。具体而言,他们引入了基于AdANNS的索引结构AdANNS-IVF,该结构类似于更常见的IVF结构和相关的ScaNN结构。此外,他们借助AdANNS-OPQ在OPQ中引入了表示适应性,这是一种事实上的标准量化。研究人员还展示了两个混合方法的示例:使用AdANNS的IVFOPQ变体AdANNS-IVFOPQ和DiskANN的变体AdANNS-DiskANN。与使用RR构建的IVF索引相比,实验表明AdANNS-IVF在准确性-计算最优方面具有显著的优势。AdANNS-OPQ被证明与RR上的OPQ一样准确,但成本显著降低。
AdANNS 是设计有搜索结构的人工神经网络,可以适应各种大规模的使用情况,每种情况对训练和推理的资源需求都是独特的。然而,由于索引创建和存储问题,有时用户不能搜索设计空间。
总之
AdANNS 是由华盛顿大学、谷歌研究和哈佛大学的一组研究人员提出的,通过利用跨多个 ANNS 管道的自适应表示来增强准确性-计算的权衡。与传统的 ANNS 建筑模块不同,这些模块始终使用相同的不灵活表示,AdANNS 利用套娃表示的固有灵活性构建出卓越的建筑模块。对于两个主要的 ANNS 建筑模块——搜索数据结构(AdANNS-IVF)和量化(AdANNS-OPQ),AdANNS 实现了 SOTA 的准确性-计算权衡。最后,通过组合基于 AdANNS 的建筑模块,可以构建出改进的真实世界复合 ANNS 索引,实现计算感知的弹性搜索,相比强基准线,成本降低了多达 8 倍。