DCN2:大规模推荐系统中的碰撞权重与显式交叉层协同优化
DCN2:大规模推荐系统中的碰撞权重与显式交叉层协同优化
——Teads团队提出下一代深度交叉网络架构,实时处理5亿+QPS的工业级解决方案
一、DCNv2的局限性与DCN2创新架构
传统DCNv2存在三大瓶颈:
- 嵌入碰撞问题:哈希冲突导致不同特征共享相同嵌入表示
- 交叉层信息损失:低秩投影压缩造成高阶特征交互丢失
- 隐式交互偏差:缺乏类似FFM的显式特征对建模能力
DCN2通过三重创新解决上述问题:
(图示:碰撞权重层(Collision Weights)、OnlyDense层、显式相似度层(SimLayer)构成核心创新)
二、核心技术解析
1. 碰撞权重机制(Collision-weighted Lookups)
问题:传统嵌入表在哈希空间不足时碰撞率超30%
创新:
# 嵌入表扩展权重维度
X_ec = {X[:, 1:d] = 原始嵌入, X[:, d+1] = 可学习权重 # 初始化为1.0
}
X_inp = X_ec[:, 1:d] * X_ec[:, d+1] # 权重调制嵌入
效果:
-
动态降低高频碰撞特征的权重(图5显示权重分布呈重尾型)
-
哈希空间压缩至1/4时仍保持90%+性能(图3)
2. OnlyDense层替代交叉层
DCNv2缺陷:低秩投影导致信息损失
创新公式:
x t = ReLU ( W ⋅ x + b 0 ) x r = x t ⊙ x ⋅ ϕ (锚点缩放) \begin{aligned} x_t &= \text{ReLU}(W \cdot x + b_0) \\ x_r &= x_t \odot x \cdot \phi \quad \text{(锚点缩放)} \end{aligned} xtxr=ReLU(W⋅x+b0)=xt⊙x⋅ϕ(锚点缩放)
优势:
-
全维度交叉(无投影压缩)
-
参数量从O(d×p)升至O(d²)但效果显著提升
3. 显式相似度层(SimLayer)
设计灵感:模拟FFM的显式特征对交互
计算逻辑:
ŷ_sk = σ(∑∑ w_k'(i,j) * (e_i · e_j)) # 特征对点积加权求和
最终输出 = σ(ŷ_dcn + ŷ_sk) # 与DCN路径融合
作用:补充DCN路径未覆盖的显式二阶交互
三、实验验证:全面超越基线
1. 公开数据集性能(表1)
数据集 | DCNv2 AUC | DCN2 AUC | 提升 |
---|---|---|---|
Criteo | 0.7826 | 0.7846 | +0.20% |
Avazu | 0.7922 | 0.7933 | +0.11% |
iPinYou | 0.7659 | 0.7747 | +1.15% |
![]() | |||
2. 在线A/B测试
场景 | 离线RIG提升 | 线上收益 |
---|---|---|
CTR预测 | 0.0035 | +3.2% RPM |
CVR预测 | 0.0010 | +4.2% 转化率 |
四、工业级部署优化
1. 推理引擎优化
-
本地扇出算法:大请求分微批次共享内存,CPU/预测耗时逼近理论最优
-
线程绑定:禁用TensorFlow后台自旋等待,p99延迟↓18%
-
内存管理:Jemalloc替代默认分配器,碎片减少40%
2. 多值特征处理
- 求和聚合:变长特征→固定维嵌入
- 数据驱动的填充:基于流式统计自动优化填充长度
五、迁移实战:AutoML升级案例
原始配置:
- DCNv2 + 6维嵌入 + 人工特征组合
升级后: - DCN2 + 16维嵌入 + OnlyDense自动交互
结果:RIG提升0.01552(特征工程成本↓70%)
结论与展望
DCN2通过三重创新实现工业级突破:
- 碰撞权重机制:动态调节哈希冲突特征重要性
- OnlyDense层:全维度特征交互避免信息损失
- 显式相似度层:补充FFM式特征对建模
线上系统已稳定处理5亿+ QPS,后续将探索:
- 更激进的碰撞权重策略
- LoRA微调迁移学习
- 多模态特征融合
论文地址:https://arxiv.org/pdf/2506.21624
GitHub参考:Teads内部实现(可关注后续开源)
附:实验所用公开数据集
- Criteo:广告点击日志
- Avazu:移动广告行为
- iPinYou:实时竞价数据
- KDD2012:用户点击行为