Osheep

时光不回头,当下最重要。

相似度测量


在分类聚类算法,推荐系统中常常需要计算物品之间的相似度,而如何衡量物品之间的相似度,下文将介绍几种常用的计算方法。

  • 曼哈顿距离 (Manhattan Distance)
  • 欧氏距离 (Euclidean Distance)
  • 皮尔逊相关系数 (Pearson Correlation Coefficient)
  • 余弦相似度 (Cosine Similarity)
  • 修正余弦相似度 (Adjust Cosine Similarity)

曼哈顿距离[1]

我们可以定义曼哈顿距离的正式意义为L1-距离城市区块距离,也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。

(1) 在二维平面中,用户可以用一个二维坐标来表示

《相似度测量》

《相似度测量》

(2) 将上述情况扩展到n维欧式空间,用户可以用一个n维向量来表示,即如下表示:

《相似度测量》

n维下的曼哈顿距离就可以表示为:

《相似度测量》

欧式距离[2]

欧式距离即是欧式空间中两点间的直线距离,如下是二维空间中两点的直线距离:

《相似度测量》

Euclidean.png

在 欧几里得空间中,假设存在两点 x, y,则距离如下计算

《相似度测量》

《相似度测量》

《相似度测量》

皮尔逊相关系数[3]

统计学中,皮尔逊积矩相关系数 用于度量两个变量X和Y之间相关(线性相关),其值介于-1与1之间。在自然科学领域中,该系数广泛用于度量两个变量之间的相关程度。

在 欧几里得空间中,假设存在两个 x, yn 维向量,则皮尔逊相关系数计算公式如下:

《相似度测量》

系数的r值为1 或 -1意味着XY可以很好的由直线方程来描述,所有的数据点都很好的落在一条直线上,系数的值为0意味着两个变量之间没有线性关系。

在实际计算时,可以使用下列皮尔逊系数的近似计算公式:

《相似度测量》

余弦相似度[4]

《相似度测量》

Cosin.jpg

余弦相似性通过测量两个向量的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。

这结果是与向量的长度无关的,仅仅与向量的指向方向相关。

应用:在信息检索中,每个词项被赋予不同的维度,而一个文档由一个向量表示,其各个维度上的值对应于该词项在文档中出现的频率。余弦相似度因此可以给出两篇文档在其主题方面的相似度。

x, y对应于欧式空间中两个向量,则余弦相似度的计算公式如下:

《相似度测量》

修正余弦相似度

修正余弦相似度,考虑到用户的评分尺度问题,比如在评分为[1, 5]之间,有的用户即使很是喜欢,但是其给的评分依旧不会很高,同理即使很不喜欢给的评分也不会很低,所以通过减去用户对项评分的均值,修正的余弦相似性度量方法改善了以上问题。

计算公式如下:

《相似度测量》

其中,U表示所有对 i 和 j 进行过评级的用户组成的集合

末尾

你可能觉得这些都是比较基础的知识,但是这却是我接下来要写文章的基础,所以先把基础都打牢固。接下来将会写协同过滤的文章,到时候我会结合代码,这样更加清晰易懂。

吐槽一下,编辑这些数学公式,真是费心呀!!!


[1]:https://zh.wikipedia.org/wiki/%E6%9B%BC%E5%93%88%E9%A0%93%E8%B7%9D%E9%9B%A2

[2]:https://zh.wikipedia.org/wiki/%E6%AC%A7%E5%87%A0%E9%87%8C%E5%BE%97%E8%B7%9D%E7%A6%BB

[3]:https://zh.wikipedia.org/zh-cn/%E7%9A%AE%E5%B0%94%E9%80%8A%E7%A7%AF%E7%9F%A9%E7%9B%B8%E5%85%B3%E7%B3%BB%E6%95%B0

[4]:https://blog.sectong.com/blog/cosine_similarity.html

点赞