M7-059M7: Retrieval, Ranking & RecSysDeep Recommendation ModelsEasy
Mastery:
Deep Recommendation Models: 解释 Wide&Deep 的结构与动机。
📐 Mathematical Definition
⚡ 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.