趋近智
虽然像HNSW这类基于图的方法构建精密的邻域图用于搜索,但倒排文件索引 (IVF) 方法采取不同的途径,借鉴了传统信息检索和聚类的原理。IVF将整个向量 (vector)空间划分为不同的区域,或称单元,并将搜索工作集中在少数相关区域,显著减少所需的距离计算次数。
IVF的核心是聚类。在索引构建阶段:
IVF索引的结构。数据库向量(圆形)被分配到其最近的中心点(菱形,C1-C3),形成倒排列表(L1-L3)。查询向量(星形)首先与中心点进行比较;然后,只搜索与最近中心点对应的列表(例如,如果
nprobe=1,则搜索L2)。
当查询向量到来时,搜索过程如下:
nprobe个中心点。nprobe是一个重要的调优参数 (parameter),通常是一个小的整数(例如1、5、10)。nprobe个中心点对应的倒排列表中的向量。IVF的有效性取决于聚类的质量和nprobe的选择。如果中心点能很好地划分空间,只搜索少数列表会大幅剪枝搜索空间。然而,增加nprobe会提高找到真实最近邻的可能性(更高的召回率),但会增加搜索时间,因为需要扫描更多的列表。
基本的IVF方法,通常称为IVFFlat,将完整的原始向量 (vector)存储在每个倒排列表中。虽然简单,但如果向量维度较高,它仍然可能占用大量内存,并且如果这些列表很大,在选定列表中的搜索可能会很慢。为缓解这些问题,IVF常与向量压缩技术结合使用,主要是乘积量化 (quantization)(PQ),本章稍后将详细介绍。
最常见且有效的一种变体是IVFPQ。它对基本IVF结构进行了如下修改:
nprobe个最近的中心点。IVFPQ的优势很明显:
然而,这会以牺牲准确性为代价。量化会引入近似误差。使用ADC计算的距离是对真实距离的估算。这意味着IVFPQ可能会遗漏一些IVFFlat能在探测到的列表中找到的真实最近邻。
k和nprobe之外,调整PQ参数 (parameter)(子量化器数量、每个子量化器的位数)也变得重要。nprobe)非常重要。
nprobe较小,搜索可能会更快,但列表可能过大,不利于高效的内部搜索。nprobe来保持召回率。nprobe直接控制着搜索速度和召回率之间的权衡。IVF的多种形式,特别是IVFPQ,是一系列强大且广泛使用的ANN算法。与像HNSW这类基于图的方法相比,它们提供了一组不同的权衡,尤其擅长在内存受限的环境中运行,并通过像和nprobe这样的参数提供可调的性能。了解它们如何划分空间以及选择性地压缩向量,对于构建大规模向量搜索系统非常重要。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造