Note of Recommendation System in Action

本文主要关于项亮的《推荐系统实践》的笔记。

推荐系统的评测方式

以下也是一项最终能上线的推荐算法的依次测试顺序,

  • 离线评测
    • 将数据集分为训练集和测试集,离线对算法进行评测
  • 用户调查
    • 在上线之前通过调查得到用户满意度的信息
  • 在线评测
    • 进行AB测试,对比推荐算法指标

推荐系统的评测指标

  • 满意度
    • 是推荐系统的最重要标准
    • 无法离线计算,只能通过用户调查和在线实验得到
    • 可通过停留时间、点击率和转化率来统计
  • 预测准确度
    • 最重要的离线测试标准
    • 主要方法是,在离线数据集内的训练集训练的结果与测试集对比,比较重合度。
    • 又分为评分预测和Top N推荐
    • 对于评分预测,有均方根误差(RMSE)和平均绝对误差(MAE)计算两种方式,相差不大,前者对于偏离项惩罚大,后者对于评分取整的情况会降低误差。
    • 对于Top N推荐,通常通过准确率和招呼率来评测
      • 假设$R(u)$和$T(u)$分别是训练集和测试集上的推荐,那么两者的交集长度除以$R(u)$的长度就是precision,交集长度除以$T(u)$就是recall。
    • 评分预测关注预测用户看了电影后会给电影什么样的评分,而Top N是找到用户最有可能感兴趣的电影
  • 覆盖率coverage
    • 粗略定义为推荐系统发掘的物品占全部物品的比率,精确定义为物品流行度与全部物品流行度的比率
    • 可通过信息熵和基尼系数来计算
    • 两者都是计算不同物品流行度之间的平衡度
    • 推荐系统一般具有马太效应:强者更强
  • 多样性
    • 要覆盖满足用户广大的兴趣,可以用不同的物品相似度度量函数来定义不同的多样性
    • 多样性和相似性是trade off的,需要达到一定的平衡,让推荐效果最好
  • 新颖性
    • 推荐用户未见过的物品,最简单的是推荐流行度低的物品
    • 难点在于不牺牲精度的前提下提高多样性和新颖性
  • 惊喜度
    • 推荐结果和用户的历史兴趣不相似,但却让用户觉得满意,那么就可以说推荐结果的惊喜度很高,而推荐的新颖性仅仅取决于用户是否听说过这个推荐结果。
  • 信任度
    • 用户对推荐系统的信任度高,能增加用户与推荐系统的交互
    • 提升用户对推荐系统的信任度的方法
      • 增加推荐系统的透明度:对用户的推荐需要进行解释
      • 提高用户的社交关系进行推荐
  • 实时性
    • 实时更新追踪用户的行为和状态的变化
    • 能够将新加入的物品推荐给用户
  • 鲁棒性
    • 反作弊性
    • 作弊方法
      • 行为注入攻击
      • 评分系统攻击:大批给某物品打高分
    • 如何对抗作弊
      • 采用作弊代价高的行为作为推荐系统采纳的数据
      • 使用数据前进行检测、清理
  • 商业目标
    • 不同利益方关注不同