【推荐系统】算法总结(2) ItemCF

GitHub

https://github.com/calciferer/RecSys/blob/master/algo/ItemCF.py

算法简介

1.定义

Item(Item Collaborative Filtering)是基于物品协同过滤算法。“ItemCF给用户推荐那些和他们之前喜欢的物品相似的物品,ItemCF算法并不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为记录计算物品之间的 相似度。该算法认为,物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都也喜欢物品 B。”1

2.步骤

  • (1) 计算物品之间的相似度。
  • (2) 根据物品的相似度和用户的历史行为给用户生成推荐列表。2

算法实现

  • 与UserCF大致相似,主要是推荐公式不同
  • pui的公式为【推荐系统】算法总结(2) ItemCF
  • 解释:
    (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]的位置
    【推荐系统】算法总结(2) ItemCF

算法评估

数据集为:ml-latest-small/ratings.csv
K取range(5, 41)
https://github.com/calciferer/RecSys/tree/master/result/ItemCF


  1. 项亮《推荐系统实践》P51 ↩︎

  2. 项亮《推荐系统实践》P53 ↩︎