M7-059M7: Retrieval, Ranking & RecSysDeep Recommendation ModelsEasy
Mastery:

Deep Recommendation Models: 解释 Wide&Deep 的结构与动机。

📐 Mathematical Definition
y^=σ ⁣(wwide⊤[x,ϕ(x)]+wdeep⊤a(l)+b)\hat y=\sigma\!\left(w_{\text{wide}}^{\top}[x,\phi(x)]+w_{\text{deep}}^{\top}a^{(l)}+b\right)
⚡ Executive Summary
Core Concept: Wide 部分(线性交叉特征)捕捉记忆('共现');Deep 部分(MLP)捕捉泛化('相似性');联合训练。

📌 Key Takeaways

  • •
    Wide:线性模型 + 手工交叉特征(记忆)
  • •
    Deep:嵌入 + MLP(泛化)
  • •
    联合训练:同时优化两部分

📐 Mathematical Derivations

数学机理:<strong>Wide&Deep(Cheng 等 2016,Google Play)</strong> 的动机——推荐系统需要两种能力:(1) <strong>记忆(memorization)</strong>——'从历史数据中发现'频繁共现的规律'(如'装了 A 应用的用户也装 B');(a) <strong>特点</strong>——精确、直接、可解释;(b) <strong>实现</strong>——<strong>Wide 部分</strong>(线性模型 + <strong>手工交叉特征</strong> φ(x),如 'AND(user_installed_app=Netflix, impression_app=Hulu)');(c) <strong>局限</strong>——<strong>无法泛化到未见过的组合</strong>(若从未见过'Netflix+Hulu'则权重为 0)。(2) <strong>泛化(generalization)</strong>——'从数据中学习'相似性'并推广到新组合';(a) <strong>特点</strong>——能处理稀疏、新组合;(b) <strong>实现</strong>——<strong>Deep 部分</strong>(嵌入 + MLP):把高维稀疏特征嵌入到低维稠密向量,再用 MLP 学习非线性交互;(c) <strong>优势</strong>——(i) 嵌入使'相似特征'共享参数(泛化);(ii) MLP 学习任意交叉(无需手工);(d) <strong>局限</strong>——(i) 可能'过度泛化'(推荐不相关的东西);(ii) 嵌入的'记忆能力'不如宽部分的精确交叉。(3) <strong>联合训练</strong>——两部分<strong>同时训练</strong>(联合损失),输出相加后过 sigmoid:ŷ=σ(w_wideᵀ[x,φ(x)] + w_deepᵀa^(l) + b)。<strong>为什么不能只用一个</strong>——(a) <strong>只有 Wide</strong>——无法泛化(新组合无权重);(b) <strong>只有 Deep</strong>——可能'过度泛化'(推荐不相关),且'精确的共现规律'学不好(嵌入会平滑掉);(c) <strong>联合</strong>——两者互补(Wide 保证'精确记忆'、Deep 保证'泛化')。(4) <strong>与'LR + GBDT'的对比</strong>——(a) 传统做法是'GBDT 做特征交叉 + LR 做最终预测'(两阶段);(b) Wide&Deep 把'交叉'(Wide)与'泛化'(Deep)<strong>端到端联合训练</strong>(更优)。<strong>实践细节</strong>——(a) <strong>Wide 的交叉特征需人工设计</strong>(这是它的主要缺点——需要领域知识);(b) <strong>Deep 的嵌入维度</strong>(常取'类别基数^0.25');(c) <strong>优化器</strong>——Wide 用 FTRL(适合稀疏)、Deep 用 AdaGrad;(d) <strong>Warm-start</strong>(用已有模型初始化)。<strong>后续发展</strong>——(a) <strong>DeepFM</strong>(用 FM 替代手工交叉——自动学二阶交叉,见下一题);(b) <strong>DCN(Deep & Cross Network)</strong>(显式的交叉层);(c) <strong>xDeepFM</strong>(压缩交互网络)。<strong>评估</strong>——(a) AUC/GAUC(CTR 预估);(b) 在线 CTR。<strong>实践建议</strong>——(a) <strong>Wide&Deep 是深度推荐的经典基线</strong>;(b) <strong>DeepFM/DCN 替代手工交叉</strong>(更省人力);(c) <strong>嵌入维度按基数调</strong>;(d) <strong>联合训练</strong>(而非两阶段)。<strong>度量</strong>——(a) AUC/GAUC;(b) 在线 CTR;(c) 训练/推理延迟。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>'记忆 vs 泛化'是理解深度推荐的主线</strong>——Wide 管记忆、Deep 管泛化;面试中能指出这一点是深度理解的标志。② <strong>'手工交叉特征是 Wide&Deep 的主要缺点'</strong>——故后续用 FM/Cross Network 自动化(DeepFM/DCN)。③ <strong>'联合训练优于两阶段(GBDT+LR)'</strong>——端到端更优。④ <strong>'嵌入维度经验公式(基数^0.25)'</strong>——实用的经验值。⑤ <strong>'不同优化器'</strong>——Wide 用 FTRL(稀疏友好)、Deep 用 AdaGrad;这是实现细节。⑥ <strong>面试要点</strong>——被问'Wide&Deep',应给出'<strong>Wide(线性 + 手工交叉,记忆)+ Deep(嵌入 + MLP,泛化)+ 联合训练</strong>'与'<strong>为什么需要两者</strong>';能指出'手工交叉是缺点、DeepFM 自动化了它'是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    只用 Deep(丢失精确的共现记忆)
  • ✕
    只用 Wide(无法泛化到新组合)
🎯 Interviewer Follow-ups
  • ?
    '记忆'与'泛化'分别指什么?
  • ?
    为什么不能只用一个?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM7-058: Recommender Systems Foundations: 解释推荐系统的召回通道设计(i2i / u2i / 热门 / 新品)。📋Back to BankNext →M7-060: Deep Recommendation Models: 解释 DeepFM 相比 Wide&Deep 的改进。