三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

别再只调参了!从LR到DIN,手把手拆解主流CTR模型的核心思想与演进脉络

别再只调参了!从LR到DIN,手把手拆解主流CTR模型的核心思想与演进脉络

从LR到DIN:CTR模型演进的技术哲学与工业实践

在推荐系统的精排层战场上,点击率预估(CTR)模型如同不断进化的生物种群,每一次迭代都蕴含着对业务痛点的精准打击。当我们超越调参的层面,深入模型设计的思维脉络,会发现从经典逻辑回归到引入注意力机制的DIN模型,这场持续十余年的技术演进本质上是一场关于特征工程自动化用户行为建模的认知革命。

1. 基础范式:线性模型的黄金时代

1.1 逻辑回归的工程智慧

逻辑回归(LR)作为CTR预估的奠基者,其数学形式简洁得令人惊讶:

def lr_prediction(features, weights): return sigmoid(np.dot(features, weights))

这个看似简单的线性组合却在早期推荐系统中创造了商业奇迹,其成功密码在于:

  • 特征交叉的艺术:将"年龄≤25"与"游戏品类"组合成新特征,使模型捕获到年轻人更倾向点击游戏广告的规律
  • 工业友好特性
    • 模型稀疏性便于线上服务
    • 参数可解释性强
    • 支持增量更新

提示:优秀特征工程师的产出价值往往超过算法工程师,这在LR时代尤为明显

1.2 GBDT+LR的范式突破

Facebook在2014年提出的GBDT+LR架构首次实现了特征自动离散化

处理阶段技术手段工业价值
连续特征处理GBDT叶子节点索引消除人工分桶的主观性
特征组合树路径隐含交叉自动发现重要特征组合
稀疏编码One-hot转换保持LR在线推理效率

这种两阶段模型在保持LR部署优势的同时,显著提升了模型对连续特征的处理能力。其局限在于GBDT部分的静态性——当用户兴趣分布变化时,需要定期重新训练整个管道。

2. 因子分解革命:从FM到DeepFM

2.1 FM模型的数学之美

因子分解机(FM)通过隐向量内积实现特征自动交叉:

ŷ = w₀ + Σwᵢxᵢ + Σ⟨vᵢ,vⱼ⟩xᵢxⱼ

其中隐向量vᵢ∈ℝᵏ的引入带来三重突破:

  1. 参数量从O(n²)降至O(nk)
  2. 可处理未出现过的特征组合
  3. 在稀疏数据下仍有良好表现

2.2 DeepFM的架构创新

2017年华为提出的DeepFM将FM与DNN结合:

# PyTorch风格伪代码 class DeepFM(nn.Module): def __init__(self, field_dims, embed_dim): self.fm = FactorizationMachine() self.mlp = MLP(field_dims*embed_dim) def forward(self, x): fm_out = self.fm(x) deep_out = self.mlp(x) return torch.sigmoid(fm_out + deep_out)

这种双路架构的工业价值在于:

  • Wide部分(FM):保留记忆能力,擅长处理频繁共现特征
  • Deep部分(DNN):获得泛化能力,发现潜在特征关系

3. 注意力机制:用户行为建模的质变

3.1 DIN的注意力设计

阿里妈妈2018年提出的DIN模型解决了用户历史行为中的局部激活问题:

Attention Score = f(query_item, behavior_item)

其创新点体现在:

  • 自适应激活:不同目标商品激活不同的历史行为
  • 兴趣分布可视化:通过权重热力图解释推荐决策
  • 工程优化技巧
    • 小批量正则化
    • 自适应激活函数Dice
    • 数据自适应归一化

3.2 DIEN的时序建模

在DIN基础上引入GRU网络,形成深度兴趣进化网络(DIEN):

  1. 行为层:原始行为序列
  2. 兴趣抽取层:GRU捕捉时序依赖
  3. 兴趣进化层:AUGRU结合注意力机制

这种设计能捕捉用户兴趣的漂移过程,例如:

  • 春季:运动鞋→防晒霜→泳装
  • 冬季:羽绒服→暖宝宝→火锅食材

4. 前沿探索:多场景融合与强化学习

4.1 多任务学习的实践

美团在2020年提出的STAR模型采用星型拓扑结构

[共享中心网络] ↗↑↑↑↖ [任务A][任务B][任务C]

关键创新点:

  • 中心共享网络学习通用表征
  • 任务特定网络适配不同场景
  • 门控机制平衡共享与特异

4.2 强化学习的应用边界

DRN(Deep Reinforcement Learning Network)引入在线学习机制:

更新策略优势风险
被动更新稳定可控响应延迟
主动探索发现新pattern可能破坏用户体验
混合策略平衡收益与风险系统复杂度高

在实际部署中,通常采用保守更新策略:

def update_model(online_model, candidate_models): if online_metric > baseline * 1.1: # 显著提升才更新 deploy(candidate_models[0])

5. 工业落地的关键考量

5.1 特征系统的黄金标准

优秀工业级特征系统应满足:

  • 实时性:分钟级特征更新
  • 一致性:训练/在线特征对齐
  • 可观测:特征覆盖度监控
  • 可回溯:特征版本化管理

5.2 模型服务的性能优化

典型CTR模型的推理延迟要求<50ms,常用优化手段:

技术效果实现复杂度
模型裁剪减量30-50%★★☆
量化压缩加速2-4倍★★★
缓存策略降低峰值负载★★☆
并行计算充分利用硬件★★★

在淘宝双十一场景中,通过特征预计算+模型分片将QPS提升到百万级别。

5.3 业务适配的模型选择

不同场景的模型选型策略:

  • 新业务冷启动:LR+人工特征(快速迭代)
  • 成熟稳定场景:DeepFM(平衡效果与成本)
  • 用户行为丰富场景:DIN/DIEN(捕捉兴趣演化)
  • 多目标学习:MMoE/ESMM(共享表征)

实际项目中,我们会为每个候选模型建立技术评估矩阵

维度LRFMDeepFMDIN
特征工程成本
训练速度较快中等
在线推理成本
可解释性

真正决定模型效果的往往不是算法复杂度,而是对业务本质的理解深度。在电商大促场景中,我们曾通过添加"距离大促剩余天数"这个简单特征,让DIN模型的AUC提升了0.8个百分点,这比任何复杂的网络结构调整都更有效。

← 返回列表