【推荐系统】算法总结(2) ItemCF
GitHub
https://github.com/calciferer/RecSys/blob/master/algo/ItemCF.py
算法简介
- 与UserCF非常相似,可参考
【推荐系统】算法总结(1) UserCF
1.定义
Item(Item Collaborative Filtering)是基于物品
的协同过滤
算法。“ItemCF给用户推荐那些和他们之前喜欢的物品相似的物品,ItemCF算法并不利用物品的内容属性
计算物品之间的相似度,它主要通过分析用户的行为记录
计算物品之间的 相似度。该算法认为,物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都也喜欢物品 B。”1。
2.步骤
- (1) 计算物品之间的相似度。
- (2) 根据物品的相似度和用户的历史行为给用户生成推荐列表。2
算法实现
- 与UserCF大致相似,主要是推荐公式不同
- pui的公式为
- 解释:
(1)获取用户u的交互列表中的物品items
(2)for i in items , 获取I最近的K个物品K_Wi
(3) for j in K_Wi , 如果j在item中,则跳过;不在,则计算u对j的兴趣值:Wij*Rui(i和j的相似度乘以u对i的评分),将这个值累加到矩阵P[u][j]的位置
算法评估
数据集为:ml-latest-small/ratings.csv
K取range(5, 41)
见https://github.com/calciferer/RecSys/tree/master/result/ItemCF