文章目录
  1. 1. 基于内容(CB)的推荐
  2. 2. 基于协同过滤(CF)的推荐
    1. 2.1. 基于物品(itemCF)的协同过滤
    2. 2.2. 基于用户(UserCF)的协同过滤
  3. 3. 三者区别

基于内容(CB)的推荐

简单的一句话说,比如你在京东买东西,京东会根据你之前的购买或浏览的商品,推荐相似的商品。
大致步骤:

  1. 首先找出能代表item的特征,也就是item的content。
  2. 建立user的item特征数据,建立user喜好特征,也就是喜欢哪些,不喜欢哪些。
  3. 候选item特征和用户的喜好特征比较,推荐相似度最大的一组item。

主要是需要对item的特征建立。

基于协同过滤(CF)的推荐

协同过滤的推荐主要有两种:ItemCF与UserCF

基于物品(itemCF)的协同过滤

大致步骤:

  1. 计算物品的相似物品。
  2. 根据用户对物品的行为(评价,打分)和物品的相似度生成推荐列表。

基于用户(UserCF)的协同过滤

大致步骤:

  1. 找出与用户相似的用户集合。
  2. 根据集合中用户喜好物品,找出待推荐用户没有出现的喜好物品形成推荐列表。

三者区别

基于内容(CB)
优点:

  1. 推荐之间的用户独立,一个用户与其他用户无关。对于被网上刷评论的商品对推荐没有影响。
  2. 推荐理由明显,item的特征适合用户的品味。
  3. 新的item一出来,就可以推荐给用户。(协同过滤就不可以,必须依靠用户的打分评价行为)
  4. 没有冷启动问题。

缺点:

  1. 有些item的特征属性抽取困难,比如电影。
  2. 难以发掘用户潜在兴趣,原因只是针对过去喜欢的东西推荐相似的东西,但是一个人的兴趣只能不仅仅就一类东西。
  3. 新用户就无法推荐了,因为没有喜好历史。

基于协同过滤(CF)
优点:

  1. 能够过滤难以进行机器自动内容分析的信息,如艺术品,音乐等。
  2. 能够发掘用户的潜在兴趣。
  3. 过滤掉一些复杂、难以表述的概念。

缺点:

  1. 不能实时推荐,必须有用户行为后(最初评价问题)。
  2. 用户对商品的评价非常稀疏,这样基于用户的评价所得到的用户间的相似性可能不准确(即稀疏性问题)
  3. 冷启动问题。

UserCF算法的特点是:

  1. 用户较少的场合,否则用户相似度矩阵计算代价很大。
  2. 适合时效性较强,用户个性化兴趣不太明显的领域。
  3. 用户有新行为,不一定造成推荐结果的立即变化。
  4. 对新用户不友好,对新物品友好,因为用户相似度矩阵需要离线计算.
  5. 很难提供令用户信服的推荐解释。

对应地,ItemCF算法的特点:

  1. 适用于物品数明显小于用户数的场合,否则物品相似度矩阵计算代价很大。
  2. 适合长尾物品丰富,用户个性化需求强的领域。
  3. 用户有新行为,一定导致推荐结果的实时变化。
  4. 对新用户友好,对新物品不友好,因为物品相似度矩阵需要离线计算。
  5. 用用户历史行为做推荐解释,比较令用户信服。

和UserCF算法相比,ItemCF算法的离线实验结果要差一些,不过这是在两者优化前的结果,实际优化后性能是接近的。原始ItemCF算法的覆盖率和新颖度不高的原因可以归结为哈利波特问题,也就是热门物品和其他物品的相似度都很高,这个问题一个办法是惩罚热门物品,同时可能还需要引入物品的内容数据来修正。

其他推荐的优缺点:


参考文献:

《推荐系统实践》笔记

文章目录
  1. 1. 基于内容(CB)的推荐
  2. 2. 基于协同过滤(CF)的推荐
    1. 2.1. 基于物品(itemCF)的协同过滤
    2. 2.2. 基于用户(UserCF)的协同过滤
  3. 3. 三者区别