# 推荐系统

# 由来

推荐系统的由来是信息过载,即社会信息超过了个人或系统所能承受的数量。

推荐系统和信息检索的区别:

  • 主动和被动:相比于信息检索,推荐系统的对象一般没有明确的 query,
  • 个性化程度的高低:推荐系统个性化程度更高
  • 快速满足还是持续服务
  • 是否满足文字难以表达的需求

# 定义

推荐系统是对用户偏好进行预测,并向用户推荐其可能感兴趣的信息或物品的系统。

推荐系统的核心是协同过滤。

# 任务

推荐系统的性能评测包括两个任务:

  1. 评分预测:给定一个用户和一个项目,预测用户对项目的评分。
  2. top-n 推荐:给定一个用户,预测其最感兴趣的 n 个项目。

在推荐系统中,上述两类问题是具有相当大的挑战的。对于评分预测的任务,很多人 diss 这一任务对推荐系统的有效性,因此评分预测的研究较少。举例:假如我是一个穷人,那么我对于苹果手机的打分很高,但是并不代表我会购买苹果手机。

在工业界中,推荐系统的结构实际上相当复杂。主要包括数据和模型两个部分。

  1. 召回:从上亿商品中筛选数万级别的商品,保证 top-5 商品不会被遗漏
  2. 粗排:将数万商品排序,取前数千级别的商品
  3. 精排:将数千商品排序,取前十左右的商品
  4. 在前十商品中,通过业务要求规则进行再次筛选,例如哪些项目希望被打造成爆品等等。

学术界中,推荐系统主要关注粗排和精排任务。

# 推荐系统的形式化

推荐系统的输入包括三个集合:

  • 用户集合 UU
  • 商品集合 II
  • 交互集合 OO: 监督信号

输出是一个模型 ff, 可以预测得分。

# 挑战

  1. 数据稀疏性:用户只能购买所有商品中相当小的一部分
  2. 用户动态性:用户在购买商品后,可能不再需要商品,从而导致矩阵更加稀疏

# 协同过滤的基本假设

  1. 在已观测商品上兴趣相似的用户在未观测商品上的兴趣也类似。这一假设不一定拘泥于推荐系统领域,在参数多、稀疏性强的领域都可以使用此假设。