【问题标题】:Why can cosine similarity between two vectors be negative?为什么两个向量之间的余弦相似度可以为负?
【发布时间】:2011-09-29 15:12:13
【问题描述】:

我有 2 个 11 维的向量。

a <- c(-0.012813841, -0.024518383, -0.002765056,  0.079496744,  0.063928973,
        0.476156960,  0.122111977,  0.322930189,  0.400701256,  0.454048860,
        0.525526219)

b <- c(0.64175768,  0.54625694,  0.40728261,  0.24819750,  0.09406221, 
       0.16681692, -0.04211932, -0.07130129, -0.08182200, -0.08266852,
       -0.07215885)

cosine_sim <- cosine(a,b)

返回:

-0.05397935

我使用了来自lsa 包的cosine()

对于某些值,我得到负 cosine_sim 就像给定的一样。我不确定相似性如何可能是负面的。它应该在 0 和 1 之间。

谁能解释一下这里发生了什么。

【问题讨论】:

标签: r similarity negative-number trigonometry


【解决方案1】:

R 的好处是您可以经常深入研究函数并亲自查看发生了什么。如果您键入cosine(不带任何括号、参数等),则 R 会打印出函数的主体。戳穿它(这需要一些练习),您可以看到有一堆机器用于计算矩阵列的成对相似性(即,包裹在if (is.matrix(x) &amp;&amp; is.null(y)) 条件中的位,但关键行功能是

crossprod(x, y)/sqrt(crossprod(x) * crossprod(y))

让我们把它拿出来并应用到你的例子中:

> crossprod(a,b)/sqrt(crossprod(a)*crossprod(b))
            [,1]
[1,] -0.05397935
> crossprod(a)
     [,1]
[1,]    1
> crossprod(b)
     [,1]
[1,]    1

因此,您使用的是已经标准化的向量,因此您只需查看 crossprod。在你的情况下,这相当于

> sum(a*b)
[1] -0.05397935

(对于实数矩阵运算,crossprod 比手动构造等效运算效率高得多。

正如@Jack Maney 的回答所说,两个向量的点积(即 length(a)*length(b)*cos(a,b))可以是负数...

对于它的价值,我怀疑lsa 中的cosine 函数对于矩阵参数可能更容易/更有效地实现为as.dist(crossprod(x)) ...

编辑:在下面现在已删除的答案的 cmets 中,我建议如果想要在[0,1] - 这类似于使用决定系数 (r^2) 而不是相关系数 (r) - 但它也可能值得回过头来更仔细地考虑目的/意义要使用的相似性度量...

【讨论】:

    【解决方案2】:

    cosine 函数返回

    crossprod(a, b)/sqrt(crossprod(a) * crossprod(b))
    

    在这种情况下,分母中的两项都是 1,但 crossprod(a, b) 是 -0.05。

    【讨论】:

      【解决方案3】:

      cosine function 可以采用负值。

      【讨论】:

        【解决方案4】:

        虽然两个向量的余弦可以取 -1 和 +1 之间的任何值,但余弦 相似度(在 dicument retreival 中)用于从 [0,1] 区间取值。原因很简单:WordxDocument矩阵中没有负值,所以两个向量的最大夹角为90度,余弦为0。

        【讨论】:

          猜你喜欢
          • 2018-09-27
          • 2019-12-27
          • 2020-10-28
          • 2021-07-19
          • 2014-12-29
          • 2020-04-21
          • 2016-03-06
          • 2017-09-07
          • 2016-11-20
          相关资源
          最近更新 更多