快手双时钟框架拆解广告长周期 CVR,追平九成 Oracle 上限,线上收入 +2.5%

TWICE: Two-Clock, Two-Window Learning for Long-Horizon Conversion Prediction in Online Advertising

Kaiyuan Li, Kun Wang, Zhongbo Wang, Teng Sha, Ming Yan, Yanhua Cheng, Xialong Liu

cs.LG, cs.IR

2026-07-28

快手 TWICE 把广告长周期 CVR 拆成『点击时钟 + 转化时钟』,延迟转化只训延迟模型、不污染 CVR 头;追平约九成 Oracle 上限,线上收入 +2.5%。

这篇在解决什么

广告系统要预测一次点击之后会不会转化(CVR),但转化常常延迟发生:今天点的广告,可能几天甚至 30 天后才下单。模型必须用刚发生不久的点击来训练,这些点击的转化还没回来,标签是残缺的。等到 30 天后标签成熟再训,模型早就过时了。

业界已有的做法(比如 MISS、重要采样纠偏)各有取舍。快手这篇要同时对付两个难题:既要让近期点击尽快进入训练(短观测窗口),又要用这些还没成熟的点击预测长周期(30 天)的 CVR;而且延迟回来的转化来自不同时间的历史点击队列,混在一起会带偏模型。TWICE 的解法是把这个过程显式拆成两个时钟。

方法

核心是把「长周期 CVR」拆成两个可分开训练的部分,关系式是 po(x) = pv(x) · F(o|x):短窗口观测到的 CVR po,等于目标周期 CVR pv 乘上延迟累积分布 F(o)。短窗口标签和长周期目标被延迟模型桥接起来。

为什么要拆?如果让延迟转化直接去训 CVR 头,它们带来的梯度其实是「延迟分布」的信息,会污染「会不会转化」这个判断;分开之后,延迟信息只喂养延迟模型,CVR 头只看干净的短窗口标签。

结果

离线在两个数据集上,用「相对 Vanilla(短视基线)到 Oracle(事后全知,不可部署)之间的差距恢复了多少」(RILL)来衡量:

数据集点击量CVRTWICE AUC对比最强基线RILL
Criteo15.61M22.66%0.8413MISS 0.839589.7%
工业广告174.09M0.64%0.9185MISS 0.916090.4%

TWICE 把不可部署的 Oracle 与短视 Vanilla 之间大约九成的差距追了回来,且全程只用一个 30 天的 checkpoint。

线上 A/B(快手广告系统,日服务数十亿请求):预期收入 +2.486%、收入 +1.858%、转化 +2.061%,均 p<0.01;预测校准 PCOC 从 0.961 修到 0.990;预测耗时 36ms、训练 4 分钟,都没变。

还有一个关键证据:TWICE 相对 MISS 的 AUC 增益随延迟变大而放大,在 [0,1h] 区间只有 0.00012,到 (14d,30d] 区间涨到 0.00405。这说明它的优势确实来自更会处理延迟转化。

为什么重要

这是典型的「工业界把一个被忽视的偏差结构拆清楚」的活。对做 CVR/CTR 延迟反馈的人,这套双时钟分解加梯度隔离可以直接搬:它不要求重放历史点击,训练 4 分钟、预测 36ms 的开销在生产里完全可接受,线上还实打实涨了收入。把延迟信息从 CVR 头里剥离出去这个设计,对任何「标签会迟到」的预测任务都有借鉴价值。

局限与存疑

作者坦白,这套目标函数的精确性依赖两个假设:每个延迟上下文和点击时间区间内的 pCVR 质量整体校准,且同一上下文里的转化者延迟分布平稳。生产里这两个条件只是近似满足(G 刻意做得紧凑,每个点击分数一旦记录就冻结)。

延迟模型只能用紧凑的 G(x) 而不能用完整 x 条件化,因为完整条件会让到达似然退化(精确键聚合产生只有一个样本的风险集,梯度为零)。这是个工程妥协,意味着延迟分布刻画得比较粗。论文也强调这是「插值式条件似然」,能纠正队列暴露偏差,但并没有声称给出无偏的延迟估计。

术语

原文与代码

社区讨论

相关论文

全部论文解读