项亮 《推荐系统实践》 第一章笔记
一、实验方法
1. 离线实验
通过日志系统获得用户行为数据,得到标准数据集。将数据集划分为训练集和测试集。在训练集上训练用户兴趣模型,测试集上进行预测。通过离线指标评测算法在测试集上的预测结果。
优点:
l 不需要对实际系统的控制权
l 不需要用户参与实验
l 速度快,可测试大量算法
缺点:
l 与商业指标存在差距
l 无法计算商业上关心的指标(点击率、转化率)
2. 用户调查
真实用户在待测系统上完成一些任务,记录用户行为,让用户回答问题,通过分析行为和答案了解测试系统性能。保证测试用户与真实用户分布相同,保证双盲实验(记录结果的实验人员和用户事先不知道测试目标)
优点:
l 可获得与用户主观感受相关指标
l 相对在线实验风险较低,出现错误后容易弥补
缺点:
l 成本高,耗费用户大量时间,或花钱雇测试用户
l 难以组织大规模用户测试,人数少时结论没有统计意义
l 难以实现双盲实验,测试环境下的指标在真实环境下无法重现
3. 在线实验
AB测试:将用户随机分成几组,不同组用户采取不同算法,通过统计评测指标比较算法。
大型网站的AB测试系统设计复杂。不同层的AB测试间相互干扰。因此切分流量是AB测试中的关键,不同层间需要从一个统一地方获得流量,且流量应该正交。切分流量通过流量控制系统实现。
优点:
l 可公平获得不同算法实际在线时的性能指标,包括商业上关注的指标
缺点:
l 周期长,长期实验才能得到可靠结果,用于测试离线实验和用户调查中表现好的算法
二、评测指标
1. 用户满意度
无法离线计算,在线系统中通过统计用户行为得到,通过购买率,点击率,用户停留时间和转换率等指标度量用户的满意度。
2. 预测准确度
重要离线评测指标。
l 评分预测的预测准确度
均方根误差(RMSE)
平方项加大了对预测不准的用户评分的惩罚,对系统的评测更苛刻。
平均绝对误差(MAE)
若评分系统基于整数建立,对预测结果取整会降低MAE的误差。
l TopN推荐
Precision(准确率/精度)
Recall(召回率)
一般会选择不同的推荐列表长度N,计算一组准确率/召回率,画出准确率/召回率曲线
3. 覆盖率
推荐系统能推荐出的物品占总物品集合的比例。
描述推荐系统对物品长尾的发掘能力,是内容提供商关心的指标。
可以通过物品在推荐列表中出现的次数的分布描述推荐系统挖掘长尾的能力。分布平,覆盖率高,分布陡峭,覆盖率低。
信息熵
基尼系数
可以定义覆盖率,越小越好。
马太效应使强者更强,弱者更弱。评测推荐系统是否具有马太效应,使用基尼系数。如果从推荐列表中计算出的物品的流行度基尼系数大于初始用户行为中计算出的基尼系数,说明推荐算法具有马太效应。
4. 多样性
描述推荐列表中物品两两之间的不相似性。
5. 新颖性
推荐结果的平均热门程度越低,新颖性越高。
6. 惊喜度
推荐结果与用户历史兴趣不相似却让用户满意。
7. 信任度
提高系统的信任度需要增加系统的透明度(提供解释);考虑社交网络信息,利用用户好友信息给用户推荐并进行解释
8.实时性
新闻、微博具有时效性。
实时更新推荐列表满足用户新的行为变化(通过推荐列表的变化速率评测)
将新加入系统的物品推荐给用户(冷启动能力)
9. 健壮性
衡量系统抗击作弊的能力。通过模拟攻击,比较前后推荐列表的相似性评测算法健壮性。
提高系统的健壮性可以通过使用代价高的用户行为设计系统或在使用数据前进行数据清理实现。
10. 商业目标
三、评测维度
增加评测维度知道算法在什么情况下性能最好,全面了解系统性能
用户维度
物品维度
时间维度