DeepFM
先总结一下模型:DeepFM 模型以高维稀疏的原始用户 / 物品 / 上下文特征为输入,通过共享嵌入层将特征映射为低维稠密向量,一方面由 FM 组件建模一阶特征重要性和二阶特征交互,另一方面由 DNN 组件通过多层全连接学习高阶复杂特征交互,最终将两个组件的输出融合后经 sigmoid 激活,端到端输出 CTR 预测概率,全程无需人工特征工程和预训练。
一、背景
CTR 预测是推荐系统 / 在线广告的核心任务,目标是预估用户点击推荐物品的概率,学习用户行为背后的特征交互是提升预测效果的关键,但当时的模型存在三大问题:
- 低阶 / 高阶交互偏科:线性模型(LR)无法学习特征交互,FM 仅能有效建模二阶交互,纯 DNN 模型(FNN/PNN)侧重高阶交互,忽略低阶交互的重要性;
- 依赖人工特征工程:如 Google 的 Wide&Deep 模型,其 Wide 部分需要专家手动设计交叉特征(如 “用户安装 APP + 曝光 APP”),当特征数量大时难以穷尽;
- 训练效率低 / 需预训练:如 FNN 需要先预训练 FM 得到嵌入向量,再训练 DNN,分阶段训练导致效率低且嵌入参数受 FM 过度影响。
此外,CTR 预测的输入特征具有高维、稀疏、混合类型(类别 / 连续) 特点,普通 DNN 直接训练易出现维度灾难,这也是模型设计的重要约束。
二、DeepFM 模型架构
DeepFM 的核心思想是:用 FM 建模低阶特征交互(一阶 + 二阶),用 DNN 建模高阶特征交互(三阶及以上),两者共享同一套输入特征和嵌入向量,端到端联合训练,整体公式为:

其中
是预测的 CTR 概率,
是 FM 组件输出,
是 DNN 组件输出,最终通过 sigmoid 激活映射到概率区间。
模型整体分为输入层、嵌入层、FM 组件、DNN 组件、输出层,核心是嵌入层共享——FM 和 DNN 使用相同的特征嵌入向量,既避免重复计算,又让低阶 / 高阶交互的学习相互影响,提升特征表示的精准度。
1. FM 组件:建模低阶特征交互
FM 组件继承了经典 FM 的设计,负责学习一阶特征重要性和二阶特征交互,输出公式为:
- 第一部分<w,x>:一阶特征交互,w是一阶权重向量,反映单个特征对 CTR 的独立影响(如 “性别为男” 对游戏 APP 点击的影响);
- 第二部分:二阶特征交互,Vi/Vj是特征i/j的低维嵌入向量(维度k),通过计算嵌入向量的内积,建模任意两个特征的交互;
- 核心优势:即使特征对(i,j)在训练数据中很少共现,也能通过各自的嵌入向量学习交互,解决了稀疏特征下的交互学习问题。
2. DNN 组件:建模高阶特征交互
DNN 组件是一个前馈神经网络,负责学习三阶及以上的复杂特征交互(如 “年龄 + 性别 + APP 类别” 的三阶交互),针对 CTR 特征的稀疏性做了专门设计:
- 嵌入层:将高维稀疏的类别特征(经独热编码)压缩为低维稠密的嵌入向量,所有特征的嵌入向量维度统一为k,连续特征直接作为一维向量输入;
- 隐藏层:将嵌入层输出的所有特征向量拼接为一个大向量,送入多层全连接层,通过非线性激活(ReLU/Tanh)学习高阶交互,前向传播公式为:
其中
是第l层输出,
是第l层的权重和偏置,σ是激活函数; - 输出层:最后一层隐藏层输出经线性变换得到
,与 FM 组件输出相加后送入 sigmoid。
3. 关键设计:嵌入层共享
这是 DeepFM 与 Wide&Deep 最核心的区别:
- Wide&Deep:Wide 部分和 Deep 部分使用不同的输入,Wide 部分需要人工设计交叉特征,嵌入层不共享;
- DeepFM:FM 和 DNN 使用同一套输入特征和嵌入向量,FM 的嵌入向量Vi直接作为 DNN 嵌入层的权重,无需人工设计特征,且端到端联合训练,所有参数(w,Vi,DNN权重)同步更新。
三、DeepFM 与同期模型的对比
论文对比了当时主流的 CTR 预测模型,证明 DeepFM 是唯一同时满足 “无需预训练、建模高低阶交互、无需特征工程” 的模型,核心对比如下:
| 模型 | 无需预训练 | 建模高阶交互 | 建模低阶交互 | 无需特征工程 | 核心缺陷 |
|---|---|---|---|---|---|
| FNN | × | √ | × | √ | 需 FM 预训练,忽略低阶交互 |
| PNN(IPNN/OPNN) | √ | √ | × | √ | 忽略低阶交互,内积计算效率低 |
| Wide&Deep | √ | √ | √ | × | Wide 部分需人工设计交叉特征 |
| DeepFM | √ | √ | √ | √ | 无明显缺陷 |
四、其他相关模型对比
| 对比维度 | FM(因子分解机) | FFM(场感知因子分解机) | DeepFM(深度因子分解机) |
|---|---|---|---|
| 核心定位 | 解决稀疏特征下的二阶特征交互建模 | 对 FM 的场感知优化,精细化二阶特征交互 | 融合 FM+DNN,端到端建模低 / 高阶全阶特征交互 |
| 特征交互建模能力 | 仅能有效建模二阶特征交互,一阶为线性加权 | 仅能有效建模二阶场感知特征交互,无高阶 | 一阶 + 二阶(FM)+ 三阶及以上(DNN)全阶交互 |
| 场感知设计 | 无场概念,所有特征统一处理 | 引入场(Field),特征嵌入向量与场绑定 | 无显式场概念,嵌入层按特征域统一维度,共享学习 |
| 嵌入向量设计 | 每个特征仅 1 个嵌入向量Vi | 每个特征对应每个场 1 个嵌入向量Vi,f | 每个特征 1 个嵌入向量,FM 与 DNN 共享 |
| 模型结构 | 单层线性模型 + 二阶内积交互 | 单层线性模型 + 二阶场感知内积交互 | 双分支结构:FM 分支(低阶)+ DNN 分支(高阶) |
| 是否需要特征工程 | 无需人工设计交叉特征,支持原始稀疏特征 | 无需人工设计交叉特征,需定义特征所属场 | 完全无需特征工程,直接输入原始高维稀疏特征 |
| 适用场景 | 特征维度适中、仅需二阶交互的 CTR / 推荐场景 | 特征可清晰分场、需精细化二阶交互的场景 | 高维稀疏特征、需同时捕捉低 / 高阶复杂交互的 CTR / 推荐核心场景 |
| 核心优势 | 结构简单、效率高,解决稀疏特征交互问题 | 场感知设计让二阶交互更精准,适配分场特征 | 全阶交互建模、免特征工程、共享嵌入层兼顾效果与效率 |
| 核心局限性 | 无法建模高阶特征交互 | 无法建模高阶特征交互,参数量易膨胀 | DNN 高阶交互为 “黑箱”,无法显式控制交互阶数 |
五、总结
DeepFM 是“FM+DNN 共享嵌入” 的设计思路被后续众多模型借鉴(如 xDeepFM、AutoFM 等),成为推荐系统 / 在线广告的基础模型之一。
核心优势:在无需人工特征工程的前提下,实现了低阶 + 高阶特征的端到端学习,兼顾效果、效率、工程落地性,这也是其至今仍被广泛应用的原因。
适用场景:高维稀疏特征的点击率 / 转化率预测,如电商推荐、在线广告、APP 商店推荐等,是工业界落地的首选模型之一。
后续延伸:DeepFM 无法建模显式的特征交叉阶数,后续 xDeepFM 提出了 CIN(压缩交互网络),解决了 DNN 高阶交互 “黑箱” 问题,进一步提升了特征交互的建模能力。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)