最经典的推荐算法:协同过滤推荐算法
算法思想:物以类聚,人以群分
基本的协同过滤推荐算法基于以下假设:
- “跟你喜好相似的人喜欢的东西你也很有可能喜欢” :基于用户的协同过滤推荐(User-based CF)
- “跟你喜欢的东西相似的东西你也很有可能喜欢 ”:基于物品的协同过滤推荐(Item-based CF)
-
相似度计算:使用pandas的corr()方法来计算相似度
-
结果如下:
-
评分预测公式
-
使用用户间的相似度进行预测:
-
使用物品间的相似度进行预测:
-
案例–基于协同过滤的电影推荐
分别就算出用户1对各种电影的评分
然后进行排序,挑选评分排名前20的电影
基于回归模型的协同过滤推荐
预测用户对物品的评分:
举例:通过Baseline来预测用户A对电影“阿甘正传”的评分
-
首先计算出整个评分数据集的平均评分 μ 是3.5分
-
用户A比较苛刻,普遍比平均评分低0.5分,即用户A的偏置值 bi 是-0.5;
-
“阿甘正传”比较热门且备受好评,评分普遍比平均评分要高1.2分,“阿甘正传”的偏置是+1.2
-
因此就可以预测出用户A对电影“阿甘正传”的评分为: 3.5+(−0.5)+1.2 ,也就是4.2分。
-
利用平方差构建损失函数
-
梯度下降参数更新公式
LFM算法思路
- 利用平方差来构建损失函数:
加入L2正则化
- 梯度下降更新参数 puk和qik:
BiasSvd算法思路
-
利用BiasSvd预测用户对物品的评分,k表示隐含特征数量:
-
利用平方差来构建损失函数
-
梯度下降更新参数
基于内容的电影推荐
用户画像构建步骤:
- 根据用户的评分历史,结合物品画像,将有观影记录的电影的画像标签作为初始标签反打到用户身上
- 通过对用户观影标签的次数进行统计,计算用户的每个初始标签的权重值,排序后选取TOP-N作为用户最终的画像标签
物品画像构建步骤:
- 利用每部电影的标签作为电影的候选关键词
- 利用TF·IDF计算每部电影的标签的tfidf值,选取TOP-N个关键词作为电影画像标签
- 将电影的分类词直接作为每部电影的画像标签