前言

从数据、算法的角度汇总,并根据当前业务需求进行分析。

数据

物品

被推荐的对象集;物品具有复杂性、有效用的特点。

  • 复杂度低且价值小的物品:新闻、网页、书籍、光盘、电影
  • 复杂度高且价值大的物品:数码相机、手机、个人电脑。最复杂的是保险政策、金融投资、旅游和工作。
  • 物品集可以用各种信息表示:电影的种类(喜剧、悲剧)、导演信息、演员信息,评论抽象

用户

用户有不同的目的和特点。协同过滤中,用户被直接描述成他对物品的评价记录。

  • 协同过滤中,所有用户被建模成一张简单的表,包含每个用户对若干物品的评分记录
  • 也可以通过行为模式来描述用户,如网站浏览模式、旅游搜索模式

事务

用户和推荐系统进行交互的一条记录。

  • 事务日志,比如用户选择了某个物品
  • 特定推荐所处上下文描述信息(目的和查询词)
  • 甚至是显式反馈的评分

算法

基于内容的推荐

为用户推荐与他们过去的兴趣类似的物品。

  • 通过用户已经评分的物品来确定这些物品的共同特点,并利用这些特点为用户推荐也有这些特点的新物品
  • 仅仅使用当前用户提供的评分来构建用户的个人信息
  • 对于没有用户评分的新物品的推荐不受影响,但是对于没有任何评分的新用户无法推荐。

基于协同过滤的推荐

找到与用户有相同品味的用户,将相似用户过去喜欢的物品推荐给用户。

  • 基于近邻的推荐:简单、合理、高校、稳定。预先计算物品的相似性矩阵,可以提供实时推荐结果。当用户数远远大于物品数时,使用基于物品的推荐方法更准确;当物品数远远大于用户数时(科研论文推荐),使用基于用户的推荐更好。
    • 基于用户的推荐:使用用户的历史评分向量表示用户的特征,通过找到相近用户特征的用户群里评价过的物品,对他们进行打分来进行推荐
    • 基于物品的推荐:使用对某个物品评分过的用户群来表示物品的特征,找到相近物品特征的物品集合中用户u的打分,来估计用户u对该物品的打分
  • 基于模型的推荐:使用属性构建用户和物品之间的关联,属性代表用户和物品的潜在特征。

基于人口统计学的推荐

不同的人群信息(年龄、地域、语言)产生不同的推荐。

基于知识的推荐

  • 基于案例的推荐:
  • 基于约束的推荐:利用预定义的知识库
    • 没有冷启动问题,每一次推荐绘画中的需求都是直接引出的
    • 设置一系列的约束条件,用户需求就是一个需求组合

基于社区的推荐(社会化推荐)

依赖于朋友的偏好。

混合推荐系统

对于当前业务可用的方法思考

  • 基于分类的方法:根据人口统计学特征,将新用户跟老用户群进行聚类分析,然后推荐同一类同学去过的院校。
    • KNN
    • 贝叶斯
    • SVM
    • 人工神经网络
  • 基于内容的推荐:每个用户对物品的评分组成训练集 TR(I, r), r表示用户对I的评分,通过对TR进行分类,计算出用户模型, 对没有评分的物品进行测试,根据分类的结果进行排序推荐。
    • 可以用贝叶斯分类、Rocchio算法。
    • 问题:缺少当前学生对于院校的评分矩阵,如果根据隐式信息(学生录取到某个学校),则每个学生只有一个学校评分,矩阵及其稀疏
  • 基于用户的协同推荐:在评分矩阵中,使用用户的历史评分表示用户特征,通过找到近邻的用户来进行推荐。
    • 问题:缺少历史学生对于院校的评分矩阵,如果根据隐式信息(学生录取到某个学校),则每个学生只有一个学校评分,矩阵及其稀疏
  • 基于物品的协同推荐:在评分矩阵中,使用物品的用户评分表示物品特征,通过找到近邻的物品来估计用户的评分,从而为某一用户进行推荐。
    • 问题:跟基于用户的推荐一样,评分矩阵稀疏
  • 基于约束的推荐系统:根据领域知识库,各类推荐模型,比如多少分范围内推荐什么学校等等。