更接近线上环境的离线评估方法-Replay
动态离线评估方法
前两篇笔记的内容都是“静态”的离线评估,假设用一个月的数据做测试集,在对测试集里最后一天的数据进行预测时相当于用的30天前的模型进行预测,这与现实环境是不符合的。动态离线评估是为了让评估过程更接近线上的动态环境,先根据样本产生时间先后排序,再用模型依次预测,每次预测时都用预测时间点之前的数据来训练,即增量更新后再进行后面的评估。
Netflix的Replay评估方法
Replay方法通过重播数据流的方法进行离线测试,要求样本中不能包含任何未来信息,避免数据穿越。Netflix为此构建了一整套数据架构,其整合的信息包含:
- 场景信息(Context):包括存储在hive中的不经常改变的场景信息比如用资料、物品信息等;
- 系统日志:指的是实时日志,包含了用户历史行为等
以上信息经过整合后生成天快照,这样就可以按时间取数使用,不需要在Replay的过程中计算特征。
A/B测试与线上评估指标
什么事A/B测试?
又称为“分流测试”或者“分桶测试”,将一个实验分为实验组和对照组,通过控制变量来对比AB组数据。
线上AB测试无法被取代的原因:
不同层之间可能同时存在AB实验,但是实验中每组的流量穿越该层后应该被打散,且均匀分布在下一层的每个组,避免上一层的实验结果影响下一层。
- 同层之间,流量“互斥”
同层之间如果有多个AB测试,不同测试之间的流量应该不重叠;
同一组测试中的实验组和对照组流量是不重叠的,即保证一个用户始终被分到同一个组
线上A/B测试的评估指标
经过AB测试后的模型将直接在线上提供服务,不同类模型的线上评估指标主要有:
- 电商类推荐模型:点击率、转化率、客单价等
- 新闻类推荐模型:留存率、平均停留时长等
- 视频类推荐模型:平均播放时长等
快速线上评估方法-Interleaving
传统AB测试的统计学问题
AB测试者自身属性分布的不均,有些是重度用户,有些是新用户。
不区分AB组,而是把不同的被测对象同时提供给受试者,最后根据受试者的喜好得出评估结果。Interleaving 方法的实现
将排序算法A的推荐结果和算法B的推荐结果生成交替排名,一个用户就可以同时看到两个算法的结果。在使用该方法时考虑到位置偏差,需要以相等的概率让A的结果和B的结果交替领先。Interleaving与AB测试的比较
灵敏度:需要多少样本能验证算法的优劣,interleaving需要的样本量更少
指标的相关性:interleaving指标与ab测试指标有很强的相关性,但是由于interleaving的页面是有两种算法的结果,所以不能反映某一算法的真实效果。Interleaving的优缺点
优点是所需样本少,测试速度快,缺点主要表现在: