问题出现在了哪里?模型线下提升但线上没有提升

原因分析:

1 offline 与 online 的特征没有对齐

工作中添加新的特征经常会出现offline配置文件没有同步到online,特征解析错误或者抽取方式存在区别,这些均会导致offline模型训练用到的数据和online预测用到的数据不一致。因此需要上线特征之前,需要先对比相同样本 online和offline特征是否对齐。

2 online特征监控

特征来源有很多方法,直接线上抽取、从DB获取、从redis获取等,一旦某个环节出现问题,就会导致特征缺失甚至错误,因此需要针对不同来源的特征进行监控,例如各个时段特征分布、峰值、耗时等。

3 特征更新不符合预期

用户侧和物品侧不同特征更新的频率不同:

长期:用户年龄、性别;物品的类别、来源,周级别更新就可以
中期:用户物品画像中的统计特征,例如某个topic下点击率,某文章昨天的统计特征,天级别更新
短期:app安装列表
实时:用户点击物品后兴趣/点击历史等需要及时更新、物品当前总的pv等

特征更新延迟,例如今天晚上预测用的用户前几次行为之前的画像,因为用户短时兴趣和电机列表话,会导致线上实验效果的衰减会特别厉害。

4 偏置特征的使用

对于bias特征,例如position bias,使用不当会造成offline和online的差距很大。

线上效果只和用户看到后的点击的可能性有关,和position等偏置因素无关的。而线下一般是不同position的样本混合训练,因此线上和线下评估不对等。

5 数据划分的问题

训练集和测试集存在重叠的部分

6 数据穿越

样本数据含昨天/今天的数据,7:3 按随机方式划分数据,训练数据今明两天的都有,测试数据今明两天的也都有, 不能保证测试数据比训练数据新。

7 模型训练时过拟合了

8 线上服务不正常

线上服务挂了、serving超时、模型实时更新延迟或者中断

9 流量划分偏差

模型的验证都是通过AB实验完成的,如果流量划分不均匀正交会带来偏差,结果也就没有置信度,常用方法是通过AABB来判断提升是否稳定。

10 上线实验后训练数据分布变化

模型offline评估时拟合的是base模型跑出来的数据分布,online上训练数据里既有base模型产生的也有treat模型产生的训练数据,且treat模型产生的训练数据占比在不断变化,也就死数据分布在变。常用办法是在模型训练过程中,将model_name作为bias特征,添加到wide部分。

Reference

欢迎关注微信公众号(算法工程师面试那些事儿),本公众号聚焦于算法工程师面试,期待和大家一起刷leecode,刷机器学习、深度学习面试题等,共勉~

算法工程师面试那些事儿

おすすめ

転載: blog.csdn.net/qq_40006058/article/details/121070417