推荐系统总览

效用矩阵 (utility matrix)

一般的推荐系统中有两类元素,一类是user,一类是item(例如电影、音乐…),可以用一个矩阵表示这些数据
每一行表示每一个user,每一列表示一个item, M[i][j]表示第i个用户对第j项的评分。

一般效用矩阵都是稀疏的,需要做的就是填充这些缺失值

  • Gathering known ratings for matrix
  • Extrapolate unknown ratings from the known ones
  • Evaluating extrapolation methods

长尾效应 (The Long tail)

物理世界和在线世界的差别称为长尾现象,长尾现象要求互联网必须对每个用户进行推荐。

  • 实际的物理实体店中受限于空间,只能推荐畅销项目。
  • 互联网推荐系统不受空间限制,可以推荐所有项目。

关于在线世界与物理世界差异的例子:
What percentage of the top 10,000 titles in any online media store (Netflix, iTunes, Amazon, or any other) will rent or sell at least once a month?
Most people guess 20 percent.(80-20 rule, also known as Pareto’s principle (1896))
The right answer: 99 percent.(Demand for nearly every one of those top 10,000 titles.)

推荐算法分类

基于内容(Content based)

思想:关注item的属性,计算各个item之间的相似度来进行推荐。 Recommend items to customer x that are similar to previous items rated highly by x.

工作原理

基于内容的推荐系统是建立在用户给出的数据之上的,用户给出的数据要么是对物品的直接评分或者是点击或者浏览物品,通过这些数据可以建立出基于这个用户的基本信息(user profile),后续对该用户物品推荐是基于其user profile,user profile越完善,推荐系统的效果越好。

工作流程

  • Construct item profiles (构建描述item的向量)
    • 特征可以是明确的属性值,也可以是从文档中提取出来的特征
  • Construct user profiles (构建描述user喜好的向量)
    • 将user的偏好也表示成同一空间下的向量
  • Recommend items to users based on content

优劣

优点:

  1. 不需要其他user的数据
  2. 可以根据user的独特喜好来推荐item,也就是说可以推荐一些小众的item
  3. 推荐的原因可以很容易被解释
    缺点:
  4. 内容的特征提取的问题,如何才能提取出最有用的特征(requires a lot of domain knowledge.)
  5. 只能推荐与用户历史数据中相似的item(model has limited ability to expand on the users’ existing interests)
  6. 无法利用其他用户的数据

协同过滤(Collaborative filtering)

思想:关注item与user之间的关系,先识别相似用户,然后基于相似用户进行相似项目进行推荐。 Suggestions made to a user utilizing information across the entire user base

工作原理

基于协同过滤的推荐系统是建立在许多用户的数据之上的,通过分析这些用户之间的相似度,发掘相似的用户,(假设用户A和B相似),推荐A一些B买过的东西。其主要精髓在于:物以类聚(item-based),人以群分(user-based)。
It’s based on the idea that people who agree in their evaluations of certain items in the past are likely to agree again in the future.

关于一点思考:Users only see what they are expected to like.

协同过滤的两类算法

Memory-based approach

User-based CF (k-nearest neighbor collaborative filtering)
  • 思想: 为用户A找到相似用户,然后基于相似用户进行相似项目推荐
  • 步骤:
    • 根据与A的相似度来为A的相似用户分配权重
    • 选择topk相似用户
    • 基于topk相似用户对于item的评分去预测A对item的评分
  • 例子: 假设A有3个相似用户,B(sim=0.8, rating(h)=5),C(sim=0.3,rating(h)=4),D(sim=0.5,rating(h)=3) 预测A对于h的评分
    • r_a(h) = 0.8x5+0.3x4+0.5x3 / (0.8+0.3+0.5) = 4.2
Item-based CF
  • 思想: 为物品x找相似物品,然后基于用户之前喜欢/买过的物品为其推荐最相似的物品
  • 例子: 为电影进行评分时, similar items will be rated similarly by the same user

Model-based approaches

矩阵分解

CF优劣

优点:

  1. 利用了别的user的数据
  2. 不需要特征选择(不需要domain knowledge)

缺点:

  1. 需要足够的数据支持
  2. 稀疏,构建出的utility matrix稀疏且庞大
  3. 无法推荐从未被评级的item
  4. 不能根据某个用户的特有品位进行推荐

混合方法(Hybrid)


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!