在电商推荐系统中,转化率(CVR)预估一直是个棘手的问题。想象一下这样的场景:用户点击了商品广告,可能当天就完成购买,也可能过了一周才下单,甚至购买后又申请退款。这种从点击到最终确定转化的时间差,就是我们常说的"延迟反馈"问题。
传统CVR预估主要关注"点击-转化"这一单阶段过程,但现实业务中出现了更复杂的场景。以淘宝为例,平台不仅需要知道用户是否会购买(CVR),还需要知道购买后是否会退款(NetCVR),以及最终能带来多少交易额(GMV)。这些后链路指标预估面临着"级联延迟反馈"的新挑战:
多阶段耦合的延迟问题:NetCVR需要同时建模"点击-转化"和"转化-退款"两个阶段的延迟,而GMV预估还要考虑用户可能多次购买(复购)带来的连续延迟。
数据观测的偏置问题:在模型训练时,我们只能看到当前已经确定的转化和退款数据,那些尚未完成决策的用户行为会被错误地标记为负样本。这种偏置在多个延迟阶段叠加时会更加严重。
任务特性的差异问题:CVR/NetCVR是二分类问题,GMV是回归问题,传统的单阶段延迟反馈解决方案无法直接迁移应用。
实际业务中,我们发现NetCVR预估的延迟反馈窗口平均达到72小时,而约35%的退款行为发生在购买后24小时内。这种复杂的时间分布使得简单的时间窗口划分方法完全失效。
面对级联延迟反馈的挑战,阿里妈妈团队提出了系统性的解决方案,其核心创新点可以概括为"一个基础,两个框架":
研究团队开源了CASCADE和TRACE两个数据集,填补了行业空白:
这两个数据集的最大特点是支持15分钟粒度的流式训练评估,能真实模拟工业场景下的数据延迟情况。下图展示了CASCADE数据集中转化与退款延迟的分布情况:

针对NetCVR预估,团队提出了TESLA框架,其核心思想是:
针对GMV预估的特殊性,READER框架的创新点在于:
TESLA采用多任务学习架构,其核心组件包括:

这种设计既考虑了转化与退款行为的相关性(通过共享层),又保留了各自的特异性(通过专用塔)。实验表明,相比端到端直接建模NetCVR,这种分解式设计能带来8.7%的AUC提升。
为了解决级联延迟带来的标签偏置,TESLA采用了分阶段纠偏策略:
CVR纠偏:对于"点击-转化"阶段,使用逆概率加权(IPW)方法:
code复制w_cvr = 1 / p(observed_cvr | x, t)
其中p(observed_cvr|x,t)是给定特征x和时间t下转化被观测到的概率
RFR纠偏:对于"转化-退款"阶段,采用条件重要性加权:
code复制w_rfr = 1 / p(observed_rfr | x, t, conversion=1)
这种分阶段处理确保了每个延迟环节都能得到有效校正。在实际实现中,这两个权重估计器是通过辅助神经网络实时更新的。
传统的交叉熵损失对延迟反馈场景存在两个问题:
TESLA提出了延迟感知排序损失(DAR Loss):
code复制L_dar = ∑_{i,j} φ(t_i,t_j)max(0,1-(f(x_i)-f(x_j)))
其中φ(t_i,t_j)是时间权重函数,给延迟时间短的样本对分配更高权重。同时配合不确定性感知负采样,优先选择模型确信度高的负样本参与训练。
GMV预估的难点在于用户的购买次数不确定。READER的创新在于:
路由模块:预测点击会导致单次购买还是多次购买
code复制p_router = σ(W^T h + b)
其中h是共享编码层的输出
专家塔:
混合路由机制:
这种设计在TRACE数据集上实现了路由准确率82.3%,显著优于单模型方案。
针对回归任务的特殊性,READER提出了三项创新:
回归校准器(Calib):
python复制class Calibrator(nn.Module):
def forward(self, x, t):
# t: 观测时间与点击时间的差值
return self.mlp(torch.cat([x, t], dim=1))
该模块学习当前观测到的GMV与最终真实GMV的偏差模式
真实标签对齐(GRA):
当转化窗口完全关闭后,用真实GMV对模型进行微调,修正之前的预测偏差
有偏标签遗忘(PLU):
对早期基于部分观测数据的过时预测执行梯度上升操作,减轻其对模型的影响
在CASCADE数据集上的测试结果显示:
在TRACE数据集上:
在淘宝信息流广告场景的线上测试中:
在实际部署时,我们总结了以下经验:
流式训练架构:
服务化优化:
java复制// 伪代码:GMV预估服务优化
public class GMVPredictor {
private Router router;
private SingleTower singleTower;
private RepurchaseTower repurchaseTower;
public float predict(UserFeature uf, ItemFeature itf) {
float routeProb = router.predict(uf, itf);
if (routeProb > 0.7) {
return repurchaseTower.predict(uf, itf);
} else if (routeProb < 0.3) {
return singleTower.predict(uf, itf);
} else {
return routeProb * repurchaseTower.predict(uf, itf) +
(1-routeProb) * singleTower.predict(uf, itf);
}
}
}
通过动态路由,服务TP99延迟控制在28ms以内
特征体系设计:
基于当前工作,我们认为级联延迟反馈建模还有以下值得探索的方向:
增量式机器遗忘:
python复制def unlearn_step(model, sample):
# 对早期基于部分观测的预测执行梯度上升
pred = model(sample)
loss = -F.mse_loss(pred, sample.label) # 梯度上升
loss.backward()
optimizer.step()
这种方法可以主动消除延迟反馈初期产生的错误更新
大模型增强的路由:
考虑用LLM增强复购预测,例如:
code复制用户最近购买了奶粉 → 可能周期性复购
用户购买了婚纱 → 大概率不会复购
多场景联合建模:
探索跨广告位、跨业务的级联延迟模式迁移,提升小场景的预估效果
在实际业务迭代中,我们发现级联延迟反馈问题会随着业务形态变化而演化。比如直播电商的兴起带来了新的延迟模式,这要求建模框架具备足够的灵活性和可扩展性。TESLA和READER的设计哲学正是基于这种考虑,通过模块化的架构支持持续迭代。