该系列历史文章:
资料整理,来源于北大刘宏志教授讲座内容。
协同过滤(Collaborative Filtering, CR):利用集体智慧,借鉴相关人群的观点进行推荐。

基本假设:
协同过滤优缺点



显式反馈:用户主动地向系统表达其偏好,一般需要用户在消费完项目后进行额外反馈;
隐式反馈:隐含用户对项目偏好的行为数据,是用户在探索或消费项目过程中正常操作。
基本思想:
基于用户对项目的历史偏好找到相邻(相似)的用户
将邻居(相似)用户喜欢的项目推荐给当前用户
基于 User-CF 的推荐系统整体流程:
离线预处理:
计算用户之间的相似度
并据此确定每个用户的邻域(K近邻)
在线推荐:针对当前活跃(目标)用户,计算推荐列表
确定候选项目集
预测兴趣度并生成推荐列表
用户相似度计算方法:
用户相似度的问题:
下面哪一组用户更相似?
用户A和B都买过《新华字典》
用户C和D都买过《 Recommender Systems Handbook》
【思考】热门项目对我们推荐的影响,如何解决?
逆用户频率(Inverse User Frequency)
基本思想:惩罚热门项目
两个用户对冷门项目有过同样行为更能说明他们兴趣相似

难以形成有意义的邻域集合
很多用户两两之间只有很少的共同反馈
而仅有的共同反馈的项目,往往是热门项目(缺乏区分度)
随着用户行为数据的增加,用户间相似度可能变化很快
基本思想:
假设:
关键:
基于 Item-CF 的推荐系统整体流程:
和前面基于用户的非常类似,在此不做展开
用户相似度计算方法:


基于领域的协同过滤算法的关键在于相似度度量的构造。主要有:
余弦相似度
皮尔逊相似度
杰卡德相似度
除此之外,还有通过距离度量来构造相似度:
这部分内容都比较常规,或者前面讲过,在此不再展开。
本文主要介绍了协同过滤基本内容,协同过滤,即利用集体智慧,借鉴相关人群的观点进行推荐。其后又介绍了基于用户、项目的协同过滤。