当前位置: 首页 > news >正文

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); ...]

这种设计有几个关键考虑:

  1. 用户静态特征(如职业、行业)作为序列前缀,为后续行为提供背景信息
  2. 广告特征包含三部分:广告自身属性(如广告ID)、请求特征(如设备类型)和其他曝光相关特征
  3. 上下文特征(如最终广告位置)与用户动作成对出现,确保时间一致性
  4. 序列按时间顺序排列,最新事件位于序列末尾

实际实现中,序列长度通常设置为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预测对时间敏感,两个关键时间尺度需要捕捉:

  1. 短期效应:几分钟内的连续广告曝光会产生疲劳或增强效应
  2. 长期模式:某些广告类型在周末或工作日的表现差异

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采用序列打包技术:

  1. 将多个短序列拼接为连续token buffer
  2. 使用前缀和偏移量记录序列边界
  3. 保持每批总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)策略

长序列带来两个问题:

  1. 注意力计算O(n²)复杂度
  2. GPU内存限制

CADET采用非重叠分块策略:

  1. 从序列末尾向前分块(确保最新数据完整)
  2. 每块作为独立训练样本
  3. 块间共享用户静态特征

分块长度对比实验:

块长度训练成本AUC变化
40961.0x-
20480.46x-0.04%
10240.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)
  • 利用候选间相互独立的特性

关键优化点:

  1. 避免显式构建注意力掩码矩阵
  2. 基于上下文/候选长度参数动态计算有效区域
  3. 跳过全零分块的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:位置1-4
  2. 头2:位置5+

训练时,只有实际位置对应的头参与损失计算:

loss = CrossEntropy(ŷ_k, y_true) # k=实际位置区间

推理时并行计算所有头,根据最终渲染位置选择对应预测值。这种方法避免了传统解决方案的缺陷:

  • 特征消歧法:需要多次评分
  • 位置偏置建模:难以捕捉非线性效应

3.2 辅助任务设计

为提高表示质量,CADET引入4个辅助任务:

  1. 点击类型分类(链接点击/图片点击等)
  2. 落地页停留时间回归
  3. 广告曝光时长回归
  4. 次级转化预测

辅助任务有3个设计原则:

  1. 不增加推理耗时(仅在训练时使用)
  2. 共享底层Transformer表示
  3. 损失权重经网格搜索确定

实验表明,辅助任务使主CTR预测AUC提升0.21%。

3.3 混合损失函数

CADET使用三部分损失:

  1. 上下文条件损失(λ=1.0)
  2. 辅助任务损失(λ=0.05每个)
  3. 成对排序损失(λ=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提升主要来自:

  1. 长尾广告曝光量增加23%
  2. 新用户CTR提升15%
  3. 低频用户CTR提升18%

4.3 工程效益

  1. 特征管道简化:
  • 特征数量从143→12
  • 特征计算耗时减少82%
  1. 训练效率提升:
  • 单机吞吐量:4.2样本/秒→17.8样本/秒
  • 训练时长:18小时→6小时
  1. 代码复杂度降低:
  • 模型代码量减少62%
  • 配置参数减少75%

5. 实践经验与教训

5.1 关键成功因素

  1. 渐进式架构迁移
  • 先在子流量测试纯Transformer架构
  • 逐步引入上下文条件解码等复杂模块
  • 每阶段都有明确的验证指标
  1. 离线-在线一致性保障
  • 严格的会话掩码策略
  • 线上特征日志与训练数据对齐
  • 每日数据漂移监控
  1. 硬件感知优化
  • 利用H200 GPU的FP8计算
  • 定制Flash Attention内核
  • 混合并行训练策略

5.2 遇到的挑战

  1. 初始训练不稳定
  • 解决方案:引入自门控机制
  • 增加梯度裁剪(阈值1.0)
  • 使用LAMB优化器
  1. 长尾广告预测偏差
  • 解决方案:在损失函数中添加频率感知权重
  • 对低频广告过采样
  • 添加曝光次数作为特征
  1. 线上延迟超标
  • 解决方案:开发候选并行评分
  • 量化模型(FP32→FP16)
  • 请求预处理与模型执行流水线化

5.3 未来优化方向

  1. 多模态特征融合:
  • 广告图文内容理解
  • 用户生成内容分析
  1. 实时增量更新:
  • 每小时更新用户行为序列
  • 在线学习机制
  1. 跨场景联合建模:
  • 广告与自然内容统一排序
  • 跨产品线兴趣迁移

CADET的成功证明,基于Transformer的端到端架构可以超越精心设计的特征工程模型。其核心价值在于用统一模型替代复杂管道,同时通过创新的上下文条件机制解决广告系统的特殊挑战。这一框架也为其他推荐场景提供了有价值的参考。

http://www.jsqmd.com/news/989500/

相关文章:

  • 数据的加密与解密(02:38)
  • LinkSwift:突破网盘限速的终极开源解决方案
  • 用RPR220光电管DIY一个Arduino避障小车,手把手教你从电路到代码(附完整物料清单)
  • 用Python和TensorFlow训练AI玩贪吃蛇:从游戏逻辑到DQN算法实战(附完整代码)
  • 城市更新地标翻译:跨文化语境下的语言重塑与身份传达
  • 2026年新乡自动送料机厂家推荐榜单:化工厂/医药厂/新能源材料及锂电池行业精准投料设备优选 - 品牌发掘
  • Make Sense:浏览器端零安装的图像标注神器终极指南
  • 汽车电子测试耐高低温弹簧顶针优质供应商推荐:高精密pogopin/高频率pogopin连接器/优选指南 - 优质品牌商家
  • 一键下载全网视频:VideoDownloadHelper终极使用指南
  • STM32F103C8T6最小系统板直连OLED屏的Keil可运行工程(含SSD1306/SH1106驱动源码)
  • 3.1.5 平衡二叉树
  • 技术深度解析:Lapce远程SSH连接性能瓶颈与优化方案
  • GetQzonehistory:5分钟实现QQ空间历史数据完整备份的终极解决方案
  • 深度解析SageAttention量化注意力:3-5倍性能提升实战指南
  • 5分钟用AI看懂足球:体育视频智能分析实战指南
  • 密集检索中的查询感知维度选择优化方法
  • Moneta Markets亿汇:用清单方式看外汇行情信息呈现,更容易形成稳定判断
  • 洛雪音乐音源配置终极指南:三步打造你的个人无损音乐库
  • 2026年6月头部稻壳餐具模具源头厂家推荐,包装桶类模具/湿巾盖模具/刀叉勺类模具,稻壳餐具模具直销厂家推荐 - 品牌推荐师
  • 后端的异常和保护机制
  • 2026年 新疆酒店铝单板源头厂家推荐榜单:专业定制与匠心工艺品质之选 - 品牌发掘
  • Spring Boot项目里用Netty手搓一个MQTT客户端,从连接、订阅到消息重发全流程解析
  • 用Python+NetworkX模拟社交网络中的‘跟风’行为:一个演化博弈的实战案例
  • 手把手教你用Python复现STARFM时空融合算法:从Github代码到实战避坑
  • Revit2GLTF终极指南:专业级BIM模型到Web3D的高效转换解决方案
  • 让文献管理变得可视化:Zotero Style的5大创新功能
  • C语言项目实战:用uthash库给你的自定义数据结构建个高速‘查询缓存’
  • 边缘弱网环境下的离散节点高可用组网实践与全网通工业路由器选型指南
  • 遥感图像大坝检测数据集VOC+YOLO格式8350张1类别
  • AdaCNP:极端天气下电力负荷预测的概率建模方法