余弦相似度与点积作为距离量度


41

看起来两个特征的余弦相似度只是它们的点乘积按其大小的乘积缩放。何时余弦相似度比点乘积能提供更好的距离度量?即在不同情况下,点积和余弦相似度是否有不同的优点或缺点?


请注意,即使您将它们转换为当点“相似”时较小的值,这些都不是正确的距离度量。这可能与您的用例无关紧要。
肖恩·欧文2014年

Answers:


41

进行几何思考。余弦相似度只关心角度差,而点积关心角度和大小。如果将数据规格化为相同的大小,则两者是无法区分的。有时希望忽略幅度,因此余弦相似度很好,但是如果幅度起作用,则点积作为相似度度量会更好。请注意,它们都不是“距离度量”。


3
在文献中,“距离度量”通常被用作“相似性”的反义词:距离越大,相似性越小,但是基本上它们表示相同的想法。
ffriend

1
@ffriend你的意思是“相异”。指标具有精确的定义。
2016年

8

没错,余弦相似度与向量的点积有很多共同点。实际上,它是一个点积,按量级进行缩放。并且由于缩放,它在0到1之间归一化。CS是可取的,因为它考虑了数据的可变性和要素的相对频率。另一方面,纯点积有点“便宜”(就复杂性和实现而言)。


为什么仅点积(相当于不规范化)不能说明要素的数据和频率?我不知道这是有区别的。
肖恩·欧文2014年

2
也许,我不清楚。我在谈论数据多样性。例如,我们有两对文件。在每对文档中,文档是相同的,但与1对2文档相比,1对文档短。我们计算每一对中的相似度。点积会产生不同的数字,尽管在两种情况下都可以预期最大相似度。
sobach 2014年

5

我想在上面给出的答案中再增加一个维度。通常我们对大文本使用余弦相似度,因为不建议在数据段上使用距离矩阵。而且,如果您打算将群集扩大,则倾向于使用余弦相似度,因为它总体上捕获了相似度。

例如,如果您的文本最长为两到三个字,那么我觉得使用余弦相似度无法达到距离度量所达到的精度。


4

有共同的基于内积的相似性度量的比较优良这里

特别是,余弦相似度被标准化为位于[0,1]内,这与可以是任何实数的点积不同,但是,正如其他人说的那样,这将需要忽略向量的大小。就个人而言,我认为这是一件好事。我认为幅度是内部(矢量内部)结构,矢量之间的角度是外部(矢量之间)结构。它们是不同的东西,(我认为)通常最好分开分析。我无法想象这样一种情况,我宁愿计算内部乘积而不是计算余弦相似度,然后只比较幅度。


“余弦相似度被归一化为位于[0,1]之内”。分子中仍然有一个点积,我认为范围应该改为[-1,1]?
卡里(Kari)

2

从几何角度来看,如果所有数据都是are,,则两个向量的标量积将定义一个角度,,并且您有一个距离。φ X ÿ = COS φ φ = ARCCOS X ÿ x,||x||2=x,x=1ϕx,y=cosϕϕ=arccosx,y

从视觉上看,所有数据都生活在单位球体上。使用点积作为距离可以得到弦的距离,但是如果使用该余弦距离,则它对应于球面上两点之间的路径长度。这就是说,如果您希望获得两个点的平均值,则应该在该路径(测地线)上取中间的点,而不是从“算术平均值/点积/欧几里得几何”中获得的中点,因为不存在于球体上(因此本质上不是同一物体)!


1

正如其他人指出的那样,这些不是距离“度量”,因为它们不满足度量标准。改为说“距离测量”。

无论如何,您要测量什么,为什么?这些信息将帮助我们针对您的情况提供更有用的答案。


我一直想知道度量和指标之间的区别。根据政府(NIST)的说法:“ ...我们将度量用于更具体或客观的属性,将度量用于更抽象,更高级别或有些主观的属性。...鲁棒性,质量(如“高质量”)效率和有效性是我们具有一致感觉的重要属性,但是很难客观定义。因此,这些都是度量标准。” 但是上下文是软件工程,而不是数学。你拿什么
2014年

1
维基百科更为有用。distance(x,y)必须为非负数;仅当x = y时d(x,y)= 0; d(x,y)= d(y,x); 并满足三角形不等式-d(x,z)
≤d

1
就是这样:度量必须满足某些公理,而度量则没有严格定义。
sintax
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.