User-Based Collaborative Recommender System
Collaborative Recommender System基于User给Item的打分表,认为相似度很高的用户,会对同一个item给出相似的分数,找出K个相似度最高的用户,集合他们的打分,来推算目标用户对于某一item的打分。
1、每个用户打分的习惯范围不同,比如Bob习惯给出的最高分是5分,而Alice则只愿意在1-3分区间打分,所以我们不可能因为Bob和Alice相似度高,就预测Alice会给某个喜欢的item打5分。所以,在预测时,我们需要参考每个人的打分均值
2、将每个人的打分进行Feature Scaling,即用原始分数减去个人的打分均值,得出的分数是基于每个人均值的偏离,公式如下:
3、计算两个用户u和v的相似度,我们采用Pearson公式,计算范围仅限于u和v都打过分的item,但均值要用各自的整体均值(因为交集有可能很少):
4、根据每个用户与target user的相似度不同,赋予不同的权重,然后将加权得到的偏离值与target user的均值进行相加,得到最终预测的分数:
举例如下:这是一张打分表,我们需要预测出用户3对于item1和item6的打分:
我们使用Pearson相似度,其区间是[-1,+1],+1表示完全相似,-1表示相反。所以,可以得出:
第二步可以将原打分矩阵,通过Mean Centering转化成如下形式: