本章深入探讨了基于神经网络的推荐系统模型,包括Two-Tower、NCF、Wide & Deep、DeepFM和DIN等核心概念。Two-Tower模型采用双塔架构,将用户和物品特征分别通过多层感知机(MLP)转化为k维embedding,并通过相似度计算进行预测。其优点在于物品embedding可离线预计算,支持大规模物品召回,但缺点是缺乏用户与物品间的精细交互。NCF模型通过MLP替代传统矩阵分解中的内积操作,能够捕捉更复杂的非线性交互关系,并在MovieLens和Pinterest数据集上取得显著提升。Wide & Deep模型结合了线性模型和深度学习,分别处理记忆和泛化问题,在Google Play推荐中提升了安装率。DeepFM模型则将因子机与深度学习结合,共享输入embedding进行端到端训练,避免了人工特征工程,广泛应用于工业界精排任务。DIN模型通过Attention机制,根据候选物品动态调整用户历史行为的权重,有效解决了用户兴趣多样性问题,在淘宝CTR上取得显著提升。读者将掌握如何构建和优化这些模型,并理解现代推荐系统多阶段漏斗架构的设计理念,为实际应用打下坚实基础。
深度学习推荐:Two-Tower / NCF / DeepFM
矩阵分解只能学"线性"交互 (内积), 但现实中"用户年龄 × 物品品类"是非线性交叉。这一章用神经网络捕捉高阶特征。
1. Two-Tower (双塔模型)
工业界最常用的召回模型, 2019 年 YouTube DNN 把它推上神坛。
架构:
- 用户塔: 输入用户特征 (id + 历史行为 + 画像) → MLP → k 维 embedding
- 物品塔: 输入物品特征 (id + 标签 + 类别) → MLP → k 维 embedding
- 预测: 两个 embedding 的相似度 (内积 / cosine)
[用户特征] → [User Tower MLP] → e_u
↘ 内积 / cosine
[物品特征] → [Item Tower MLP] → e_i ↗
优点:
- 物品塔可离线预计算全部 embedding, 存到向量数据库 (Faiss / Milvus)
- 在线只算用户 embedding + 向量检索, 毫秒级响应
- 支持亿级物品
缺点:
- 塔之间无交互, 只能学"全局"相似度
- 不适合精排 (需要 user × item 精细交互)
2. NCF (Neural Collaborative Filtering, 2017)
把矩阵分解的"内积"换成 MLP, 让神经网络学任意形式的交互函数:
GMF: p_u ⊙ q_i (element-wise product) →
MLP: [p_u, q_i] → [64] → [32] → [16] → 1
最终: concatenate → sigmoid → 预测概率
创新点: 证明"内积"不是协同过滤的唯一选择, MLP 能学到更复杂的非线性。
实战: NeuMF (GMF + MLP 融合) 在 MovieLens / Pinterest 数据集上比 SVD 提升 10%+。
3. Wide & Deep (Google, 2016)
把"记忆"和"泛化"分开:
- Wide 部分: 线性模型, 记住"iphone 用户喜欢 airpods"这种直接规则
- Deep 部分: MLP, 泛化到未见过的特征组合
- 联合训练, 同时优化
应用: Google Play 应用商店推荐, 提升 3.9% 安装率。
4. DeepFM (2017)
把"因子机 (FM)"和"深度"并联:
- FM 部分: 一阶 + 二阶特征交叉 (替代人工特征工程)
- Deep 部分: MLP 学高阶交叉
- 共享输入 embedding, 端到端训练
优势: 不需要人工构造交叉特征, 工业界最常用的精排模型之一。
5. DIN (Deep Interest Network, 阿里 2018)
核心观察: 用户兴趣是多样的, 不同候选物品激活的兴趣不同。
- 用 Attention 让候选物品去"查询"用户历史行为
- 给历史中相关的行为更高权重
- 解决"买了篮球又推更多篮球"问题, 实际是激活"运动装备"这个更广兴趣
候选物品 i → Query
用户历史 [item1, item2, ..., itemN] → Keys/Values
Attention(Q, K, V) → 加权后的用户兴趣向量
指标: 淘宝 CTR 提升 10%+。
6. 召回 + 精排的标准架构
现代推荐系统都是多阶段漏斗:
全量物品 (亿级)
↓ [召回] Two-Tower / 协同过滤 / 关键词
1k+ 候选
↓ [粗排] 简单模型 (LR / 浅 MLP) 过滤
200 候选
↓ [精排] DeepFM / DIN / 复杂 DNN
50 候选
↓ [重排] 业务规则 / 多样性 / 新鲜度
10 展示
每个阶段都在"快-准"间权衡。
总结
- 召回: Two-Tower (高效 + 可离线)
- 精排: DeepFM / DIN (精度高)
- 架构: 多阶段漏斗, 各级独立训练
- 趋势: 多模态 (文本 + 图像 embedding 联合), 强化学习 (RL) 优化长期收益
推荐项目
- MovieLens 1M 上训 NeuMF, 对比 SVD 效果
- 天池 / DataCastle 推荐竞赛实战
- 用 Faiss 搭一个向量检索 demo
下一章: 训好了模型, 怎么评估? NDCG / MAP / Recall@k 全讲清。
章末小测验
检验你对《深度学习推荐:Two-Tower / NCF / DeepFM》的掌握程度。
Two-Tower (双塔) 模型最大的工业优势是?
DIN (Deep Interest Network) 用 Attention 解决的核心问题是?
现代推荐系统的'召回-粗排-精排-重排'漏斗, 哪一阶段最'准'?