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

王嘉翼 等: 向量数据库的      K  近邻图高效更新方法                                                 1011


                 然而, 当嵌入模型经过微调后, 数据点的嵌入向量会发生变化, 导致                   K  近邻图中原有的邻居关系不再准确. 传统的
                 解决方法通常依赖于全图重建来适应这些变化, 但这一过程计算量大、效率低, 难以满足大规模应用或更加实时
                 的需求.
                    针对这一问题, 本文提出了一种高效的             K  近邻图更新方法     FastAdjust, 其系统框架如图   3  所示. FastAdjust 的
                 核心思想是在嵌入微调之前, 对数据进行一系列预处理以得到对向量间关联更细致的信息, 使得在嵌入模型被微
                 调后, 可以利用这些预处理得到的信息快速调整               K  近邻图, 从而有效适应嵌入向量的变化.

                                    嵌入微调前预处理                             嵌入微调后调整 K 近邻图
                        乘积量化计算                                            动态分配检查规模
                                                  聚类中心距离          计算每条数据       分配检查比例    K 近邻变化大的点
                        M 份                       计算与排序            变化幅度       60         分配更多检查数量
                                                                             K 近邻变化数量  40 20  根据权重:
                                                                                           数据变化幅度
                                        第 i 条数据                   微调前 微调后                  数据密度估计
                                                                               0  5  10  15  20  25
                                                                             嵌入向量变化幅度与周围密度乘积
                                                …   …  …  …
                                                                          迭代更新 K 近邻图
                        K 近邻密度估计
                                                                枚举邻居对      基于聚类快速过滤       更新 K 近邻图
                                  KNN 距离                                                        A
                                                                     A  基于乘积量化结果
                                               密度的估计:           B       快速过滤距离远         过滤  B
                                  …          KNN 中后 40 个近邻             D   的点                     D
                        第 i 条数据   …            距离的极差
                                                                C                          C
                                                                               迭代至收敛
                                                 图 3 FastAdjust 系统框架图

                    在  FastAdjust 的预处理阶段, 其首先对数据进行基于乘积量化编码的处理, 借助这一信息, 在 K                   近邻图更新阶
                 段, 能够快速为每个数据点定位距离较近的数据子集. 此外, FastAdjust 还会利用微调前                   K  近邻的分布情况来估算
                 每个数据点周围数据的密度, 以辅助在            K  近邻图更新阶段更准确、快速地估计每个数据点               K  近邻关系的变化程度.
                    在嵌入模型微调后, FastAdjust 进一步利用“邻居的邻居也很可能是邻居”这一观察, 不断对                       K  近邻图中的节
                 点采样邻居对, 通过代价较低的过滤或是实际距离计算, 判断邻居对能否成为彼此的邻居 (在下文中, 将这一过程
                 称作检查). 通过迭代的方式, FastAdjust 能够在嵌入微调后的向量空间上逐步更新微调前构建的                       K  近邻图. 与传统
                 的  NN-descent 方法不同, FastAdjust 充分考虑了嵌入微调带来的细微变化特性, 从而实现更加高效的更新. 具体来
                 说, 下文将详细介绍      FastAdjust 使用的两个关键子策略: 候选数据定位与动态更新资源分配. 这两个子策略分别通
                 过避免不必要的距离计算和识别不同数据点                K  近邻变化幅度, 并以此分配更新资源, 实现优化            K  近邻图调整效率
                 的目标.
                    (1) 基于乘积量化的候选数据定位: 微调前后数据的嵌入向量变化有限, 因此微调前距离很远的嵌入向量在微
                 调后仍然难以形成近邻关系. 基于这一特点, FastAdjust 提出了一种基于乘积量化的候选数据定位方法, 利用预处
                 理阶段计算的信息, 快速定位距离较近的数据点, 并以低代价高效过滤较远的点.
                    (2) 基于数据密度的动态更新资源分配: 此外, FastAdjust 还依据预处理阶段计算的密度信息, 结合数据微调后
                 的变化程度, 为每个数据点分配不同的更新资源 (检查次数), 从而实现更高效、更精准的                         K  近邻图更新.
                    通过这种高效的       K  近邻图调整策略, FastAdjust 能够避免全图重建的巨大开销, 在嵌入微调后迅速调整图结
                 构, 从而有效减少嵌入模型微调对          K  近邻图结构造成的影响.
                  3.2   基于乘积量化的候选数据定位
                    在模型微调的场景中, 一个显著的特点是微调对每个数据点的影响一般是有限的, 也就是数据嵌入的变化幅
                 度较小. 因此, 微调后数据点的嵌入向量变化及其邻居变化通常是局部性的: 微调后某个数据点的新邻居往往是其
                 微调前距离较近的点. 基于这一观察, 为了避免全局搜索带来的高计算开销, 我们可以在调整                            K  近邻图时, 重点关
   43   44   45   46   47   48   49   50   51   52   53