向量相似度如何计算?

考查重点:相似度定义与向量处理一致性。余弦比较方向、内积兼受长度影响、欧氏距离比较直线距离;按 Embedding 训练约定选择,入库与查询处理一致

本题目录

参考答案

核心回答

向量相似度是按选定的度量,对查询向量与候选向量打分,再按分数取最接近的结果。文本检索中常见三种:余弦相似度看方向,内积同时受方向和长度影响,欧氏距离看空间中的直线距离。

余弦和内积通常越大越相似,欧氏距离越小越接近。选择时要看Embedding模型的训练方式和推荐度量,并让入库处理、索引和查询保持匹配;不同度量不一定得到同一排序。若两边都是单位向量,余弦与内积相等,平方欧氏距离又等于 2 - 2 × 内积,三者在精确比较同一组候选时给出等价排序。

三种常用度量怎样计算

设两个非空同维向量为 x、y,下标 i 遍历各个维度,向量长度记为 ||x|| = sqrt(Σ x_i²)。

内积:dot(x,y) = Σ x_i × y_i。 对应维度相乘后相加。它不仅反映方向,也受向量模长影响。对于固定查询,候选向量长度不同可能改变排名;内积不必限制在 [-1,1],也不是概率。

余弦:cos(x,y) = dot(x,y) / (||x|| × ||y||)。 在两个向量都非零时,去掉长度因素,只比较方向,范围为 [-1,1]。1表示同方向,0表示正交,-1表示反方向;这些首先是几何关系,不能直接把0解释成文本毫无语义关系,或把1当作事实完全相同。零向量的余弦没有这个数学定义,应由输入校验或明确的库约定处理。

欧氏距离:L2(x,y) = sqrt(Σ (x_i-y_i)²)。 衡量两点间直线距离,越小越接近。有的检索库返回平方距离,不开平方仍保持相同排序,但分数数值不同。例如Faiss的 METRIC_L2 返回平方L2,阈值也要按这个含义设置。

一个例子说明排序为什么会不同

取查询 q=(1,0),两个候选 a=(1,1)、b=(3,4):

  • 内积:q·a=1,q·b=3,因此b排名更靠前。
  • 余弦:cos(q,a)=1/√2≈0.7071,cos(q,b)=3/5=0.6,因此a排名更靠前。
  • 欧氏距离:到a为1,到b为 √20≈4.4721,因此a更接近。

b的模长较大,原始内积更高;a与查询的方向更接近。这个例子展示度量差异,实际文本是否相关还取决于模型如何学习这个向量空间。

为什么归一化以后可以互相转换

把非零向量分别除以自己的模长,得到单位向量。此时分母都是1,因此余弦就等于内积。再展开平方距离:

||x-y||² = ||x||² + ||y||² - 2(x·y) = 2 - 2(x·y)。

所以最大化余弦、最大化内积与最小化平方L2得到相同的精确排名。这里要求候选也已归一化;只处理查询,并不能消除不同候选的模长差异。采用近似索引后,实际候选搜索路径还会影响召回,数学上的度量等价不意味着不同索引配置总返回完全相同的结果。

是否归一化要按模型设计选择。某些内积模型会利用模长表达信息,额外归一化会改变它原来的评分;不能为了套用余弦公式就一律预处理。

在RAG中怎样正确使用

先确认查询与文档向量来自可比较的Embedding空间,维度和模型配套方式正确。有些模型分别规定查询前缀、文档前缀或不同编码分支,不能只看维数相同就混用。

再核对接口返回的是相似度、距离、平方距离还是负距离,以及排序方向。例如一些接口用负欧氏距离作为“越大越好”的分数。检索阈值要在本模型、本数据和本度量上校准,不能把另一个系统的0.8直接复制过来。

最后用已标注问题检查相关片段能否进入候选。相似度计算与HNSW等索引搜索是两个层次:前者定义怎样比较,后者减少需要比较的候选;重排还可以进一步结合查询与片段内容判断相关性。

常见追问

余弦0.8代表有80%的概率相关吗?

不代表。它是向量夹角的函数,不是经过校准的相关概率。是否足以支持回答,要结合模型、问题类型和实际证据判断。

除了这三种,还有哪些?

还有曼哈顿距离、用于二进制表示的汉明距离等。它们适用的数据表示和检索目的不同;对稠密文本向量,应先遵循模型推荐方式,再用任务数据验证。

对应教程

  • 向量数据库与Embedding实战:第5.1~5.2节介绍余弦直觉及COSINE、L2、IP的选择,本题补充可复算例子、归一化等价关系和分数解释。

参考资料

相关面经

3 篇

上海九云数智

大模型应用开发工程师(RAG 方向)
查看原面经 →
除了余弦相似度,还有什么其它向量相似

虾皮

Agent 应用开发工程师
秋招一面
查看原面经 →
向量检索这里是不是只使用余弦相似度?余弦相似度特点是什么?还有哪些相似度算法?

商汤

大模型应用算法工程师
实习一面、二面
查看原面经 →
RAG 原理,项目里有哪些相关经验,向量数据库、相似度计算、chunk 切片策略。

收录题集

7 个来源,共19 份题集
展开剩余 14 份题集

多模态与计算机视觉

阿东玩 AI · AgentGuide · 2 条原题

查看题集 →

推荐搜索与广告

阿东玩 AI · AgentGuide · 1 条原题

查看题集 →

机器学习基础汇编

阿东玩 AI · AgentGuide · 2 条原题

查看题集 →

Agent_RAG与混合检索工程

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

月之暗面高频面试题

Rocky Ding · AIGC-Interview-Book · 3 条原题

查看题集 →

大模型原理追问

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

数学基础高频考点

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

损失函数知识点

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

聚类学习

Datawhale · daily-interview · 1 条原题

查看题集 →
原文作者
Yvette 明明就 本题集的 12 道原题均来自 Yvette 明明就编写的 K-means 文档。

推荐系统

Datawhale · daily-interview · 1 条原题

查看题集 →
原文作者
Summer 其中第 1—13 题来自 Summer 编写的协同过滤文档。

检索与知识工程问答

Guide · JavaGuide · 3 条原题

查看题集 →

RAG 面试题

Guide · JavaGuide · 1 条原题

查看题集 →

公司专题代表问法

Onefly · zero2Agent · 1 条原题

查看题集 →

RAG 与检索系统:从 chunk 设计到多路召回

Onefly · zero2Agent · 1 条原题

查看题集 →

相关题目

4 题