如何理解推荐系统离线和线上auc和线上点击率不一致的问题?

离线AUC提升但线上CTR下降可能是由特征穿越、线上线下特征不一致和数据分布不一致导致。特征穿越涉及数据泄漏;特征不一致源于代码和数据处理差异;数据分布不一致表现为离线训练数据有偏,线上面临更广泛数据。确保特征一致性和理解数据分布差异是解决问题的关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

离线指标和线上指标不一致是个常见的问题,花了很大力气好不容易离线auc涨了不少,上线一看效果ctr和cpm反而下降。本文例举几种可能的原因和解决办法。

1. 特征/数据出现穿越

一般就是使用了和label强相关的特征导致的数据泄漏。这种问题一般相对好查,很多时候在离线阶段就能发现。明显的表现就是训练集和测试集差异比较大

2. 线上线下特征不一致

我所知,这种情况是导致离线涨在线跌或者没效果的最常见情况。

首先是代码不一致,例如,离线对用户特征的加工处理采用scala/python处理,抽取用户最近的50个行为,在线特征抽取用c++实现只用了30个。只要离线和在线用不同的代码抽取就很容易存在这种代码带来的不一致。

另外一种线上线下不一致,是由于数据的不一致导致。这在离线拼接样本和特征的pipeline中比较常见。一般离线特征都是按照天处理的,考虑各种数据pipeline的流程,处理时间一般都会有延迟,离线特征处理完之后导到线上供线上模型预估时请求使用。

这种不一致都是怎么产生的?例如4月15日这天,线上预估请求用的特征是4月14号的特征数据。到了4月16日,特征pipeline开始处理数据,到了凌晨4点,离线特征处理完了导到线上。那么在4月16日0点-4点,这段时间线上请求的特征使用的是老的特征数据,也就是4月14日的特征数据。4月16日4点-24点,线上特征使用的是4月15日的数据。而在离线样本生成过程中,到了4月17日0点,如果是按天拼接的,那么4月16号这天的所有样本,都会使用4月15日的特征。

这样,4月16日0-4日的样本,在离线样本拼接的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值