Page 124 - 《软件学报》2026年第3期
P. 124

王可 等: 面向批量更新的向量索引召回率优化                                                          1087


                 与查询两个核心阶段.
                    在图的构建阶段, 算法为数据集中的所有节点构建高效导航的近邻图. 该构建过程是增量式的: 新节点                               v 被逐
                 一插入图中, 并为每个       v 执行邻居查找与连接操作. 具体而言, 邻居查找过程复用了查询阶段的贪心搜索机制, 即
                 从图的随机入口点出发, 迭代搜索以定位一组距离                v 最近的候选邻居集. 随后, 算法从候选邻居中筛选预设数量的
                 节点作为最终邻居, 并建立从         v 指向它们的有向边. 为了保证索引的存储开销与查询复杂度维持在可控范围内, 每
                 个节点的最大出度受一个固定上限值约束. 重复此流程直至所有数据点入图, 即完成了完整近邻图的构建.
                    基于图的查询阶段则充分利用已构建的图结构实现高效检索, 其贪心寻路过程如图                             1  所示. 查询通常从整个
                 图中所有节点中随机选取的一个入口点开始, 迭代访问当前节点的邻居集. 在每步迭代中, 算法选择离查询点更近
                 的未访问邻居作为下一个当前节点, 并维护容量有限的动态候选结果集. 当邻居中不存在比候选集中最远点更接
                 近查询点的新节点时, 搜索收敛并返回候选集作为近似最近邻结果. 这种基于图的贪心寻路策略通过局部搜索快
                 速收敛至目标区域, 无须遍历全图, 实现高效率检索.

                              C: 候选集  R: 结果集  visited: 标记节点的访问    (1)   C: A
                                                                       R:
                                                        C           visited: A
                                            D
                                 E                                (2)   C: B G D E
                                                                       R: A
                                                入口点
                                                                    visited: A B D E G
                                               A                  (3)   C: H G C D E
                                                        B              R: A B
                                        F
                                                                    visited: A B C D E G H
                                   I                              (4)   C: G C D E K J
                                                   G
                                                           H           R: A B H
                                                                    visited: A B C D E G H J K
                                          J             q         (5)   C: C D E F K J
                                                  K    查询              R: G B H
                                                                    visited: A B C D E F G H J K
                                                 图 1 图向量索引的查询过程

                    基于上述基本原理, 图向量索引经历了一系列演进. 早期的探索以                     Delaunay  图为代表. 该方法虽能保证搜索
                 的精确性, 但其过高的构建复杂度使其难以应用于大规模数据集. 为了缓解时间复杂度与搜索精度的固有矛盾,
                 Malkov  等人  [21] 提出了以构建小世界网络特性的邻近图为特征的            NSW  索引, 其长链接负责实现高效的全局路由,
                 而短链接则保障了在目标区域内的局部精确查找, 从而首次在查询效率与召回精度间取得了良好的平衡. 此后的
                 研究大多聚焦于如何构建拓扑更优的邻近图, 其中最具影响力的是                      HNSW  索引.
                    除了在算法层面优化索引拓扑以提升效率与精度外, 索引的可扩展性, 特别是如何将图索引部署于超过单机
                 内存的海量数据集上, 是该领域的另一大挑战. 为了应对此挑战, 研究人员提出了多种基于外存的图索引方案. 其
                 中, 以  DiskANN [34−36] 和  SPTAG [37] 为代表的工作影响最为深远, 其核心思想在于构建一种内存-磁盘混合架构: 在内
                 存中仅保留一个小型的稀疏导航图, 而将包含完整连接信息的全量数据存储于磁盘. 查询时, 首先利用内存中的导
                 航图快速定位至磁盘上的一个或多个粗粒度区域, 随后通过精心设计的磁盘                          I/O  策略, 高效地读取局部图结构以
                 完成最终的精确查找. 这种分层处理机制以可控的                I/O  开销与精度损失为代价, 成功地将图索引的应用扩展至                10
                 亿规模的向量数据集.
                    在众多基于图的内存索引中, 由           Malkov  等人  [29] 提出的  HNSW  索引结合了层级化图结构与高效的邻居选择
                 策略, 在性能上取得了重大突破, 已成为当前应用最为广泛的向量索引之一. HNSW                        的卓越性能主要源于以下两
                 大核心机制.
                    ● HNSW  的层级化图结构. 为加速搜索过程, HNSW           引入了一种多层图的组织方式. 如图           2  所示, 该结构以包
                 含了所有数据点的底层稠密图           (第  0  层) 为基础结构, 保证了查询的高召回率. 同时, 通过对下层节点进行概率性
                 采样, 构建出上层稀疏图作为实现远距离跳转的快速路径. 在插入新节点时, 算法会依据一个指数衰减的概率分布
                 函数为其随机指派一个最大层数            l max , 并将该节点添加至从   0  到  l ma 的每一层图中. 该层数通过对一个服从指数
                                                                     x
   119   120   121   122   123   124   125   126   127   128   129