CTCVR 模型:广告后效优化的核心引擎
广告系统的传统目标是 CTR(点击率),但在行业广告中,真正重要的是 CVR(转化率)——广告主花钱买的是最终成交,不是点击。
CTR 为什么不够?
一个典型场景:
广告A:CTR 5%,CVR 0.5%
广告B:CTR 3%,CVR 2%
按 CTR 排序:A > B
按 eCPM(CTR × bid) 排序:A > B
但实际上:B 的价值远大于 A
所以需要预估 CVR。但 CVR 预估有两个挑战:
- 样本选择偏差:只有点击过的用户才有转化样本,在曝光阶段做 CVR 预估,样本空间不一致
- 数据稀疏:转化率通常 1-3%,正样本极少
ESMM 架构
ESMM(Entire Space Multi-task Model)是解决样本选择偏差的经典方案:
┌─────────┐
曝光特征 → │ Shared │
│Embedding│
└────┬────┘
┌───────┴───────┐
▼ ▼
┌─────────┐ ┌─────────┐
│ CTR Tower│ │ CVR Tower │
└────┬────┘ └────┬────┘
▼ ▼
pCTR pCVR
│ │
└───────┬───────┘
▼
pCTCVR = pCTR × pCVR
关键设计:在曝光空间训练 CTR,在点击空间训练 CVR,CTCVR = pCTR × pCVR 建立联系。
这样 CVR Tower 可以借助 CTR Tower 的大量样本(CTR 正样本远多于 CVR 正样本)来学习更好的特征表示。
在线推理的挑战
模型是好的,但在线计算 CTCVR × bid 做排序需要极高时效性:
- 用户特征、广告特征、上下文特征实时拼接
- 双塔模型前向推理(~5ms)
- 排序打分(~1ms)
总计要求 < 10ms。解决方案:
- 特征预计算(用户侧特征离线算好)
- 模型蒸馏(从大模型蒸馏到线上小模型)
- GPU 批处理(合并请求一起推理)
TROI 优化
当有了准确的 CTCVR 预估,就可以做 TROI(Target ROI)优化:
目标:在预算约束下,最大化总转化价值
调整出价 = 基础出价 × (实际 ROI / 目标 ROI) ^ α
其中 α 是调节因子,控制出价对 ROI 偏差的敏感度
这套机制让广告主的实际 ROI 更接近目标,从而提升长期留存和预算投入。