与余弦相似度混淆

数据挖掘 信息检索 余弦距离 向量空间模型
2022-03-09 07:51:59

在信息检索中,当我们计算查询特征向量和文档特征向量之间的余弦相似度时,我们会惩罚查询中看不见的单词。

例如,如果我们有两个具有特征向量的文档

d1 = [1,1,1,0,0]  
d2 = [0,1,1,1,0]  

我们可以看到两个文档有第二个特征,所以如果我们想用查询向量搜索第二个特征:q = [0,1,0,0,0] 那么 q 和 d1,d2 之间的余弦相似度将是1/3,而不是 1,因为我们惩罚了查询中未提及的其他特征。

从这个讨论中我不明白为什么惩罚它是一个好主意。

  1. 惩罚看不见的功能好吗?
  2. 是否有另一种不会惩罚他们的相似性度量?
2个回答

当然,余弦相似度不适用于搜索文档中的特定特征!为此,您可以完全使用点积,因为它会忽略文档中查询向量中的零特征。

在当前上下文中,余弦相似度可用于查找两个文档之间的相似度。因此,所有特征对于寻找相似性都很重要。这意味着,如果查询向量中没有特征,但文档中有特征,或者反之亦然,这两者是 100% 相似的。因此,这是有道理的。

您的示例的重点似乎更多是长度标准化。长话短说:

  1. 稀有词比常用词更能提供信息,我们不想对所有词进行同等加权,
  2. 术语越频繁,文档就越有可能包含有关术语的信息。

视频提供了示例,说明为什么考虑文本中的所有单词很重要,包括针对您在文本中提出的观点的特定示例

为了直观地了解您的搜索可能会出现问题的原因,请考虑在您的方法下,所有查询都与英语词典极为相似的事实