M7-060M7: Retrieval, Ranking & RecSysDeep Recommendation ModelsEasy
Mastery:
Deep Recommendation Models: 解释 DeepFM 相比 Wide&Deep 的改进。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 用 FM 替代 Wide 部分的'手工交叉特征',自动学二阶交叉;FM 与 Deep 共享嵌入,端到端训练。
📌 Key Takeaways
- •FM 部分:自动学'二阶特征交叉'(内积 v_i·v_j)
- •Deep 部分:MLP 学高阶交叉
- •共享嵌入:FM 与 Deep 用同一套特征嵌入(省参数、互相促进)
📐 Mathematical Derivations
数学机理:<strong>DeepFM(Guo 等 2017)</strong> 的两项改进——(1) <strong>用 FM 替代 Wide 的手工交叉</strong>——(a) <strong>FM(Factorization Machine)</strong> 部分:y_FM = w₀ + Σ_i w_i x_i + Σ_{i<j} ⟨v_i, v_j⟩ x_i x_j;其中 (i) 第一项是全局偏置;(ii) 第二项是一阶(线性);(iii) <strong>第三项是二阶交叉</strong>(用特征隐向量 v_i、v_j 的<strong>内积</strong>表示交叉权重);(b) <strong>为什么能自动学交叉</strong>——FM 用'隐向量的内积'参数化交叉权重(而非为每个交叉单独设参数):(i) 参数从 O(n²) 降到 O(nk);(ii) <strong>可泛化</strong>(即使某交叉从未出现,只要隐向量学到了就能预测);(c) <strong>对比 Wide&Deep</strong>——Wide 需要<strong>人工设计</strong>交叉特征(如 'AND(app=A, app=B)');FM <strong>自动</strong>学所有二阶交叉(无需人工)。(2) <strong>共享嵌入(关键)</strong>——(a) FM 与 Deep 部分<strong>使用同一套特征嵌入</strong>(而非各自的嵌入);(b) <strong>好处</strong>——(i) <strong>省参数</strong>(嵌入只有一份);(ii) <strong>互相促进</strong>(FM 的二阶交叉与 Deep 的高阶交叉共享底层表示,联合训练可互相提升);(iii) <strong>缓解稀疏</strong>(FM 的隐向量在 Deep 部分也被训练,学到更丰富的表示)。(c) <strong>对比 Wide&Deep</strong>——Wide 与 Deep 的输入是'不同的特征表示'(Wide 用原始交叉、Deep 用嵌入);DeepFM 统一了。(3) <strong>架构</strong>——输出 = σ(y_FM + y_Deep),端到端联合训练。<strong>优势</strong>——(a) <strong>无需特征工程</strong>(自动二阶交叉);(b) <strong>同时学低阶与高阶</strong>(FM 二阶 + Deep 高阶);(c) <strong>共享嵌入</strong>(省参数、互相促进);(d) <strong>端到端</strong>(一个模型)。<strong>局限</strong>——(a) FM 只建模<strong>二阶</strong>交叉(更高阶靠 Deep,但 Deep 的'高阶交叉'学习效率较低);(b) 对'显式的高阶交叉'建模不足(故有 DCN/xDeepFM)。<strong>后续发展</strong>——(a) <strong>DCN(Deep & Cross Network)</strong>——用<strong>显式的交叉层</strong>(每层做特征交叉);(b) <strong>xDeepFM</strong>——<strong>CIN(压缩交互网络)</strong>显式建模高阶交叉;(c) <strong>AutoInt</strong>——用注意力学交叉;(d) <strong>FiBiNET</strong>——用'特征重要性 + 双线性'。<strong>实证</strong>——DeepFM 在 Criteo 等基准上优于 Wide&Deep(且无需手工特征);成为工业界的常用基线。<strong>实践建议</strong>——(a) <strong>DeepFM 是省人力的选择</strong>(无需手工交叉);(b) <strong>需更强的高阶交叉</strong> → DCN/xDeepFM;(c) <strong>共享嵌入</strong>(默认);(d) <strong>特征工程仍重要</strong>(如'连续特征的分桶')。<strong>度量</strong>——(a) AUC/GAUC;(b) 在线 CTR;(c) 训练/推理延迟。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'FM 自动学二阶交叉'是 DeepFM 的核心改进</strong>——它消除了 Wide&Deep 的手工特征工程;面试中能指出这一点是深度理解的标志。② <strong>'共享嵌入'的互相促进</strong>——FM 与 Deep 共享底层表示,联合训练可互相提升;这是易被忽视的细节。③ <strong>'FM 的参数从 O(n²) 降到 O(nk)'</strong>——这是它'可泛化'的原因(隐向量共享)。④ <strong>'FM 只二阶、Deep 高阶但效率低'</strong>——故有 DCN/xDeepFM 的显式高阶交叉。⑤ <strong>'工业界常用基线'</strong>——DeepFM 是'省人力 + 效果好'的实用选择。⑥ <strong>面试要点</strong>——被问'DeepFM 相比 Wide&Deep',应给出'<strong>FM 替代手工交叉(自动二阶)+ 共享嵌入(省参数、互相促进)</strong>'与'<strong>后续 DCN/xDeepFM 建模显式高阶交叉</strong>';能指出'共享嵌入的互相促进'是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕FM 与 Deep 用各自的嵌入(浪费参数、失去互相促进)
- ✕认为 FM 能建模高阶交叉(只二阶)
🎯 Interviewer Follow-ups
- ?FM 如何自动学交叉?
- ?为什么共享嵌入重要?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.