核心要点

  • Wide&Deep:wide 侧线性 + 人工交叉特征做「记忆」,deep 侧 DNN 做「泛化」

  • Wide&Deep 的痛点:wide 侧交叉特征需人工设计,费力且难覆盖

  • DeepFM:用 FM 自动学习二阶特征交叉,替代人工叉乘

  • DeepFM 的 FM 部分与 deep 部分共享同一份 embedding,端到端、无需特征工程

标准回答

Wide&Deep:双路并联。

  • Wide(记忆):线性模型 + 人工设计的交叉特征(如「已安装App × 曝光App」),擅长记住高频共现规则。
  • Deep(泛化):把稀疏特征过 embedding 再过 DNN,学习未见过的特征组合,泛化到长尾。

最大痛点是 wide 侧的交叉特征要靠人工设计,依赖业务经验,难以穷举。

DeepFM:用 FM(因子分解机) 取代 wide 侧的人工叉乘。FM 给每个特征学一个隐向量,用隐向量内积自动建模所有二阶特征交叉,无需人工指定。

关键改进——共享 embedding:DeepFM 的 FM 部分和 Deep 部分共享同一份特征 embedding,FM 学低阶(二阶)交叉、Deep 学高阶交叉,端到端联合训练。相比 Wide&Deep 既省去了人工特征工程,又让低阶/高阶交叉信息共享表示。

常见误区

⚠️ 常见踩坑

DeepFM 不是「在 Wide&Deep 上加 FM」;它是用 FM 替换 wide 侧,并让 FM 与 Deep 共享 embedding——共享 embedding 才是它免特征工程的核心,而非简单堆模块。

追问

追问 1FM 相比 LR 的核心优势是什么?

LR 处理特征交叉需人工构造组合特征,且在稀疏数据下组合特征几乎学不到权重。FM 给每个特征学隐向量、用内积表示交叉,即使某个交叉对从未共现,也能借隐向量泛化出其权重,解决了稀疏下的交叉学习问题。

追问 2为什么 DeepFM 要共享 embedding?

共享后 FM 与 Deep 看到同一份特征表示,低阶与高阶交叉的梯度互相促进,参数更省、训练更稳;若分开两份 embedding,不仅参数翻倍,两侧学到的表示也割裂,效果通常更差。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。