标准回答
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 才是它免特征工程的核心,而非简单堆模块。
追问
追问 1:FM 相比 LR 的核心优势是什么?
LR 处理特征交叉需人工构造组合特征,且在稀疏数据下组合特征几乎学不到权重。FM 给每个特征学隐向量、用内积表示交叉,即使某个交叉对从未共现,也能借隐向量泛化出其权重,解决了稀疏下的交叉学习问题。
追问 2:为什么 DeepFM 要共享 embedding?
共享后 FM 与 Deep 看到同一份特征表示,低阶与高阶交叉的梯度互相促进,参数更省、训练更稳;若分开两份 embedding,不仅参数翻倍,两侧学到的表示也割裂,效果通常更差。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。