网易首页 > 网易号 > 正文 申请入驻

7 种向量相似度度量:原理、差异与适用场景

0
分享至

来源:清华大学数据科学研究院数据派

本文约3000字,建议阅读5分钟

度量选择并非一次性的架构决策,而是持续存在的产品风险。

AI 搜索、RAG Pipeline 和推荐引擎底层采用的距离度量(distance metric)在数学层面定义了产品里的“相似”。


“其背后的数学原理并不复杂,但在生产环境中实现规模化并非如此。你需要为自己的使用场景选择正确的相似度度量,选择能在大规模场景下将延迟控制在 100ms 以内的算法,还要构建一套在数百万个向量中搜索时不会成为瓶颈的基础设施。”——Rini Vasan(Redis 作者)

向量 Embedding 到底是什么

理解这些度量前需要先建立一个基本概念:向量 Embedding 本质上是一组浮点数。因为模型处理的每项内容,无论是用户查询、产品描述还是基因组学记录,都会转换成这样的数值数组。

以OpenAI 的 text-embedding-3-large 模型为例它会生成包含 3,072 个数字的数组,而BERT-base 则生成 768 个。数组把语义表示为巨大坐标空间中的一个点。

相似性搜索(similarity search)要做的就是在这个空间中找出与查询点“接近”的点。“接近”的定义完全取决于所选度量;同一数据集换一种计算方式,排序结果可能截然不同。

Weaviate、Pinecone 和 Redis 工程团队都确认了同一条原则:距离度量应当匹配 Embedding 模型训练时使用的损失函数。生产级 AI 系统出现无声质量回退,最常见的原因就是违背了这条原则。

度量 1:余弦相似度(Cosine Similarity)

余弦相似度衡量的是两个向量的夹角,而非两者之间的距离。向量有多长并不参与判断,方向才是核心。可以把两个向量想成两艘驶向东北的船:一艘航行 10 英里,另一艘航行 1,000 英里,两者依旧“相似”,因为方向一致。余弦相似度采用的正是这个逻辑。

放在文本场景中,一篇文档使用“水果”30 次,另一篇只使用 10 次,两者表达的语义仍可能完全相同。它们的向量模长不同,方向却一致。余弦归一化(cosine normalization)可以减轻长度偏差,因而成了 NLP、语义搜索、文档聚类和跨语言 Embedding 比较的行业标准。

不使用余弦相似度时,模长信息会完全丢失。假设向量大小本身携带信号,例如一名高频用户评过 500 件产品,另一名低活跃用户只评过 5 件,余弦相似度仍会给两人相同权重。推荐系统会就此埋下难以察觉的产品缺陷。

度量 2:点积(Dot Product,Inner Product)

点积把方向一致程度和模长放在一起衡量:两个向量中每一对对应数字相乘,再把结果相加。

当两个向量都经过单位归一化,也就是长度被缩放到正好为 1 时,点积与余弦相似度给出的排序在数学上完全一致。

这一点会直接影响基础设施成本。点积省去了余弦公式里的归一化除法,计算开销更低;Pinecone 等生产系统也明确推荐“建立索引时归一化 Embedding,查询时使用点积”的模式。

点积风险在于如果简单理解成“更快的余弦相似度”,却忽略向量是否已经归一化。对于采用余弦损失训练但未经归一化的 Embedding,点积会混淆方向和模长,召回率随之下降,系统却未必会报错。

度量 3:欧几里得距离(Euclidean Distance,L2)

欧几里得距离就是两点之间的直线距离,类似地图上两个地点间的“直线飞行”距离。数值为 0表示向量完全相同;数值越大,差异越大。

方向和模长都会纳入计算。当特征值之间的原始差异本身有意义时,欧几里得距离通常更合适。购买 100 件商品的用户与只购买 1 件商品的用户确实不同,这项度量会直接编码差异。

它的限制出现在超高维空间里。维度达到 1,000 以上时,可能发生距离集中(distance concentration):点与点之间的成对距离逐渐收敛到同一个值,“最近”和“最远”几乎无法区分。

现代 Transformer Embedding 借助训练缓解了部分影响,但这个架构约束依然存在,应在技术评审中把它标记出来。

度量 4:曼哈顿距离(Manhattan Distance,L1)

曼哈顿距离逐维计算绝对差值再将结果求和。它就像在城市网格中行走,只能沿街区一段一段前进,不能斜穿;名称也直接取自纽约市的街道布局。

欧几里得距离会对差值求平方,某个离群维度,也就是一个极端特征值,可能被放大。曼哈顿距离不做平方运算,每个维度的贡献保持线性,所以面对偶发噪声或极端特征时更稳健。

硬件会影响实际计算速度。在支持 AVX SIMD 指令的现代 CPU 上,欧几里得距离有时反而更快:平方只需一条乘法指令,取绝对值则需要条件操作。不要预设 L1 一定更快应在目标硬件上进行基准测试。

度量 5:Jaccard 相似度(Jaccard Similarity)

Jaccard 面向集合而非几何向量。它计算两个集合的重叠元素占全部合并元素的比例,也就是交集除以并集。得分为 1.0 代表完全重叠,得分为 0 则代表没有共同元素。

可以把问题理解为:“两个购物车里有多少共同商品?”二元存在/不存在数据、标签系统、关键词重叠和大规模近重复文档检测,都适合采用 Jaccard。产品 Pipeline 如果处理稀疏二元特征向量、共现数据或标签匹配,也应把它纳入评估范围。

边界同样清楚:Jaccard 从根本上不适用于稠密浮点 Embedding。将它套在 Transformer 模型产生的连续值向量上结果没有意义。

度量 6:Pearson 相关系数(Pearson Correlation)

Pearson 相关系数可以理解为用于均值中心化向量的余弦相似度。计算方向的一致程度之前,它先从每个向量中减去平均值,排除绝对尺度和基线偏移的影响。

两名用户的电影评分可能看起来差别很大:一人总是打 7–10 分,另一人只打 1–4 分,但两人的潜在品味模式可能几乎一致。Pearson 消除个人评分风格带来的偏差,找出其中的一致性。

适用场景包括生物信息学中的基因表达比较、时间序列趋势相似度,例如股票走势和传感器读数,以及采用显式评分的协同过滤。在这些场景里,受访者的回答基线通常存在系统性差异。

大多数向量数据库没有原生实现 Pearson,因为每次查询都执行均值中心化,在大规模系统中成本太高。实际部署通常会在建立索引时预先中心化所有 Embedding,即从数据集的每个维度中减去均值,再以标准余弦相似度执行查询。

预中心化后的余弦相似度就是 Pearson 相关系数,这个方法合生产环境。

度量 7:汉明距离(Hamming Distance)

汉明距离统计两个等长向量中取值不同的位置数。用于二元向量时,可以直接执行 XOR 位运算,计算速度很快。

理解二值量化(binary quantization)之后,它在现代系统中的价值才会显现。

float32 Embedding 的每个维度占 32 位,二值量化版本则只占 1 位,内存可压缩约 32 倍。文本“Hi there”可能生成 [0.2618, 0.1175, 0.38] 这样的浮点 Embedding,量化后得到 [1, 0, 1]——存储从 3 个 32 位浮点数缩减为 3 位。

FAISS 和 Qdrant 已在生产环境采用一种组合方案:第一轮检索使用二值量化和汉明距离追求速度,随后对候选结果按余弦相似度重新排序,以保证准确率。速度与召回率可以在同一条检索链路中兼顾。

如何选择合适的度量

决策规则可以压缩成一句话:

使用与 Embedding 模型训练方式相匹配的度量,其他因素都在其后。

文档信息不足或表述含糊时,可以借助这棵决策树:


上线前应当测量什么

纸面上选定度量只是起点,还必须用实际数据和真实查询模式验证。多数团队跳过的,恰恰是这个环节。

下表列出了每种度量的计算特征、内存行为,以及生产环境中最常见的使用错误:


评估至少要覆盖三项指标:Recall@K,用来检查正确结果是否进入前 K 名;平均倒数排名(Mean Reciprocal Rank),用于判断最佳结果是否排在最前;P99 延迟,因为 Redis 工程团队把 100ms 以内视为大规模生产环境的要求。

如果两种度量得到的召回率相同,选择计算成本更低的一种。

总结

上线向量搜索功能前,有一项配置必须核对:Embedding 是否已经预归一化?

Cohere 的 embed 默认生成单位归一化向量,查询时点积和余弦相似度的数值完全相同。OpenAI 的 Embedding 文档则建议在建立索引前完成归一化。

  • Embedding 已预归一化:使用点积,速度更快,结果与余弦相似度相同。

  • 来自余弦训练模型、未经归一化的 Embedding:明确使用余弦相似度,或者在建立索引时进行归一化。

  • 来自点积训练模型、未经归一化的 Embedding:使用点积,模长属于信号的一部分。

如果数据已经归一化,就无法再观察到模长。因此,如果数据已经归一化,余弦相似度和点积度量就完全相同。

度量选择并非一次性的架构决策,而是持续存在的产品风险。团队每次更换 Embedding 模型、更新 Embedding 版本或迁移向量数据库,都要重新核对度量是否匹配。

作者:Souvik Sarkar

编辑:文婧

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中纪委再出大招!公务员这4类行为将被大数据盯死,沾上就完蛋!

中纪委再出大招!公务员这4类行为将被大数据盯死,沾上就完蛋!

细说职场
2026-08-24 16:42:10
国家卫健委发布会:白血病不再是不治之症

国家卫健委发布会:白血病不再是不治之症

21世纪经济报道
2026-08-23 07:17:27
为什么提出阶级斗争,那些文化人马上进行反对,这个美国人看的准

为什么提出阶级斗争,那些文化人马上进行反对,这个美国人看的准

至死不渝的爱情
2026-07-02 06:12:43
俄乌最新!俄罗斯再次被乌克兰打得伤痕累累:被摧毁一架苏-33、一架米格-29、一架苏-24M战斗机、S-400防空系统和雷达

俄乌最新!俄罗斯再次被乌克兰打得伤痕累累:被摧毁一架苏-33、一架米格-29、一架苏-24M战斗机、S-400防空系统和雷达

飞狼
2026-08-24 07:05:26
具俊晔汪小菲关系破冰!具俊晔有望见到玥儿箖箖,汪徐两家再次对话

具俊晔汪小菲关系破冰!具俊晔有望见到玥儿箖箖,汪徐两家再次对话

八星人
2026-08-24 14:32:19
马竞就是不卖给巴萨,愿1.5亿欧将小蜘蛛卖给阿森纳,阿森纳等待小蜘蛛改变心意

马竞就是不卖给巴萨,愿1.5亿欧将小蜘蛛卖给阿森纳,阿森纳等待小蜘蛛改变心意

福酱的小时光
2026-08-24 17:38:27
斯诺克最新战报!斯佳辉打丢超分球,德比战连输2局,萝卜火箭领先!

斯诺克最新战报!斯佳辉打丢超分球,德比战连输2局,萝卜火箭领先!

刘姚尧的文字城堡
2026-08-24 10:32:02
39岁吉鲁远射破门,助37岁小安切洛蒂取得五大联赛的执教首胜

39岁吉鲁远射破门,助37岁小安切洛蒂取得五大联赛的执教首胜

懂球帝
2026-08-24 00:02:09
拒绝2年4800万,克莱直言离队心声!训练状态火热,全力冲击个人第五冠

拒绝2年4800万,克莱直言离队心声!训练状态火热,全力冲击个人第五冠

爱旅游的小锋
2026-08-24 14:50:06
发生啥了?网传某互联网大厂裁掉1万人,工资由1.6万骤降至6千..

发生啥了?网传某互联网大厂裁掉1万人,工资由1.6万骤降至6千..

慧翔百科
2026-08-19 17:29:48
“他们的鞋没一双低于400的”,江浙沪幼儿园火了,一眼看出区别

“他们的鞋没一双低于400的”,江浙沪幼儿园火了,一眼看出区别

泽泽先生
2026-08-23 13:47:36
上海爸爸想将名下房产转给澳籍女儿! 结果被罚款, 拘留2个月

上海爸爸想将名下房产转给澳籍女儿! 结果被罚款, 拘留2个月

澳微Daily
2026-08-24 15:57:04
U18男篮亚洲杯中国国青79-89不敌澳大利亚获亚军,媒体人:唯一能撵着澳洲国青走的球队

U18男篮亚洲杯中国国青79-89不敌澳大利亚获亚军,媒体人:唯一能撵着澳洲国青走的球队

体坛观察猿
2026-08-24 10:23:26
你有没有瞒着父母干过哪些变态的事?网友们的回答是相当炸裂!

你有没有瞒着父母干过哪些变态的事?网友们的回答是相当炸裂!

夜深爱杂谈
2026-08-23 20:09:19
1980年,谢贤和狄波拉在街头被抓拍的一张照片!此时她身怀六甲,腹中孩子便是谢霆锋。

1980年,谢贤和狄波拉在街头被抓拍的一张照片!此时她身怀六甲,腹中孩子便是谢霆锋。

LULU生活家
2026-08-21 20:10:43
北大教授梁建章建议,暂时找不到工作的年轻人,可以先结婚生孩子

北大教授梁建章建议,暂时找不到工作的年轻人,可以先结婚生孩子

米果说识
2026-08-24 09:34:20
ABC王牌剧《高度潜力》延播至2027,主演阵容再失一人

ABC王牌剧《高度潜力》延播至2027,主演阵容再失一人

追星雷达站
2026-08-23 01:20:35
税收4亿,工资26亿:财政没钱,为什么编内待遇不能动?

税收4亿,工资26亿:财政没钱,为什么编内待遇不能动?

混沌录
2026-07-23 17:11:06
普京:乌克兰将新纳粹主义作为国家意识形态基础,俄不会容忍

普京:乌克兰将新纳粹主义作为国家意识形态基础,俄不会容忍

俄罗斯卫星通讯社
2026-08-24 15:06:16
蒙古给中国提了个醒,连接中俄的油气管道,说什么也不能经过蒙古

蒙古给中国提了个醒,连接中俄的油气管道,说什么也不能经过蒙古

涵豆说娱
2026-08-23 05:21:23
2026-08-24 18:03:00
新浪财经 incentive-icons
新浪财经
新浪财经是一家创建于1999年8月的财经平台
4525646文章数 9352关注度
往期回顾 全部

科技要闻

宇树科技,3天跌了1000亿

头条要闻

美国"经济绞杀"之际 伊朗宣布发现千亿方级的优质气田

头条要闻

美国"经济绞杀"之际 伊朗宣布发现千亿方级的优质气田

体育要闻

42张照片 珍藏世界杯的热辣滚烫

娱乐要闻

韩沛颖开撕《主角》剧组引发全网热议

财经要闻

宇树IPO:追高、被套,多久能回血?

汽车要闻

智能超混 国民家轿 上汽大众ID. ERA 5S上市 限时8.99万元起

态度原创

时尚
房产
手机
艺术
军事航空

夏天别总穿白色T恤,试试这几款衬衫,配裤子裙子都显气质

房产要闻

两大热盘即将入市!三亚又一批安居房狠货要炸场了!

手机要闻

雷军曝光小米玄戒O3隐藏彩蛋,芯片刻OK手势寓意“万事OK”

艺术要闻

388米!中国第一高银行总部,为何要“开窗”设计?

军事要闻

美国与以色列发生“罕见冲突”

无障碍浏览 进入关怀版