协同过滤(Collaborative Filtering,简称CF)推荐算法的主要功能是预测和推荐,“人以类聚,物以群分”。可以分为两类,分别是基于用户的协同过滤算法(user-based collaboratIve filtering),和基于物品的协同过滤算法(item-based collaborative filtering)。

  1. 基于用户的协同过滤算法(user-based collaboratIve filtering)
    如果A,B两个用户都购买了x,y,z三本图书,并且给出了5星的好评。那么A和B就属于同一类用户。可以将A看过的图书w也推荐给用户B。
    如何通过用户对不同商品的态度和偏好寻找相似的用户。
  1. 用散点图表示
  2. 欧几里德距离评价
  3. 皮尔逊相关度评价
    相关系数的分类
    0.8-1.0 极强相关
    0.6-0.8 强相关
    0.4-0.6 中等程度相关
    0.2-0.4 弱相关
    0.0-0.2 极弱相关或无相关

为相似的用户提供推荐物品。

加权排序推荐,提取了相似的几个用户评价过的另外商品。并对不同商品的评分进行相似度加权,然后推荐给用户。

总结:1、数据稀疏性。一个大型的电子商务推荐系统一般有非常多的物品,用户可能买的其中不到1%的物品,不同用户之间买的物品重叠性较低,导致算法无法找到一个用户的邻居,即偏好相似的用户;2、算法扩展性。最近邻居算法的计算量随着用户和物品数量的增加而增加,不适合数据量大的情况使用。

  1. 基于物品的协同过滤算法(item-based collaborative filtering)
    如果用户A同时购买了商品1和商品2,那么说明商品1和商品2的相关度较高。当用户B也购买了商品1时,可以推断他也有购买商品2的需求。
    寻找相似的物品。
  1. 用散点图表示
  2. 欧几里德距离评价
  3. 皮尔逊相关度计算公式

为用户提供基于相似物品的推荐。

加权排序推荐

总结:因为物品直接的相似性相对比较固定,所以可以预先在线下计算好不同物品之间的相似度,把结果存在表中,当推荐时进行查表,计算用户可能的打分值,可以同时解决user-based遇到的两个问题(user-based总结里面提到的两个问题)。

  1. Item-based相似度计算
    基于余弦(Cosine-based)的相似度
    基于关联(Correlation-based)的相似度
    调整的余弦(Adjusted Cosine)相似度
  2. Item-based预测值计算
    加权求和
    回归

作者通过实验对比结果得出结论:1. Item-based算法的预测结果比User-based算法的质量要高一点。2. 由于Item-based算法可以预先计算好物品的相似度,所以在线的预测性能要比User-based算法的高。3. 用物品的一个小部分子集也可以得到高质量的预测结果。