推荐系统 - 基于记忆的协同过滤
协同过滤(Collaborative Filtering)
-
协同过滤
基于记忆的协同过滤,本质上是在利用用户以及物品相关的历史记录进行推荐。
它主要通过计算用户历史行为、物品历史评价来计算用户间的相似度以及物品间的相似度,与 K近邻的思想很类似。
与机遇兴趣内容的推荐方法相比,协同过滤具有以下优点:
- 能够对难以进行内容分析、标签化的物品进行推荐;
- 利用历史信息,群体效应,可以共享他人经验;
- 有一定推荐新品的能力,即便物品内容不相似,但根据其他用户行为也可以进行推荐;
- 可能挖掘出用户潜在的但自己不知道的兴趣;
- ……
-
基于用户的协同过滤
基于用户的协同过滤,UserCF.
通过用户的历史行为,计算两两用户之间的相似度,将 Top-N 相似的用户的感兴趣物品与目标推荐用户的感兴趣物品求差集,将差集中的物品推荐给目标用户。
User \ Item item_1 item_2 item_3 user_1 user_2 特点:
∙ \bullet ∙ 相对而言,适合计算用户数量较小的场景,否则计算两两用户之间的计算量较大;
∙ \bullet ∙ 适合个性化推荐要求不严格的场景,易推荐热门物品;
∙ \bullet ∙ 较难对推荐结果进行解释(可以使用借口掩盖);
∙ \bullet ∙ 用户习惯、喜好不易改变,维护用户相似表间隔更新,所以在用户有新行为时,不易进行实时推荐;
∙ \bullet ∙ 新物品上线后,一旦有用户行为,则可立即推荐给相似用户;
-
基于物品的协同过滤
基于物品的协同过滤,ItemCF.
通过物品的历史被用户点评的数据,计算两两物品之间的相似度,将 Top-N 相似的物品的感兴趣用户与目标推荐物品的感兴趣用户求差集,将目标物品推荐给差集中的用户(群发)。
Item \ User user_1 user_2 user_3 item_1 item_2 特点:
∙ \bullet ∙ 相对而言,适合计算物品数量较小的场景,否则计算两两物品之间的计算量较大;
∙ \bullet ∙ 适合个性化需求强烈的场景,适合长尾分布丰富的场景(个性化,但个体总和较大);
∙ \bullet ∙ 用户对某物品一旦有新行为,则可立即将相似物品推荐给该用户,实时性更强;
∙ \bullet ∙ 利用用户个人的历史数据进行推荐,受信度更高;
-
基于记忆的协同过滤的缺点
- 依赖用户对物品的准确评分;
- 容易推荐热门物品;
- 冷启动问题,当新用户、新物品进入系统时,推荐无从依据;
- 评分矩阵稀疏问题,物品多,用户多,但被用户评分的物品较少(尤其对生存周期较短的内容,例如:于新闻、广告等)
-
基于其它方法的推荐
- 基于物品属性计算相似度
- 基于用户特征计算相似度
- 基于用户与物品匹配度进行推荐(基于兴趣内容,在同一特征标签空间中)