推荐系统学习
1.两种相似度的定义:
•User-Based CF 计算user与user的相似度矩阵
–用户喜欢那些跟他有相似爱好的用户喜欢的东西
基于用户相似度:用户对同一商品进行购买与评分,评分越高则喜欢程度越高,进行相似度计算,后续可推荐相似用户买过的商品
•Item-Based CF 计算item-item的相似度矩阵
–具有相似兴趣的用户在未来也具有相似兴趣
基于商品,某个用户一段时间买了某些商品,根据买的商品属性与归类,可以得到算出与该些商品相似的商品,推荐给该用户
2.基于用户推荐系统的实现方法
–给定用户u,找到一个用户的集合N(u),他们和u具有相似的兴趣–将N(u)喜欢的物品推荐给用户.
相似度计算实例:
以上左图是A、B、C、D四个用户对5部电影做了评分,形成的用户--电影评分矩阵
右图为:A与B,B与c等等的两两相似度
欧氏距离:
A与B 的相似度: sqrt【(5-1)^2+ (1-5)^2+(2-5)^2+(2-5)^2】=7.07
余弦相似度:
分子: 5*1+1*5+2*5+2*5=30
A的模:sqrt(5^2+1^2+2^2+2^2)=5.83095
B的模 sqrt(1^2+5^2+5^2+5^2=8.71780
距离:d=30/5.83095*8.71780=0.59
算出了A与B的相似度为0.59
1.问题:如何算出C用户对TItannic电影的评分呢?
(1)得出c的评分,必须找出与c用户相似的用户
A与C :0.73
B与C:0.97
D与C:0.87
如果我们去相似度两个用户那就是 B、D,打分分别为5分、3分
估算出c对此电影的评分:
(0.97*5+0.87*3)/(0.97+0.87)=4.05
拆分开理解:
加权求和的一个思想,相似度越高,占得打分权重越高
二、相似度的归一化
1)概述
两者都是评定个体间差异的大小的。欧几里得距离度量会受指标不同单位刻度的影响,所以一般需要先进行标准化,同时距离越大,个体间差异越大;
空间向量余弦夹角的相似度度量不会受指标刻度的影响,余弦值落于区间[-1,1],值越大,差异越小。
2)计算公式
欧氏距离(也叫欧几里得距离)公式:
余弦相似度的计算公式如下:
3)归一化
一般来说,为了比较的方便,都会对得到的结果进行归一化处理:
1)在欧氏距离公式中,取值范围会很大,一般通过如下方式归一化:
sim = 1 / (1 + dist(X,Y))
2)因为余弦值的范围是 [-1,+1] ,相似度计算时一般需要把值归一化到 [0,1],一般通过如下方式:
sim = 0.5 + 0.5 * cosθ
经过归一化处理以后,相似度全部落在了0和1之间,值越大,相似度越高。
4)相似度度量的选择
选择哪种度量方式,没有统一的结论,要依据处理数据的特点来进行确定,可以参考一下知乎上关于这个问题的讨论
:http://www.zhihu.com/question/19640394
三、如何使用余弦进行推荐相似度计算