向量归一化(如L2归一化)在RAG中的作用
向量归一化是稠密检索(如基于Transformer的向量表示)的关键预处理步骤,核心作用体现在数学原理和工程实践两方面:
1. 数学层面:确保相似度计算的合理性
- 余弦相似度的本质要求:
稠密检索常用余弦相似度衡量向量相关性,公式为:
cosine(a,b)=a⋅b∣∣a∣∣⋅∣∣b∣∣\text{cosine}(a, b) = \frac{a \cdot b}{||a|| \cdot ||b||}cosine(a,b)=∣∣a∣∣⋅∣∣b∣∣a⋅b
统一度量,归一化后就能在同一个 “标尺” 下衡量语义相似性了。若向量未归一化(∣∣a∣∣||a||∣∣a∣∣、∣∣b∣∣||b||∣∣b∣∣不为1),相似度会受向量长度影响(例如语义相似但长度差异大的向量可能被误判为不相关)。
L2归一化(将向量缩放到单位长度,∣∣a∣∣=1||a||=1∣∣a∣∣=1)可使余弦相似度简化为向量点积,仅反映方向相关性,避免长度偏差。
- 数值稳定性优化:
归一化后向量元素的数值范围被约束(如[−1,1][-1, 1][−1,1]),减少大规模向量检索时的浮点运算误差,尤其在高维空间中(如768维的BERT向量),避免因数值溢出导致的相似度计算错误。
2. 工程层面:提升检索效率与一致性
检索效率优化:
归一化后,向量相似度计算可简化为点积运算,适配硬件加速(如GPU/TPU的矩阵乘法优化);同时,向量数据库(如FAISS)的索引构建(如IVF-PQ)依赖归一化后的向量分布,确保聚类和量化精度。跨模型/跨批次的兼容性:
不同模型或不同批次生成的向量可能因训练参数、输入数据差异导致模长波动。归一化可消除这种波动,使不同来源的向量在同一度量空间中可比(例如,预训练模型和微调模型生成的向量经归一化后,可直接用余弦相似度检索)。温度系数调优的基础:
在稠密检索中,常通过温度系数τ\tauτ调整相似度分布(如sim′=sim/τ\text{sim}' = \text{sim}/\tausim′=sim/τ),归一化后的向量点积范围固定([−1,1][-1, 1][−1,1]),使温度系数的调节效果更稳定,便于控制检索结果的聚焦程度。