问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

推荐系统中的相似度计算方法详解

创作时间:
作者:
@小白创作中心

推荐系统中的相似度计算方法详解

引用
CSDN
1.
https://blog.csdn.net/AveryHzzz/article/details/144333288

在推荐系统中,相似度计算是核心环节之一,它决定了系统如何理解用户偏好和物品特征。本文将详细介绍7种常用的相似度计算方法,包括皮尔逊相关系数、欧几里得相似度、余弦向量相似度等,帮助读者全面了解这些算法的原理和应用场景。

相似度计算

在推荐系统中,涉及了:

  • 用户之间相似度
  • 物品之间相似度
  • 用户与物品相似度

注意:相似度的计算是基于向量间的距离。距离越近,相似度越大。

1. 皮尔逊相关系数 (Pearson Correlation Coefficient)

一般用于计算两个「变量」间的相关性。它的取值是[-1,1]:

  • 当取值大于0时,表示两个变量是正相关的;
  • 当取值小于0时,表示两个变量是负相关的;
  • 取值为0,表示不相关。

用户间的相似度计算公式:

其中:

  • n:两个用户x、y共同评价过物品的总数;
  • xi:表示用户x对物品 i 的评分;
  • :表示用户x,所有评价过的物品的平均分;
  • yi:表示用户y对物品i的评分;
  • :表示用户y所有评价过的物品的平均分。

皮尔逊相似度的缺点:对评分的绝对数值不敏感。比如, 有人评价4分表示非常喜欢,而有些人评5分表示相同的喜好程度。

2. 欧几里得相似度 (Euclidean Distance)

就是计算欧几里得空间中两个点的距离。欧几里得距离越小,相似度越大。


公式:计算用户x和y的相似度。用的方法:欧几里得的距离计算, 然后求距离的反比。

3. 余弦向量相似度 (Cosine Similarity)

计算两个向量之间的夹角余弦,来度量它们之间的距离远近,进而评价它们之间的相似度。

公式:两个文档的相似度:

A和B两个文档的内积除以他们的向量模。

公式:用户x和y之间的相似度(公式是差不多的):

⚠️注意:要取对物品的历史评分的「均值」

因为:
例如用户对物品进行评分,在5分制的情况下,1分最差,5分最好;
两用户对两个物品进行评分的分值为(1,2)和(4,5);
用余弦相似度得出的结果是0.98;
得到的结论就是:两者相似度较高。
但是,实际上两个用户对这两个物品的喜好并不一致,这说明结果存在一定误差;
所以要调整余弦相似度,就是所有的维度上的数值都减去均值,再用余弦相似度计算。
例如,A和B对两个物品的评分均值都是3;
那么调整后为(-2,-1)和(1,2);
得到相似度结果为 -0.8;
相似度为负值,并且差异较大,这样更加符合事实。

4.Tanimoto (谷本)系数

这个系数是Cosine相似度的扩展;
基本上和Jaccard(雅卡尔) 方法相同。这种计算方法适用于用户对物品的偏好是Bool型的情况。

5.曼哈顿相似度 (Manhattan Distance)

它就是用了简化的计算方式,比欧氏距离计算量少,性能相对高。
比较适合用户的偏好数据是0或1的情况。

6. 对数似然相似度

它是基于熵计,算用户喜欢的物品之间的相关性。
适用于二值型偏好的情况。

7.斯皮尔曼相似度 (Spearman)

它是基于「排序值」,来计算相似性。
和Pearson 相似度相比,可以减少异常值对结果的影响。
方法:按照用户对物品的评分进行「排序」,计算排序后用户喜好值之间的Pearson 相关性。

注意:斯皮尔曼相似度的计算量较大,效率并不高,所以一般用于学术研究或者小规模计算。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号