推荐系统中相似度计算2

传统的推荐算法(如协同过滤、基于物品的推荐等)采用的相似度计算公式主要有:余弦夹角、欧氏距离、杰卡德系数和皮尔森相关系数等,那么这些方法具体有哪些差异,在推荐算法中该如何选择,下面将着重基于这两个方面进行分析说明。 
1)余弦夹角 和 欧氏距离 
在向量空间中,任意两点(设为A、B)间的关系可通过余弦夹角和欧式距离来衡量,其中余弦夹角衡量的是A和B在空间方向上的差异,欧式距离是A和B在空间位置上的差异。因此,两者的差异主要体现: 
(1)欧氏距离从向量间的绝对距离区分差异,计算得到的相似度值对向量各个维度内的数值特征非常敏感,而余弦夹角从向量间的方向夹角区分差异,对向量各个维度内的数值特征不敏感; 
(2)余弦夹角公式对向量进行了归一化处理,解决了向量个体间存在度量标准不统一问题产生的计算偏差; 
(3)余弦夹角的值域区间为[-1,1],相对于欧式距离的值域范围[0,正无穷大],能够很好的对向量间的相似度值进行了量化。 
因此,在推荐系统场景下,推荐算法大都采用余弦夹角进行用户(或物品)的相似度计算。当然,欧氏距离能够体现个体数值特征的绝对差异,一般用于需要从维度的数值大小中体现差异的相关度分析(如从用户行为指标分析用户价值的相似度或差异)。 
2)余弦夹角 和 皮尔森相关系数 
皮尔森相关系数是用于衡量任意两个变量间线性相关程度的统计量,系数值越大相关性越强,值域范围为[-1,1]。在推荐系统的用户(或物品)间相似度计算过程中,余弦夹角和皮尔森相关系数的定义公式相似,具体如下: 
(1)余弦夹角公式: 
这里写图片描述 
(2)皮尔森相关系数公式: 
这里写图片描述 
从两者的定义公式可知,相对于余弦夹角公式,皮尔森相关系数公式对变量进行了均值化(或去中心化)处理,其好处是减少变量个体的数值差异对变量间相似度的影响。举个例子,用户A习惯对所有物品的评分范围为[1,3],而用户B习惯对所有物品的评分范围为[3,5],因各自评分数值标准的差异,采用余弦夹角公式计算两者的相似度比较低,但实际上两者的相似度是很高的。因此,在实际的推荐系统中,大都采用皮尔森相关系数公式或者下面的修正余弦夹角公式。 
(3)修正的余弦夹角公式(以计算物品i和j的相似性为例): 
这里写图片描述 
其中i,j代表两个物品,u代表用户,Ru,i代表用户u对物品i的评分,Ru ̄代表用户u对所有物品评分的均值,对比发现,修正的余弦夹角公式与皮尔森相关系数公式非常相似。 
(4)皮尔森相关系数公式(以计算物品i和j的相似性为例): 
这里写图片描述 
两者的差异主要在评分均值的计算方式上,修正的余弦夹角计算的是用户的评分均值,皮尔森相关系数计算的是物品的评分均值。可以推断,在计算用户i和j的相似性时,两者的计算公式是完全一致的。 
3)余弦夹角 与 杰卡德系数 
杰卡德系数是衡量两个集合间相似性的常用公式,其定义如下: 
这里写图片描述 
从杰卡德系数的计算公式可知,其限制了A和B的取值范围(0或1),当然,将A或B进行向量化后即可进行余弦夹角公式进行计算,相对余弦夹角,杰卡德系数计算公式的优势是其计算复杂度不高。因此在推荐系统中,若样本的特征值为二值(0或1),大都采用杰卡德系数或者其推广公式,比如在基于物品的协同过滤推荐算法中计算物品间的相似度。

参考文档链接: 
https://www.zhihu.com/question/21824291 
http://blog.sina.com.cn/s/blog_4b59de07010166z9.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值