略。
没啥好说的。
余弦相似度:只看方向,不看长度
当向量被标准化(归一化)为模长为 1 之后,即每个向量都缩放到单位球面上,那么:
-
欧几里得距离的平方 = 2 - 2 × 余弦相似度。
-
此时两者完全等价,只是信息换算。
很多语义评估场景会先做 L2 归一化,然后直接计算点积(即余弦相似度),因为归一化后的欧几里得距离同样只取决于方向。
为什么常用余弦相似度而不是欧几里得距离?
-
因为预训练词向量/句子向量的模长往往与某些无关因素(如词频、句子长度)相关,而我们关心的语义是其方向所代表的“内容”。余弦相似度能有效剥离长度信息,只关注内容纯度。
-
当然,在一些需要同时考虑“语义强度”或“信息量大小”的场景,欧几里得距离也有意义,但通常通过归一化后两者等价,直接用余弦相似度更稳定。
思维衔接
| 指标类型 | 代表 | 核心机制 | 字面/语义 |
|---|---|---|---|
| n-gram 匹配 | BLEU, ROUGE, METEOR | 统计词/词组重叠 | 仅字面 |
| 向量空间模型 | 余弦相似度、欧几里得距离 | 在高维语义空间中计算距离/夹角 | 可捕捉语义 |
从 BLEU 到 METEOR,我们一直在试图用更灵活的匹配(词干、同义词)让字面指标更接近人类判断。
而引入余弦相似度后,评估彻底跳出了“相同的词”这个限制——即使候选和参考没有共现单词,如果它们处在同一语义区域(向量夹角小),就能获得高分。
余弦相似度把整个句子的语义看作一个团队的合力方向,而不去一个个点名查人。