解释余弦负相似度


17

我的问题可能很愚蠢。所以我会提前道歉。

我正在尝试使用由Stanford NLP组预训练的GLOVE模型(链接)。但是,我注意到我的相似性结果显示为负数。

那立刻促使我看了字向量数据文件。显然,字向量中的值可以为负。这就解释了为什么我看到负余弦相似度。

我习惯了频率向量的余弦相似度的概念,其值以[0,1]为界。我知道一个事实,根据向量之间的夹角,点积和余弦函数可以为正也可以为负。但是,我确实很难理解和解释这种负余弦相似性。

例如,如果我有一对相似度为-0.1的单词,它们是否比另一对相似度为0.05的单词少?如何比较-0.9与0.8的相似性?

还是我应该看看的最小角度差的绝对值?分数的绝对值?nπ

非常感谢。


1
余弦相似度标签说:An angular-type similarity coefficient between two vectors. It is like correlation, only without centering the vectors.两者之间的唯一区别在于,相关偏差(矩)-交叉相乘-是均值,而余弦偏差是原始0-即它们是原样的值。
ttnphns

2
(续)在两种情况下,对正系数或负系数的理解都是相同的。负系数。表示一个向量的正偏差/值趋于与另一个向量的负偏差/值配对。对于您来说,这是否意味着向量是“相似的”还是相反的“高度相似的”取决于数据中正偏差和负偏差/值的含义。
ttnphns

@ttnphns非常感谢您的评论!它的确激发了我以新的方式考虑余弦相似度。在我的用例中,也许我可以将其视为最终结果的差异:如果Doc A和B的相关性为负,并且单主题日记X包含Doc A,则X包含B的可能性较小,因为好吧,从某种平均概率来看。这个解释听起来对您有效吗?

我不敢说,因为我不知道您的数据,数据中的值的含义以及您的研究。
ttnphns

Answers:


2

设两个向量和,角度由标量积和向量的范数得出:abθ

cos(θ)=ab||a||||b||

由于值在范围内:cos(θ)[1,1]

  • 1值表示相反的向量
  • 0独立的(正交)向量
  • 1相似的(正共线性)向量。中间值用于评估相似度。

示例:根据两个用户的电影,让两个用户和以及相似:U1U2sim(U1,U2)

  • sim(U1,U2)=1如果两个用户的口味完全相同(或者 )U1=U2
  • sim(U1,U2)=0如果我们没有找到两个用户之间的任何关联,例如,如果他们没有看过任何普​​通电影,则
  • sim(U1,U2)=1如果用户有相反的口味,例如,如果他们以相反的方式对同一部电影评分

0

不要使用绝对值,因为负号不是任意的。要获取介于0和1之间的余弦值,您应该使用以下余弦函数:

(R代码)

cos.sim <- function(a,b) 
{
  dot_product = sum(a*b)
  anorm = sqrt(sum((a)^2))
  bnorm = sqrt(sum((b)^2))
  minx =-1
  maxx = 1
  return(((dot_product/anorm*bnorm)-minx)/(maxx-minx))
} 

(Python代码)

def cos_sim(a, b):
    """Takes 2 vectors a, b and returns the cosine similarity according 
to the definition of the dot product"""
    dot_product = np.dot(a, b)
    norm_a = np.linalg.norm(a)
    norm_b = np.linalg.norm(b)
    return dot_product / (norm_a * norm_b)

minx = -1 
maxx = 1

cos_sim(row1, row2)- minx)/(maxx-minx)
```

您在哪里设置minx和maxx?您可以将此最小-最大归一化应用于矢量尺寸,而不是计算出的距离。
emre可以

0

余弦相似度与Pearson相关性相似,但不减去均值。因此,可以通过查看绝对值来比较2个余弦相似度的相对强度,就像比较2个Pearson相关性的绝对值一样。


0

正确的做法是,频率向量之间的余弦相似度不能为负,因为字数不能为负,但是对于词嵌入(例如手套),您可以具有负值。

单词嵌入构造的简化视图如下:将每个单词分配给R ^ d中的随机向量。接下来运行优化器,该优化器试图将两个相似向量v1和v2推向彼此靠近或将两个不同向量v3和v4进一步分开(按一定距离,例如余弦)。您可以对优化进行足够的迭代,最后进行词嵌入,其唯一标准是相似词的向量接近,而异种向量的距离更远。最终结果可能会使您的某些维值为负,而有些对的余弦相似度为负-仅仅是因为优化过程并不关心此准则。它可能已将某些向量微调到负值。向量的尺寸与字数不符,

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.