更接近线上环境的离线评估方法-Replay

动态离线评估方法

前两篇笔记的内容都是“静态”的离线评估,假设用一个月的数据做测试集,在对测试集里最后一天的数据进行预测时相当于用的30天前的模型进行预测,这与现实环境是不符合的。动态离线评估是为了让评估过程更接近线上的动态环境,先根据样本产生时间先后排序,再用模型依次预测,每次预测时都用预测时间点之前的数据来训练,即增量更新后再进行后面的评估。

Netflix的Replay评估方法

Replay方法通过重播数据流的方法进行离线测试,要求样本中不能包含任何未来信息,避免数据穿越。Netflix为此构建了一整套数据架构,其整合的信息包含:

  1. 场景信息(Context):包括存储在hive中的不经常改变的场景信息比如用资料、物品信息等;
  2. 系统日志:指的是实时日志,包含了用户历史行为等

以上信息经过整合后生成天快照,这样就可以按时间取数使用,不需要在Replay的过程中计算特征。

A/B测试与线上评估指标

什么事A/B测试?

又称为“分流测试”或者“分桶测试”,将一个实验分为实验组和对照组,通过控制变量来对比AB组数据。
线上AB测试无法被取代的原因:

  1. 离线评估无法完全消除数据偏差
  2. 离线评估无法还原线上环境
  3. 线上的商业指标在离线评估中无法计算

    A/B测试分流原则

  4. 层与层之间,流量“正交”

不同层之间可能同时存在AB实验,但是实验中每组的流量穿越该层后应该被打散,且均匀分布在下一层的每个组,避免上一层的实验结果影响下一层。

  1. 同层之间,流量“互斥”

同层之间如果有多个AB测试,不同测试之间的流量应该不重叠;
同一组测试中的实验组和对照组流量是不重叠的,即保证一个用户始终被分到同一个组

线上A/B测试的评估指标

经过AB测试后的模型将直接在线上提供服务,不同类模型的线上评估指标主要有:

  • 电商类推荐模型:点击率、转化率、客单价等
  • 新闻类推荐模型:留存率、平均停留时长等
  • 视频类推荐模型:平均播放时长等

    快速线上评估方法-Interleaving

    传统AB测试的统计学问题

    AB测试者自身属性分布的不均,有些是重度用户,有些是新用户。
    不区分AB组,而是把不同的被测对象同时提供给受试者,最后根据受试者的喜好得出评估结果。

    Interleaving 方法的实现

    将排序算法A的推荐结果和算法B的推荐结果生成交替排名,一个用户就可以同时看到两个算法的结果。在使用该方法时考虑到位置偏差,需要以相等的概率让A的结果和B的结果交替领先。
    20200923-《深度学习推荐系统》-chp7 - 图1

    Interleaving与AB测试的比较

    灵敏度:需要多少样本能验证算法的优劣,interleaving需要的样本量更少
    指标的相关性:interleaving指标与ab测试指标有很强的相关性,但是由于interleaving的页面是有两种算法的结果,所以不能反映某一算法的真实效果。

    Interleaving的优缺点

    优点是所需样本少,测试速度快,缺点主要表现在:
  1. 工程实现框架比较复杂,需要增加很多辅助标识数据在数据流中
  2. 只能得出用户对算法推荐结果的偏好度的相对测量,不能定性得出某算法能够提高真实效果

    推荐系统的评估体系

    一个成熟的评估体系应该综合考虑评估效率和正确性,利用较少的资源,快速筛选出效果更好的模型。A/B测试要占用线上流量,流量是有限的并且可能对用户体验造成损害,而且线上测试持续时间较长。而离线评估可以快速得出结果,快速验证可行性,进行模型迭代。因此要在效率和正确性之间平衡。