跳到主内容
快讯直播
AI智模界
AI 词典

L2 归一化:检索前那一步别省

一句话定义:L2 归一化(AI 词典:Embedding">Embedding Normalization)就是把一条嵌入向量(embedding)的长度统一缩成 1,只留方向、丢掉大小。

原理:一条 embedding 就是一串小数,比如 [0.6, 0.8]。它的 L2 范数是各分量平方和再开根号:√(0.36+0.64)=1。把每个分量除以该范数,向量就落到长度恒为 1 的“单位球面”上。三维、上千维同理,只是画不出来。

打个送快递的比方:方向是“往东北走三公里再往南两公里”,长度是“总共走了多远”。归一化相当于规定“地址只报朝向,距离一律记作 1”,于是两两比较时,比的就是朝向是否一致。

为什么不做会乱:余弦相似度(cosine similarity)只看夹角,公式是 cosθ = (a·b)/(|a||b|)。两个向量做内积(dot product)时,结果里含着 |a|、|b| 这些长度因子。若一边长 100、一边长 1,内积的大小几乎由长度决定,方向上的细微吻合会被淹没。排序于是变成“谁长谁靠前”,而不是“谁相关谁靠前”——对某些模型,长文本的向量范数天然偏大,长文档就会凭长度压制真正相关的结果。

归一化之后 |a|=|b|=1,内积恰好等于余弦相似度,这也是向量库敢用内积索引的原因:快,且结果与余弦一致。同理,归一化后欧氏距离的排序也和余弦一致(||a−b||² = 2−2cosθ)。

做法比的是什么排序依据
原始向量内积方向 + 长度长度会干扰排序
L2 归一化后内积只看方向等价于余弦相似度
逐维标准化(z-score)每一维的分布与“比方向”不是一回事

容易混的地方:标准化(standardization)是减均值除标准差,针对单维分布;L2 归一化针对整条向量的长度。前者是特征预处理,后者是相似度计算的前置条件,别互相替代。

实操提醒:入库和查询要用同一套规则,一边归一化一边不做,检索结果会整体漂移。除以范数一般是一行代码,但要处理零向量(全零向量没有方向,范数为 0,需特判)。有些 embedding 模型输出本身已经归一化,选向量库的“余弦”和“内积”选项时二选一即可,避免重复处理;具体以你所用模型和向量库的官方页面为准。

对普通人的意义:你在网盘、客服知识库里搜出来的结果好不好,取决于这次看不见的除法做没做。它不花什么算力,却是检索质量的分水岭。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。