为什么用余弦距离来衡量词嵌入之间的相似性?

数据挖掘 词嵌入 距离 余弦距离
2021-09-28 17:53:39

在计算词之间的相似度时,cosine相似度或距离是在词向量上计算的。为什么其他距离度量(例如欧几里得距离)不适合此任务。

让我们考虑 2 个向量ab其中,a = [-1,2,-3]b = [-3,6,-9], 这里b = 3*a, 即两个向量具有相同的方向但大小不同。a之间的余弦相似度b为 1,表明它们是相同的。a而和之间的欧几里得距离b是7.48。

这是否意味着向量的大小与计算词向量的相似度无关?

1个回答

你在这里问两个问题。

  1. 这是否意味着向量的大小无关紧要?

是的。余弦距离为Dcos=ABAB,这只是来自内积的定义, AB=ABcosθ.

  1. 为什么使用余弦距离?或者,换一种说法,为什么(1)的答案是距离度量中的理想属性?

在词嵌入中,我们选择一个维度 d用于嵌入。这是我们嵌入空间中的组件数量。组件(或组件的线性组合)旨在编码某种语义含义。经典示例就像“女王”的向量加上“男人”的向量应该靠近“国王”的向量。之类的东西。有一个方向大致对应于“版税”和一个性别方向。

看看你的例子,在哪里b=3a,a=[1,2,3],b=[3,6,9]. 这完美地说明了我们为什么使用余弦相似度。它们具有非常不同的大小,但指向相同的方向。它们的余弦距离为 1,我们希望这样做,因为这意味着它们在每个分量中具有相同的相对比例

如果我们使用欧式距离, ab7.48单位分开。很容易找到另一个向量c 那是大约相同的距离 a 作为 b是,在一个完全不同的方向。如果我们的空间学习得当,c 应该具有完全不同的语义含义 b,但它们的距离相同 a. 欧几里得距离并不能很好地衡量我们想要的相似度。