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 预估有两个挑战:

  1. 样本选择偏差:只有点击过的用户才有转化样本,在曝光阶段做 CVR 预估,样本空间不一致
  2. 数据稀疏:转化率通常 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 做排序需要极高时效性:

  1. 用户特征、广告特征、上下文特征实时拼接
  2. 双塔模型前向推理(~5ms)
  3. 排序打分(~1ms)

总计要求 < 10ms。解决方案:

  • 特征预计算(用户侧特征离线算好)
  • 模型蒸馏(从大模型蒸馏到线上小模型)
  • GPU 批处理(合并请求一起推理)

TROI 优化

当有了准确的 CTCVR 预估,就可以做 TROI(Target ROI)优化:

目标:在预算约束下,最大化总转化价值

调整出价 = 基础出价 × (实际 ROI / 目标 ROI) ^ α

其中 α 是调节因子,控制出价对 ROI 偏差的敏感度

这套机制让广告主的实际 ROI 更接近目标,从而提升长期留存和预算投入。