Transformer在广告CTR预测中的应用:CADET模型解析
1. CADET模型架构解析
1.1 模型整体设计思路
CADET模型的核心创新在于将解码器Transformer架构应用于广告点击率预测场景。传统DLRM模型在处理广告CTR预测时存在三个主要局限:1) 难以有效建模用户行为序列的长期依赖关系;2) 无法优雅处理广告位置等后评分(post-scoring)上下文信号;3) 特征交互方式受限于人工设计的交叉特征。CADET通过以下设计解决了这些问题:
首先,模型采用完全基于Transformer解码器的架构,将用户历史行为(包括广告曝光和点击动作)建模为时间序列。这种设计使模型能够捕捉用户兴趣的演化模式,例如一个用户连续查看多个"机器学习培训"广告后,对相关广告的点击概率变化。
其次,创新性地设计了上下文条件解码模块(Context-Conditioned Decoding Block)。这个模块包含多个预测头,每个头对应不同的上下文条件(如广告位置区间)。在训练时,只有实际发生的上下文对应的预测头参与损失计算;在推理时,所有预测头并行计算,根据实际上下文选择对应输出。这种设计巧妙地解决了广告位置等上下文信号在推理时未知的"鸡与蛋"问题。
1.2 输入序列构建
CADET的输入序列采用特殊的交错格式,将静态用户特征、广告曝光特征、上下文信号和用户动作有机组合:
[用户静态特征; 广告1特征,(上下文1,动作1); 广告2特征,(上下文2,动作2); ...]这种设计有几个关键考虑:
- 用户静态特征(如职业、行业)作为序列前缀,为后续行为提供背景信息
- 广告特征包含三部分:广告自身属性(如广告ID)、请求特征(如设备类型)和其他曝光相关特征
- 上下文特征(如最终广告位置)与用户动作成对出现,确保时间一致性
- 序列按时间顺序排列,最新事件位于序列末尾
实际实现中,序列长度通常设置为4096个token,可覆盖数周的用户行为。过长的序列会通过chunking技术分割处理。
1.3 自门控注意力机制
传统Transformer在广告CTR预测中面临训练不稳定的问题,主要表现为:
- 某些特征维度主导注意力计算
- 梯度爆炸/消失频繁发生
- 不同训练运行结果差异大
CADET引入了双层自门控机制解决这些问题:
表示层门控:
Gate(X) = σ(W_gate_X · X) X̃ = X ⊙ Gate(X)这个门控相当于特征选择器,抑制噪声或无关维度,保留有用特征。实验显示,表示层门控使训练曲线平滑度提升47%。
交互层门控:
Gate(Q) = σ(W_gate_Q · Q) Q̃ = Q ⊙ Gate(Q) Gate(K) = σ(W_gate_K · K) K̃ = K ⊙ Gate(K)交互层门控调节query-key点积的幅度,防止某些token垄断注意力。这解决了广告CTR预测中常见的"注意力汇聚"问题——模型过度关注少数强特征而忽略其他有用信号。
1.4 时间感知的位置编码
广告CTR预测对时间敏感,两个关键时间尺度需要捕捉:
- 短期效应:几分钟内的连续广告曝光会产生疲劳或增强效应
- 长期模式:某些广告类型在周末或工作日的表现差异
CADET改进Rotary Position Embedding(RoPE),将序列位置替换为事件时间戳:
旋转角度:α_i(t) = t·θ_i θ_i = (φ_min/Δt_max) · base^(2i/d)其中Δt_max是序列最大时间跨度(通常设1年),φ_min控制最小旋转角度(设为1e-4),base控制高频分量(设为600000)。这种编码可以同时捕捉秒级到月级的时间模式。
2. 生产环境关键技术
2.1 序列打包(Packing)技术
广告场景的用户行为序列长度高度不平衡:
- 80%用户:<100次曝光
- 5%用户:>1000次曝光
传统填充(padding)方式浪费大量计算资源。CADET采用序列打包技术:
- 将多个短序列拼接为连续token buffer
- 使用前缀和偏移量记录序列边界
- 保持每批总token数固定以优化GPU利用率
实现要点:
# 传统填充方式 inputs = pad_sequences(sequences) # (batch, max_len, dim) # 打包方式 packed_inputs = concatenate(sequences) # (total_tokens, dim) offsets = cumsum([len(s) for s in sequences])实测显示,打包技术使训练吞吐量提升4倍,内存占用减少62%。
2.2 序列分块(Chunking)策略
长序列带来两个问题:
- 注意力计算O(n²)复杂度
- GPU内存限制
CADET采用非重叠分块策略:
- 从序列末尾向前分块(确保最新数据完整)
- 每块作为独立训练样本
- 块间共享用户静态特征
分块长度对比实验:
| 块长度 | 训练成本 | AUC变化 |
|---|---|---|
| 4096 | 1.0x | - |
| 2048 | 0.46x | -0.04% |
| 1024 | 0.29x | -0.29% |
实际采用2048长度,在精度损失可接受(0.04%)情况下,训练速度提升117%。
2.3 自定义Flash Attention内核
线上推理需要同时评分数百个候选广告。CADET开发了专用Flash Attention内核,优化多候选评分场景:
标准Attention:
- 计算复杂度:O((L+N)²)
- L=上下文长度,N=候选数
CADET优化版:
- 复杂度:O(L²/2 + LN)
- 利用候选间相互独立的特性
关键优化点:
- 避免显式构建注意力掩码矩阵
- 基于上下文/候选长度参数动态计算有效区域
- 跳过全零分块的QK计算
线上服务指标:
- 延迟:262μs/请求 (原792μs)
- 吞吐:330请求/秒/GPU
- p99延迟:<50ms
3. 上下文条件解码设计
3.1 多塔预测头架构
广告位置对CTR有显著影响:
- 位置1 CTR ≈ 位置5 CTR的3-5倍
- 但精确位置在评分时未知
CADET采用K个预测头(实际K=2):
- 头1:位置1-4
- 头2:位置5+
训练时,只有实际位置对应的头参与损失计算:
loss = CrossEntropy(ŷ_k, y_true) # k=实际位置区间推理时并行计算所有头,根据最终渲染位置选择对应预测值。这种方法避免了传统解决方案的缺陷:
- 特征消歧法:需要多次评分
- 位置偏置建模:难以捕捉非线性效应
3.2 辅助任务设计
为提高表示质量,CADET引入4个辅助任务:
- 点击类型分类(链接点击/图片点击等)
- 落地页停留时间回归
- 广告曝光时长回归
- 次级转化预测
辅助任务有3个设计原则:
- 不增加推理耗时(仅在训练时使用)
- 共享底层Transformer表示
- 损失权重经网格搜索确定
实验表明,辅助任务使主CTR预测AUC提升0.21%。
3.3 混合损失函数
CADET使用三部分损失:
- 上下文条件损失(λ=1.0)
- 辅助任务损失(λ=0.05每个)
- 成对排序损失(λ=0.1)
成对排序损失采用RankNet形式:
loss_pair = -log(σ(z_positive - z_negative))这种设计直接优化广告排序质量,而不仅是CTR校准度。虽然对离线AUC提升有限(+0.03%),但线上AB测试显示对业务指标有显著提升。
4. 线上部署与效果
4.1 AB测试设计
对照组:生产环境LiRank模型
- DCNv2特征交叉
- TransAct序列编码器
- 复杂特征工程
实验组:CADET模型
- 统一Transformer架构
- 简化特征管道
- 相同训练数据
流量分配:5%用户随机分组,运行2周
4.2 核心指标提升
| 指标 | 变化率 |
|---|---|
| CTR | +11.04% |
| 营收 | +0.14% |
| 用户停留时长 | +1.2% |
CTR提升主要来自:
- 长尾广告曝光量增加23%
- 新用户CTR提升15%
- 低频用户CTR提升18%
4.3 工程效益
- 特征管道简化:
- 特征数量从143→12
- 特征计算耗时减少82%
- 训练效率提升:
- 单机吞吐量:4.2样本/秒→17.8样本/秒
- 训练时长:18小时→6小时
- 代码复杂度降低:
- 模型代码量减少62%
- 配置参数减少75%
5. 实践经验与教训
5.1 关键成功因素
- 渐进式架构迁移:
- 先在子流量测试纯Transformer架构
- 逐步引入上下文条件解码等复杂模块
- 每阶段都有明确的验证指标
- 离线-在线一致性保障:
- 严格的会话掩码策略
- 线上特征日志与训练数据对齐
- 每日数据漂移监控
- 硬件感知优化:
- 利用H200 GPU的FP8计算
- 定制Flash Attention内核
- 混合并行训练策略
5.2 遇到的挑战
- 初始训练不稳定:
- 解决方案:引入自门控机制
- 增加梯度裁剪(阈值1.0)
- 使用LAMB优化器
- 长尾广告预测偏差:
- 解决方案:在损失函数中添加频率感知权重
- 对低频广告过采样
- 添加曝光次数作为特征
- 线上延迟超标:
- 解决方案:开发候选并行评分
- 量化模型(FP32→FP16)
- 请求预处理与模型执行流水线化
5.3 未来优化方向
- 多模态特征融合:
- 广告图文内容理解
- 用户生成内容分析
- 实时增量更新:
- 每小时更新用户行为序列
- 在线学习机制
- 跨场景联合建模:
- 广告与自然内容统一排序
- 跨产品线兴趣迁移
CADET的成功证明,基于Transformer的端到端架构可以超越精心设计的特征工程模型。其核心价值在于用统一模型替代复杂管道,同时通过创新的上下文条件机制解决广告系统的特殊挑战。这一框架也为其他推荐场景提供了有价值的参考。
