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

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



                                            0.99
                                                        Batch-100  Batch-150  Batch-200
                                            0.97
                                            0.95
                                            召回率  0.93
                                            0.91
                                            0.89
                                            0.87
                                            0.85
                                                 1 000  2 000  3 000  4 000  5 000
                                                 (1%)  (2%)   (3%)  (4%)  (5%)
                                                           相似向量数量
                                       图 4 GIST1M  数据集上的平均召回率 (M=24, efC=64)

                    ● 索引参数的敏感度分析. 实验揭示了索引构建参数对召回率退化的敏感性.
                    (1) 查询深度参数    efSearch. 增大  efSearch  可通过扩展搜索广度提升召回率. 例如, 在图        4  的相似数据占比为
                 2%  时, 将  efSearch  从  100  提升至  200, 召回率提升约  2%. 然而, 即便采用较高的  efSearch  值, 负载为相似数据占比
                 为  1%  与  5%  时, 召回率的差距仍然十分显著. 这一结果表明, HNSW          召回率的性能损失与索引结构紧密相关, 无
                 法仅通过增加查询时的搜索深度来弥补.
                    (2) 索引构建参数    M  与  efConstruction. 增大  M  与  efConstruction  可构建更高连通密度的图结构, 这会显著提
                 升索引的鲁棒性, 并减弱性能衰减现象. 同时, 更大的              M  与  efConstruction  会增加邻居搜索的广度, 提高邻居质量,
                 但也会增加构建的开销.
                    我们在   MSong  与  Enron  数据集上进行了相同的实验. 实验结果如图          5  所示, MSong  的召回率出现平滑下降的
                 趋势. 在  efSearch  为  100  时, 查询召回率从  0.95 (相似数据占比为  1%) 骤降至  0.7 (相似数据占比为    5%), 下降幅度
                 接近  15%. 其召回率变化趋势与       GIST1M  相同, 并且下降效果更为明显; 而在维度更高且结构复杂的                  Enron  数据
                 集上, 在相似数据占比从       1%  提升到  5%  的过程中, 召回率虽然出现了波动, 我们分析了单条查询的明细数据, 发
                 现存在部分查询向量其召回率值与平均召回率的偏差较大, 但整体趋势仍为下降. 在                          efSearch  为  200  时, 召回率下
                 降的幅度最大, 超过      6%.

                        1.00                                    0.95
                                    Batch-100  Batch-150  Batch-200  0.94   Batch-100  Batch-150  Batch-200
                        0.95
                                                                0.93
                        0.90                                    0.92
                       召回率  0.85                                召回率  0.90
                                                                0.91
                        0.80                                    0.89
                                                                0.88
                        0.75                                    0.87
                                                                0.86
                        0.70                                    0.85
                             1 000  2 000  3 000  4 000  5 000        900  1 800  2 700  3 600  4 500
                              (1%)  (2%)  (3%)  (4%)  (5%)           (1%)  (2%)   (3%)  (4%)  (5%)
                                       相似向量数量                                  相似向量数量
                               (a) MSong召回率变化 (M=48, efC=100)           (b) Enron召回率变化 (M=24, efC=64)
                                         图 5 不同相似数据占比下, 平均召回率下降现象

                    以上  3  组实验的结果都展现出召回率下降的问题, 也证实了该召回率退化是                      HNSW  应对批量相似数据写入
                 的内在结构性缺陷, 而非特定数据分布的偶然现象.
                    在批量插入相似数据的场景中, 实验中出现了                HNSW  索引召回率显著下降的现象, 但该现象背后的微观结
                 构演化机制尚未明确. 基于此, 第         2.3  节将深入拓扑层面精细分析索引结构的演变, 进一步探究索引召回率退化的
                 原因.
                  2.3   相似数据邻居数量的动态变化
                    ● 相似数据邻居数. 该指标通过观测索引的微观拓扑, 量化图的局部连通性. 其定义如下: 对于批量插入相似
   123   124   125   126   127   128   129   130   131   132   133