点击上方“AI遇见机器学习”,选择“星标”公众号
原创干货,第一时间送达
一、余弦测量相似度
为了定义两个目标词v和w之间的相似度,我们需要一个度量来取两个这样的向量并给出向量相似度的度量。到目前为止,最常见的相似性度量是向量之间夹角的余弦值。与NLP中使用的大多数向量相似性度量方法一样,余弦也是基于线性代数中的点积算子,也称为内积:
![f4b53c93fdb1c1e94c2c0396212c688a.png](https://i-blog.csdnimg.cn/blog_migrate/92957b87793ff1584b1f788687a32976.png)
我们将看到,向量之间的相似性度量大多基于点积。点积是一种相似性度量,因为当两个向量在相同的维度上有较大的值时,点积的值往往较高。或者,在不同维度上有0的向量正交向量的点积为0,表示它们之间的强烈差异。然而,作为相似性度量,这个原始的点积有一个问题:它偏爱长向量。向量长度定义为:
![bf47339f986b5ab33f272cdfff762cf6.png](https://i-blog.csdnimg.cn/blog_migrate/2cea60f83179427016633c90e72b1131.jpeg)
向量越长,点积越大,每个维度的值都越大。更频繁的单词有更长的向量,因为它们往往与更多的单词同时出现,并且每个单词都有更高的共现值。因此,对于频繁出现的单词,原始点积会更高。但这是个问题;我们想要一个相似性度量,它告诉我们两个单词有多相似,而不考虑它们的频率。修改点积使向量长度标准化的最简单方法是用点积除以两个向量的长度。这个标准化的点积等于两个向量夹角的余弦,从向量 与向量
的点积的定义出发:
![35a9061f4cd6b49a52dba1648a58434b.png](https://i-blog.csdnimg.cn/blog_migrate/5023065ce2156681da5918fa660ed08e.jpeg)
因此,两个向量 和