CADET模型:LinkedIn广告点击率预测的Transformer创新
1. CADET模型概述
在当今数字广告生态系统中,点击率(CTR)预测技术扮演着至关重要的角色。作为LinkedIn广告平台的核心算法,CADET(上下文条件广告解码器Transformer)代表了该领域的最新突破。这个基于Transformer架构的创新模型,成功解决了传统深度推荐模型(DLRM)在广告场景下面临的多重挑战。
1.1 核心技术创新
CADET模型的核心价值在于其五大技术突破:
上下文条件解码架构:通过多塔预测头设计,模型能够同时预测不同上下文环境(如广告位置)下的点击概率,有效解决了"先有鸡还是先有蛋"的排序依赖问题。在实际应用中,这意味着系统可以在不知道最终广告位置的情况下,预先计算所有可能位置的CTR。
自门控注意力机制:这一创新在表示层和交互层同时引入自适应门控,显著提升了训练稳定性。在工业级数据规模下,传统Transformer常遭遇注意力崩溃问题,而CADET的自门控设计通过调节信息流,确保了模型可靠收敛。
时间感知的RoPE编码:将标准的旋转位置编码(RoPE)改造为基于时间戳的变体,使模型能够捕捉从秒级到月级的复杂时间模式。这对于广告场景尤为重要,因为用户行为往往表现出多尺度的时间依赖性。
会话感知掩码策略:专门设计的训练时掩码机制,防止模型学习到那些在线上服务时不可用的会话内事件依赖,解决了训练-服务偏差问题。这种设计确保了离线评估与在线表现的一致性。
生产级工程优化:包括张量打包、序列分块和定制Flash Attention内核等技术,使模型能够高效处理LinkedIn平台上每天数十亿次的广告展示请求,同时保持严格的延迟SLA。
1.2 与传统方法的对比
传统DLRM模型(如DCNv2、DIN等)主要依赖精心设计的特征工程和显式特征交互。这些模型虽然在某些场景表现良好,但难以捕捉用户行为序列中的复杂时序模式。相比之下,CADET采用纯解码器架构,通过自回归方式处理用户交互序列,实现了真正的端到端学习。
在实际A/B测试中,CADET相比LinkedIn原有的LiRank系统(基于DCNv2和序列编码器的混合模型)实现了11.04%的CTR提升。这一提升不仅验证了Transformer架构在广告推荐中的有效性,也展示了统一模型相对于复杂集成方案的优势。
2. 模型架构深度解析
2.1 输入序列设计
CADET的输入序列采用了一种创新的交错格式,将用户静态特征、广告印象和上下文动作有机组合:
[用户特征; 印象1,(上下文1,动作1); 印象2,(上下文2,动作2); ... ; 印象L]这种设计的关键优势在于:
- 完整性:保留了用户与广告互动的完整上下文
- 灵活性:可以容纳多种类型的用户动作(点击、忽略等)
- 效率:单次前向传播即可处理整个交互历史
每个印象特征包含三部分信息:
- 广告自身属性(如广告ID、创意类型)
- 请求上下文(如设备类型、地理位置)
- 其他相关信号(如用户人口统计特征)
2.2 自门控注意力机制
CADET对标准Transformer注意力进行了两项关键改进:
表示层门控:
Gate(X) = σ(W_gate_X · X) X̃ = X ⊙ Gate(X)这个门控机制相当于一个自适应特征选择器,抑制噪声或低效用维度,改善梯度流动。
交互层门控:
Gate(Q) = σ(W_gate_Q · Q) Q̃ = Q ⊙ Gate(Q) Gate(K) = σ(W_gate_K · K) K̃ = K ⊙ Gate(K)这种设计直接调节query-key交互强度,防止某些主导token垄断注意力分布。
实际应用中,这种双重门控带来了三方面好处:
- 训练稳定性提升,避免注意力崩溃
- 收敛速度加快,减少所需训练步数
- 对超参数选择更鲁棒,降低调优成本
2.3 时间感知的位置编码
CADET对标准RoPE进行了广告场景的定制改造:
α_i(t) = t · θ_i θ_i = (φ_min/Δt_max) · base^(2i/d)其中关键创新点:
- 用时间戳t替代序列位置p,直接建模事件时间关系
- 引入Δt_max(最大回看窗口)和φ_min(最小旋转角)参数,适应广告特有的多尺度时间模式
- 通过base参数控制高频时间信号的捕捉能力
这种编码方式使模型能够:
- 识别秒级快速行为模式(如连续点击)
- 理解天级周期性规律(如工作日/周末差异)
- 捕捉月级长期兴趣演变
3. 生产环境实现与优化
3.1 训练系统架构
LinkedIn采用PyTorch HSDP(Hybrid Sharded Data Parallel)分布式训练框架,结合多项优化技术:
数据打包技术:
- 传统方法:填充至固定长度,产生大量计算浪费
- CADET方案:紧凑存储实际token,附带元数据
- 效果:有效批次大小提升4倍
序列分块:
- 将长序列分割为2048 token的块
- 保持时间顺序,从最近事件开始分块
- 效果:训练成本降低54%,AUC仅下降0.04%
梯度检查点:
- 用额外10%计算换取了40%内存节省
- 支持更大批次配置,提升GPU利用率
3.2 高效推理服务
在线服务面临的核心挑战是在50ms延迟预算内处理高吞吐量请求。CADET的解决方案包括:
定制Flash Attention内核:
- 针对多候选评分模式优化
- 消除显式掩码张量需求
- 跳过全掩码tile的计算
- 效果:注意力计算加速3倍(792μs → 262μs)
生产者-消费者架构:
- CPU线程池处理特征预处理
- 专用GPU线程执行模型推理
- 效果:单GPU吞吐330请求/秒
上下文共享模式:
- 对所有候选广告复用相同用户上下文
- 计算复杂度从O((L+N)^2)降至O(L^2/2 + LN)
- 效果:支持单次前向传播评分512个候选
4. 关键问题与解决方案
4.1 后评分上下文处理
广告位置等上下文信号在实际服务时存在悖论:
- 需要CTR预测来决定最终排名
- 但排名位置又影响实际CTR
CADET的解决方案:
- 定义K个上下文桶(如位置1、位置2-4、位置5+)
- 每个桶对应独立预测头
- 训练时仅激活真实上下文对应的头
- 服务时并行计算所有上下文预测
这种方法避免了迭代重排序的延迟开销,同时保证了上下文敏感预测。
4.2 离线-在线一致性
生产推荐系统常见问题是离线指标与在线表现不一致。CADET通过两种掩码策略解决:
训练掩码:
M_{i,j} = -∞ if t_j > t_i - Δ_delay else 0确保模型不会依赖尚未发生的未来事件
推理掩码:
- 允许候选广告关注完整上下文
- 禁止候选间相互关注
- 实现单次前向批量评分
4.3 工业级稳定性
大规模Transformer训练常面临梯度爆炸/消失问题。CADET采用三重保障:
- 门控注意力:如前所述的双重门控机制
- 损失设计:组合上下文损失、辅助任务损失和排序损失
- 梯度裁剪:动态阈值调整策略
这些措施使CADET在20,000次训练迭代中保持稳定收敛,无需复杂调参。
5. 实际应用效果与经验
5.1 离线实验结果
在LinkedIn广告点击数据集上的消融研究表明:
| 模型变体 | AUC变化 |
|---|---|
| 完整CADET | - |
| 移除上下文条件 | -0.61% |
| 移除时间RoPE | -0.13% |
| 移除会话掩码 | -0.31% |
| 移除排序损失 | -0.03% |
特别值得注意的是,自门控注意力使训练曲线显著平滑,避免了传统Transformer常见的性能突变。
5.2 在线A/B测试
与生产基线LiRank对比:
| 指标 | 相对变化 |
|---|---|
| CTR | +11.04% |
| 收入 | +0.14% |
CTR的显著提升证明了生成式方法在广告场景的有效性。收入增长相对较小反映了广告拍卖机制的复杂性。
5.3 工程经验总结
- 数据格式转型:从点wise到序列wise存储,特征数从100+降至12,体积减少98%
- 内存优化:打包+分块使4096长度序列的内存需求从64GB降至8GB
- 计算效率:定制内核使P99延迟稳定在50ms以内
- 部署策略:渐进式流量切换,密切监控系统指标
这些经验对于任何考虑部署大规模序列模型的企业都具有参考价值。
6. 扩展应用与未来方向
虽然CADET专为广告CTR预测设计,其核心技术可扩展至其他场景:
- 电商推荐:处理商品浏览序列中的复杂依赖
- 内容推荐:建模用户长短期兴趣演变
- 实时个性化:利用秒级时间编码捕捉即时意图
在实际部署中,我们发现几个值得关注的改进方向:
- 跨模态学习:整合文本、图像等广告创意特征
- 多目标优化:联合优化CTR、转化率、停留时间等
- 节能推理:进一步降低计算碳足迹
- 联邦学习:在保护隐私前提下利用更多数据信号
这些方向正在成为下一代工业级推荐系统的研究热点。
