如何解决离线和线上auc和线上点击率不一致的问题?

发布时间:
2023-08-25 12:30
阅读量:
16

让算法工程师最头疼的一件事就是线下涨了线上降了。


这时候你可能怀疑自己,这一个月岂不是白干了?

先不要灰心,先问问自己为什么会这样。要是找不出为什么的话,后面半年还得继续白干,就是这么扎心。

但事情也不要总往悲观的方面想,第一是至少你开始思考这个问题了,不是校招面试官一问三不知的时候了。第二是说明你的业务挺有挑战的,过了在电梯上做俯卧撑也能增长的时候。

工业界的算法场景要比比赛复杂很多,所以比赛中,线上线下不一致问题的原因,仅仅是其中一个子集。

算法实验效果不好,先甩锅给工程(玩笑)。

对,你没看错。

工程的原因可能有下面几个:

1.实时特征一致性。典型的各种实时特征场景,你在离线日志解析出来的用户停留时长总比在线长那么半秒,而这个特征又是一个关键特征。仔细看看是不是落库的链路口径不一致。

2特征预处理没有考虑特殊情况。广告场景的新I’d,离线建模的时候没有考虑过这个问题,在线上场景频繁见过新的东西,你是不是取错embedding到一个离谱的位置了。除了广告场景,NLP里的溢出词表词,可能也会给你几个颜色瞧瞧。

3.模型更新失败?上线的时候,一定检查下模型在线上的链路有没有生效,偷懒摸鱼一时爽,缓存还在火葬场。嗯,线上的模型一般都有buffer机制,两道保险也有两道坑,记得刷新。

4.实验配错了。包括不限于流量配错位,场景I’d和实际情况不一致等等低级问题。



当然,甩锅给工程都是一些初级的问题,容易发现,容易解决。要是你算法自己的锅,就没那么容易了。

你自己的锅:


1.特征穿越了

是不是偷偷地用线上不可能产生的逻辑建模了,比如当天的PV和UV。你在离线的时候很美好,在线的时候,这一天还没过完呢,你统计出来的信息肯定是有穿越。好家伙,你做量化,怎么不把今天的收盘价也加进去。

2.建模的技术指标不合理

不要以为会看个AUC,logloss就万事大吉了。这些技术指标往往不是你okr上的关键。AUC高只能说明你模型拟合特征和标签还行。典型的比方说,你的场景是list view 里插的固定条目的广告。你要是用AUC,就不如用NDCG。

3.特征有bias

在建模的时候,debias是老生常谈的问题了,最最经典的问题就是position带来的bias。你把这个item放在推荐页的上面,你把这个query放在搜索联想的第一条,他本身也会因为近水楼台先得月而点击率偏高。

这时候你就得想办法debias了。

4.数据分布不一致

训练样本的分布往往不等于真实的分布。我们在处理离线建模数据的时候,往往会负采样。负样本弱水三千,只取一瓢。你取哪瓢就太有学问了。负样本太简单,模型学不到什么有价值的信息。在相近的类似正样本上分的就不会太好。这时候你的线下指标就失真了。比如推荐场景下,我们往往会选取展示未点击作为负样本的组成部分。

5.流量抢夺,链路纠缠

典型的比如在营销场景,你在前面的PUSH,短信,固定入口广告做优化,把好转化的用户都转化了。那么下游的IVR电销,人工电销一定就变难了。

这时候你离线用历史数据训练的模型可能离线指标提升了,线上也不会有太多的效果。

这种在一些瀑布流程的场景中更为常见,一定要关注实验的上下游变化,比较经典的方法是做MVP机制,一直维持着最优流量的AB测。这样相对提升是可以把握住的。即使小模块指标变得难看了也没关系,可能大盘整体还是变好的。

6.特殊时间点的漂移

双十一大促,过年放假,这些时间点一定要注意。最好跟往年同时间的复刻对比,谨慎实验。因为这时候的幺蛾子特别多,尤其是在一些时间序列的预测任务上,基本上都跑飞了。所以成熟的算法工程师从不让自己利于危墙之下。


其他精彩回答】

  • 请问深度学习中预训练模型是指什么?如何得到
  • 线下AUC涨了,线上指标降了?
  • 特征工程到底是什么?
    在文本分类任务中,有哪些论文中很少提及却对性能有重要影响的tricks?
    机器学习该怎么入门?
  • 如何向深度学习模型中加入先验知识?
  • 各种机器学习算法的应用场景分别是什么(比如朴素贝叶斯、决策树、K 近邻、SVM、逻辑回归最大熵模型)?
    为什么在实际的kaggle比赛中,GBDT和Random Forest效果非常好?
    如何衡量两个「任意数据集」间的相似度?
    为什么 Bert 的三个 Embedding 可以进行相加?
    BERT模型可以使用无监督的方法做文本相似度任务吗?
    Word Embedding 如何处理未登录词?

  • 为什么都说阿里 P7 的晋升是道坎?
  • 图中所说算法工程师的薪水是真的吗?
  • 为什么国内 IT 公司 leader 以上就不怎么写代码,而据说 Google 的 Jeff Dean 还写代码?到底哪种情况好呢?
  • 算法工程师也会遇到35岁这道坎么?
  • 近期互联网裁员情况是什么原因造成的,是否意味着互联网行业进入了冬天?
  • 各个大厂都爆出裁员,作为互联网从业的你,有没有感到焦虑?如何分析当下的状况?
END