推荐系统 入门

原文:https://pdfs.semanticscholar.org/943a/e455fafc3d36ae4ce68f1a60ae4f85623e2a.pdf

背景

为了给用户推荐合适的商品,我们要计算用户、商品之间的相似度,这可以用user-item rating matrix完成。有不同的方法来计算相似度。[1]

1. 介绍

用户的行为可被记录,用来预测用户的偏好。 推荐系统一般分为三种:

  1. Content-based System 首先根据物品的元数据,发现物品的相关性,然后基于用户以前的喜好记录推荐给用户相似的物品[2] 详情可看基于内容推荐算法详解(比较全面的文章)
  2. Collaborative Filtering System
    • memory-based method 这两种方法都是将用户的所有数据读入到内存中进行运算的,因此叫做Memory-based Collaborative Filtering。
      1. 基于用户的协同过滤user-CF[3] 找到该用户有相同喜好的同类用户,把那些同类用户喜欢,而该用户没用过的物品列为推荐。
      2. 基于商品的协同过滤item-CF[3] 基于用户的协同过滤基本思想非常简单,就是找到志同道合的朋友,并把朋友感兴趣的而用户没有接触过的商品推荐给用户。
    • model-based method Aspect Model,pLSA,LDA,聚类,SVD,Matrix Factorization等,这种方法训练过程比较长,但是训练完成后,推荐过程比较快。
  3. Hybrid System 结合1.和2.

user-CF与item-CF对比

由于新用户的注册量非常高user-CF需要计算新用户和之前的用户之间的相似度,这会将数据稀疏延展性差等问题暴露的非常明显。

所以item-CF被提出,它根据用户对商品的使用记录,找到商品之间的相似程度,然后根据用户的喜好记录来推荐相似的商品[2]。相较于用户之间的相似度,商品之间的相似度相对是静态的,当新用户注册并有了一些自己感兴趣的商品信息时,无需再进行计算,直接根据之前存储的商品之间的相似度,将用户可能感兴趣的商品推荐给用户。

CF的两种形式

在实际中,Collaborative Filtering System被运用得最广泛。它包括两种形式:

  1. memory-based method 包括user-CFitem-CF。它们首先会通过计算,找到与指定用户最相似的neighbours,然后根据这些neighbours找到推荐的物品。准确率较高,但时间复杂度高。
  2. model-based method 首先建立一个反映用户行为的模型,再预测物品的分数。准确率不如前者高,但时间复杂度低。

CR与item-CF的区别

基于内容的推荐只考虑对象的本质,将对象按标签形成集合

基于商品的协同过滤,会“集合大众的智慧”,由所有用户对商品的使用记录,来找到商品之间的相似点,再根据用户的购买记录,为用户推荐别的商品。它基于两个假设:1. 兴趣相近的用户对同一商品感兴趣 2. 用户会偏爱与其已购买物品相似的其它物品。[2]

CR、user-CF、item-CF的区别

CR分为三步:1.构建物品的属性资料item profile 2. 构建用户的爱好资料user-profile 3. 对于用户U,遍历item集合,找到与其爱好属性最相似的item作为推荐。 user-CF:由所有用户对商品的使用记录,来找到用户之间的相似点。对于用户U,通过计算与U最相似的n个用户,根据这n个用户的购买记录,为U进行推荐。

item-CF:由所有用户对商品的使用记录,来找到物品之间的相似点。对于物品I,通过计算相似度,可以找到与I最相似的n个物品。 对于用户U,根据其购买记录,可用找到相似的物品作为推荐

其它推荐方法

除了collaborative filtering,还有content-based technique , social recommendation , semantic recommendation被用于推荐用户偏好。本文主要阐述memory-based method的推荐系统

相似度的计算方法

推荐物品预测能力的性能,取决于用于计算用户间相似度的方法。人们发明出各种计算相似度的方法。Xiaoyuan Su and Taghi M. Khoshgoftaar[4]把相似度计算方法分为三类:

  1. correlation based similarity (Pearson correlation, Constrained Pearson correlation, Spearman, Kendall’s τ correlation etc)
  2. Vector cosine based similarity
  3. conditional probability based similarity methods

2. 相关工作

collaborative filtering被广泛地运用,然而也受到一些问题的困扰,比如:data sparsity(数据稀疏),cold start problem(冷启动问题),scalability (可扩展性)。collaborative filtering要根据用户的评分来推荐物品,这就需要一个记录评分的数据库,然而,data sparsity的问题始终会存在,因为用户往往只给少量的物品打过分。 本文会阐述Pearson correlation coefficient、 cosine similarity的缺点。 Ahn 推出了一个新的相似度计算公式,PIP (Proximity-Impact-Popularity)...(接下来是各种人提出的各种方法) 人们推出了各种用于提高collaborative filtering的方法。这些方法的计算是基于局部和全局相似度的。然后人们提出了一个用于权衡各种方法的测量参数体系。实验结果显示,在预测用户评分的准确率中,被推荐的测量参数表现优于始终不变的参数。

5. 结论

传统的相似度计算公式,Pearson correlation coefficient, cosine, Mean Squared Difference,都难以捕捉相似的用户,尤其是那些只为少数物品打分的用户。 The experimental results demonstrated that the proposed estimate parameter outperforms the schemes for which the parameter was kept constant on accuracy of prediction ratings.


  1. Similarity Measures used in Recommender Systems: A Study https://pdfs.semanticscholar.org/943a/e455fafc3d36ae4ce68f1a60ae4f85623e2a.pdf
  2. 协同过滤和基于内容推荐有什么区别?https://www.zhihu.com/question/19971859/answer/82255871
  3. 基于用户的推荐算法和基于商品的推荐算法 https://blog.csdn.net/u014473918/article/details/79771558
  4. Xiaoyuan Su and Taghi M. Khoshgoftaar, A Survey of Collaborative Filtering Techniques, Advances in Artificial Intelligence Volume 2009 (2009), Article ID 421425.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券