线下AUC提升为什么不能带来线上效果提升?

在推荐系统实践中,我们往往会遇到一个问题:线下AUC提升并不能带来线上效果提升,这个问题在推荐系统迭代的后期往往会更加普遍。

在排除了低级失误bug以后,造成这个问题可能有下面几点原因:

  1. 样本

    • 线下评测基于历史出现样本,而线上测试存在新样本。因此线下AUC提升可能只是在历史出现样本上有提升,但是对于线上新样本可能并没有效果。
    • 历史数据本身由老模型产生,本身也是存在偏置的。
    • 包含时间相关特征,存在特征穿越。
  2. 评估目标

    • AUC计算的时候,不仅会涉及同一个用户的不同item,也会涉及不同用户的不同item,而线上排序系统每次排序只针对同一个用户的不同item进行打分。
    • 线上效果只跟相关性有关,是和position等偏置因素无关的。而线下一般是不同position的样本混合训练,因此线上和线下评估不对等。
  3. 分布变化:DNN模型相比传统模型,一般得分分布会更平滑,和传统模型相比打分布不一致。而线上有些出价策略依赖了打分分布,例如有一些相关阈值,那么就可能产生影响。这个可能绘制CTR概率分布图来检查。

那么如何解决呢?可以考虑下面的办法:

  1. 使用无偏样本作为测试集。随机样本最好,不行的话,最好不要是基于老模型产生的线上样本。
  2. 使用gauc等指标,同时从测试集中去除无点击的用户。gauc基于session进行分组。例如对于搜索业务,把一次搜索query对应的一次用户的曝光点击行为作为一个session进行计算。

参考资料

https://zhuanlan.zhihu.com/p/52930683
https://www.zhihu.com/question/305823078
https://zhuanlan.zhihu.com/p/35459467