Skip to main content
QUICK REVIEW

[论文解读] Searching in one billion vectors: re-rank with source coding

Hervé Jeǵou, Romain Tavenard|arXiv (Cornell University)|Feb 18, 2011
Advanced Image and Video Retrieval Techniques参考文献 11被引用 34
一句话总结

本文提出了一种基于源编码的内存高效重排序方法,用于十亿规模向量数据库中的近似最近邻搜索。通过利用量化码而非从磁盘访问完整向量来优化近似距离,该方法在极低性能开销下实现了最先进水平的召回率,其有效性已在包含十亿个128维SIFT向量的新公共数据集上得到验证。

ABSTRACT

Recent indexing techniques inspired by source coding have been shown successful to index billions of high-dimensional vectors in memory. In this paper, we propose an approach that re-ranks the neighbor hypotheses obtained by these compressed-domain indexing methods. In contrast to the usual post-verification scheme, which performs exact distance calculation on the short-list of hypotheses, the estimated distances are refined based on short quantization codes, to avoid reading the full vectors from disk. We have released a new public dataset of one billion 128-dimensional vectors and proposed an experimental setup to evaluate high dimensional indexing algorithms on a realistic scale. Experiments show that our method accurately and efficiently re-ranks the neighbor hypotheses using little memory compared to the full vectors representation.

研究动机与目标

  • 解决大规模近似最近邻搜索中后处理验证带来的高内存和I/O开销问题。
  • 通过利用压缩的量化码,实现在不从磁盘访问完整向量的前提下提升搜索精度。
  • 在十亿向量的真实规模下评估高维索引方法的性能。
  • 证明仅使用短码进行重排序即可在极低计算开销下实现接近完美的召回率。

提出的方法

  • 该方法利用存储在RAM中的短量化码估计的距离,对压缩域索引中生成的邻居假设进行重排序,从而避免访问完整向量。
  • 通过扩展产品量化(PQ),利用存储在内存中的附加码书信息对近似距离进行优化。
  • 该方法采用两阶段流程:第一阶段通过产品量化进行快速近似搜索;第二阶段通过量化表示计算优化后的距离,完成重排序。
  • 优化过程基于一种模型,其中通过逐层使用码本信息逐步减少重建误差,类似于可扩展的源编码。
  • 使用一个包含十亿个128维SIFT向量的新公共数据集进行评估,真实最近邻通过精确线性扫描计算得出。
  • 重排序步骤仅使用量化码(例如每向量8–64字节)来估计距离,显著减少了磁盘访问。

实验结果

研究问题

  • RQ1基于短量化码的重排序是否能在不从磁盘访问完整向量的前提下,提升十亿规模向量搜索的召回率?
  • RQ2所提出的重排序方法与使用精确距离的标准后处理验证相比,性能如何?
  • RQ3增加用于重排序的字节数对搜索精度和效率有何影响?
  • RQ4在数据库规模增大时,该方法在召回率下降和异常值处理方面的可扩展性如何?

主要发现

  • 所提出的重排序方法(ADC+R 和 IVFADC+R)在召回率上显著优于基线方法:在完整十亿向量数据集上,召回率@100 从 ADC 的 0.586 提升至 ADC+R 的 0.951。
  • 当使用32字节进行重排序时,方法实现了 98.5% 的召回率@100,接近精确搜索性能,且仅依赖压缩码。
  • 添加重排序后,每查询的查询时间仅增加 0.06 秒(从 5.626 秒增至 5.686 秒),表明性能开销极低。
  • 在相同的内存预算下,ADC+R 的召回率高于 ADC,且由于重排序成本极低,搜索速度大约翻倍。
  • 随着数据库规模增大,重排序步骤变得愈发关键,使用精确重排序(m′=16)时性能下降更平缓,相比无重排序表现更优。
  • 当使用64字节进行重排序时,方法在召回率@100 上实现了接近完美的 100% 召回率,充分证明了其在大规模场景下的有效性。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。