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