本节内容提要
本章节可分为四部分。
-
介绍了两种重要的协同过滤方法,具体内容包括它们的假设前提、实践思路、相关要点,并简要地提到了混合协同过滤。
- 基于用户的协同过滤(User-based CF)
- 基于项目的协同过滤(Item-based CF)
-
提到了偏好反馈问题。
-
第三部分介绍了除去前文提到的两种CF方法,还有不少基于模型的方法,并在该部分简单地列举了一些。
- 关联规则挖掘(association rule mining)
- 概率方法(probabilistic methods)
- 基于集群的方法(Cluster-based approach)
- SlopeOne算法
- RF-Rec算法
-
评价了协同过滤的优缺点和安全性能。
协同过滤(Collaborative Filtering/CF)
最突出的推荐系统解决方法
- 可应用于众多领域,适用范围广
- 容易理解并且有大量算法存在
- 被大型电子商务网站应用
基本假设和理念
- 用户对目录项进行评分(隐式地或者显式地)。
- 如果一些用户在过去有相似的偏好,那他们在将来也会有相似的偏好。
- 用户的偏好相对于时间有稳定性和可持续性。
输入和输出
- 输入:给定的“用户-项目评分”矩阵
- 输出类型:
- 预测当前用户喜欢或不喜欢某个特定项目的程度,也就是用户的评分预测。
- 给出受推荐项目的Top-N列表,也就是项目排名。
基于用户的协同过滤(User-based CF)
案例分析
-
给出如下的用户评分表,预测Alice对Item5的评分。
-
基本假设:如果一些用户在过去有相似的偏好,那他们在将来也会有相似的偏好。
-
思路:找一群曾经有着和A相同偏好并且评估过项目i的用户,根据他们评分的平均情况预测A是否会喜欢项目i。
-
需要思考的关键性问题:
- 怎样衡量用户之间的相似度?
- 我们需要考虑多少个相似用户?
- 我们怎样根据用户评分生成一个预测?
用户相似度衡量
一种比较流行的衡量方法是皮尔逊相关系数(Pearson Correlation Coefficient/PCC)。
其中, a a a和 b b b是待比较的两个用户, r a , p r_{a,p} ra,p是用户 a a a对项目 p p p的评分,集合 P P P是用户 a a a和用户 b b b共同评分过的产品集, r a ˉ \bar{r_a} raˉ是用户 a a a对 P P P中所有项目的平均评分。用户相似度的取值范围是[-1,1]。
选择合适的相似用户
方法1:设置相似度阈值。只有高于阈值的相似用户才会被选择。
方法2:Top-N相似用户。
- 获取所有与用户u相似度不等于0的用户集合。
- 获取所有对预测项目给出过评分的用户集合。
- 在以上两个集合中获取j个与用户u相似度最高的用户的集合,用 N u j N_u^j Nuj表示。
进行预测
一种常用的预测函数如下图。其中, p r e d ( u