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

CADET模型:LinkedIn广告点击率预测的Transformer创新

1. CADET模型概述

在当今数字广告生态系统中,点击率(CTR)预测技术扮演着至关重要的角色。作为LinkedIn广告平台的核心算法,CADET(上下文条件广告解码器Transformer)代表了该领域的最新突破。这个基于Transformer架构的创新模型,成功解决了传统深度推荐模型(DLRM)在广告场景下面临的多重挑战。

1.1 核心技术创新

CADET模型的核心价值在于其五大技术突破:

  1. 上下文条件解码架构:通过多塔预测头设计,模型能够同时预测不同上下文环境(如广告位置)下的点击概率,有效解决了"先有鸡还是先有蛋"的排序依赖问题。在实际应用中,这意味着系统可以在不知道最终广告位置的情况下,预先计算所有可能位置的CTR。

  2. 自门控注意力机制:这一创新在表示层和交互层同时引入自适应门控,显著提升了训练稳定性。在工业级数据规模下,传统Transformer常遭遇注意力崩溃问题,而CADET的自门控设计通过调节信息流,确保了模型可靠收敛。

  3. 时间感知的RoPE编码:将标准的旋转位置编码(RoPE)改造为基于时间戳的变体,使模型能够捕捉从秒级到月级的复杂时间模式。这对于广告场景尤为重要,因为用户行为往往表现出多尺度的时间依赖性。

  4. 会话感知掩码策略:专门设计的训练时掩码机制,防止模型学习到那些在线上服务时不可用的会话内事件依赖,解决了训练-服务偏差问题。这种设计确保了离线评估与在线表现的一致性。

  5. 生产级工程优化:包括张量打包、序列分块和定制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]

这种设计的关键优势在于:

  • 完整性:保留了用户与广告互动的完整上下文
  • 灵活性:可以容纳多种类型的用户动作(点击、忽略等)
  • 效率:单次前向传播即可处理整个交互历史

每个印象特征包含三部分信息:

  1. 广告自身属性(如广告ID、创意类型)
  2. 请求上下文(如设备类型、地理位置)
  3. 其他相关信号(如用户人口统计特征)

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垄断注意力分布。

实际应用中,这种双重门控带来了三方面好处:

  1. 训练稳定性提升,避免注意力崩溃
  2. 收敛速度加快,减少所需训练步数
  3. 对超参数选择更鲁棒,降低调优成本

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)分布式训练框架,结合多项优化技术:

  1. 数据打包技术

    • 传统方法:填充至固定长度,产生大量计算浪费
    • CADET方案:紧凑存储实际token,附带元数据
    • 效果:有效批次大小提升4倍
  2. 序列分块

    • 将长序列分割为2048 token的块
    • 保持时间顺序,从最近事件开始分块
    • 效果:训练成本降低54%,AUC仅下降0.04%
  3. 梯度检查点

    • 用额外10%计算换取了40%内存节省
    • 支持更大批次配置,提升GPU利用率

3.2 高效推理服务

在线服务面临的核心挑战是在50ms延迟预算内处理高吞吐量请求。CADET的解决方案包括:

  1. 定制Flash Attention内核

    • 针对多候选评分模式优化
    • 消除显式掩码张量需求
    • 跳过全掩码tile的计算
    • 效果:注意力计算加速3倍(792μs → 262μs)
  2. 生产者-消费者架构

    • CPU线程池处理特征预处理
    • 专用GPU线程执行模型推理
    • 效果:单GPU吞吐330请求/秒
  3. 上下文共享模式

    • 对所有候选广告复用相同用户上下文
    • 计算复杂度从O((L+N)^2)降至O(L^2/2 + LN)
    • 效果:支持单次前向传播评分512个候选

4. 关键问题与解决方案

4.1 后评分上下文处理

广告位置等上下文信号在实际服务时存在悖论:

  • 需要CTR预测来决定最终排名
  • 但排名位置又影响实际CTR

CADET的解决方案:

  1. 定义K个上下文桶(如位置1、位置2-4、位置5+)
  2. 每个桶对应独立预测头
  3. 训练时仅激活真实上下文对应的头
  4. 服务时并行计算所有上下文预测

这种方法避免了迭代重排序的延迟开销,同时保证了上下文敏感预测。

4.2 离线-在线一致性

生产推荐系统常见问题是离线指标与在线表现不一致。CADET通过两种掩码策略解决:

训练掩码

M_{i,j} = -∞ if t_j > t_i - Δ_delay else 0

确保模型不会依赖尚未发生的未来事件

推理掩码

  • 允许候选广告关注完整上下文
  • 禁止候选间相互关注
  • 实现单次前向批量评分

4.3 工业级稳定性

大规模Transformer训练常面临梯度爆炸/消失问题。CADET采用三重保障:

  1. 门控注意力:如前所述的双重门控机制
  2. 损失设计:组合上下文损失、辅助任务损失和排序损失
  3. 梯度裁剪:动态阈值调整策略

这些措施使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 工程经验总结

  1. 数据格式转型:从点wise到序列wise存储,特征数从100+降至12,体积减少98%
  2. 内存优化:打包+分块使4096长度序列的内存需求从64GB降至8GB
  3. 计算效率:定制内核使P99延迟稳定在50ms以内
  4. 部署策略:渐进式流量切换,密切监控系统指标

这些经验对于任何考虑部署大规模序列模型的企业都具有参考价值。

6. 扩展应用与未来方向

虽然CADET专为广告CTR预测设计,其核心技术可扩展至其他场景:

  1. 电商推荐:处理商品浏览序列中的复杂依赖
  2. 内容推荐:建模用户长短期兴趣演变
  3. 实时个性化:利用秒级时间编码捕捉即时意图

在实际部署中,我们发现几个值得关注的改进方向:

  1. 跨模态学习:整合文本、图像等广告创意特征
  2. 多目标优化:联合优化CTR、转化率、停留时间等
  3. 节能推理:进一步降低计算碳足迹
  4. 联邦学习:在保护隐私前提下利用更多数据信号

这些方向正在成为下一代工业级推荐系统的研究热点。

http://www.cnnetsun.cn/news/2865175.html

相关文章:

  • Vue3项目里,那个‘会动’的图表墙是怎么做的?聊聊拖拽组件的状态保持与性能优化
  • QMT量化交易中,如何用Python实现60秒自动撤单与重下单(附完整代码)
  • NanaZip:重新定义Windows文件压缩的智能革命
  • STM32G431RBT6按键进阶:从轮询扫描到中断处理(附长短按、连按实现)
  • 论文双审时代:告别降重、去AI痕迹两难,百考通AI一站式解决方案
  • 如何在3分钟内完成QQ空间数据备份:GetQzonehistory终极指南
  • ProperTree:跨平台GUI plist编辑器的5个核心优势与实用指南
  • BilibiliDown终极指南:轻松实现B站视频批量下载与音频提取
  • 你的EC11编码器程序抗干扰吗?基于STM32的按键消抖、双击与长按检测的完整实现方案
  • FT61F02单片机实操包:按一下按键,LED亮灭自动翻转(带工程文件+PDF详解)
  • CS2 练枪服怎么选配置?低延迟比堆内存更重要
  • 终极指南:用Hackintool轻松搞定黑苹果配置的7个简单步骤
  • Unlock Music:一站式音频格式转换与音乐解密解决方案
  • 中央维护系统级综合验证平台
  • 智能家居入门:如何用STM32和Proteus低成本模拟一个光控窗帘系统(附Keil工程源码)
  • 【优化分配】基于matlab构建数字化广告投放优化系统差分进化算法多平台预算分配【含Matlab源码 15611期】含报告
  • 【机器人】基于matlab三台6自由度连续介质机器人的灵巧度分析【含Matlab源码 15612期】
  • 告别屏幕忽明忽暗:手把手教你用VEML7700光照传感器实现智能背光调节(附STM32代码)
  • 2017–2020年Unity音乐节奏游戏实战工程:含判定逻辑、谱面解析与完整可运行项目
  • 基于单片机的汽车胎压与温度监控系统
  • 那条漫长的CI流水线:端到端测试为什么总是最后一个“守门员”
  • 终极Aria2GUI完整指南:从命令行到macOS图形界面的技术实现
  • 行业定制开发:对接业务系统的AI客服与知识库智能体实现
  • MATLAB自适应RK4求解器:带误差控制的ODE数值计算工具包
  • 终极React AI聊天组件库:assistant-ui完整开发指南
  • 重构旧硬件价值:OCLP-Mod深度解析老旧Mac系统兼容性突破方案
  • 终极解决edge-tts语音合成WebSocket 403错误的完整指南
  • 深度解析Aria2GUI for macOS:混合架构下载工具的技术实现原理
  • 心脏磁共振预后模型泛化能力提升:内部验证与外部验证AUC差异分析与解决方案
  • Leantime完整指南:为普通用户打造的直观项目管理平台