DeepFM(Deep Factorization Machine)是一种用于点击率(CTR)预测的深度学习模型,它结合了因子分解机(FM)和深度神经网络(DNN)的优点,能够自动学习低阶和高阶的特征交叉,无需复杂的人工特征工程。
一、模型架构
DeepFM 主要包含 FM 部分和 Deep 部分。FM 部分用于学习低阶的交叉特征,能够有效捕捉数据中的一阶和二阶特征关系。Deep 部分则是一个全连接神经网络,用于学习高阶的交叉特征,通过多层神经元的非线性变换,挖掘数据中更复杂的特征组合。
1.输入层:接收原始特征
输入层负责处理业务场景中的原始数据,将其转化为模型可识别的特征格式。
特征类型:输入特征主要分为两类:
类别型特征(如用户ID、商品ID、性别、地域、广告类型等),这类特征是点击率预测场景的核心,通常通过独热编码(One-Hot Encoding)转化为高维稀疏向量(如“性别=女”对应向量中“女”位置为1,其他为0)。
数值型特征(如用户年龄、商品价格、浏览时长等),可直接作为连续值输入,或经归一化后参与计算。
核心作用:将原始业务数据(如用户行为日志、商品属性)转化为模型可处理的结构化特征向量,为后续特征处理奠定基础。
2.嵌入层:特征降维与信息压缩
嵌入层是连接原始高维稀疏特征与后续模型的关键桥梁,解决类别型特征经独热编码后维度爆炸的问题。
对于每个高维稀疏的类别型特征(如用户ID对应的独热向量),嵌入层通过一个低维稠密的“嵌入矩阵”(Embedding Matrix)将其映射为固定长度的低维向量(如从10万维独热向量压缩为100维稠密向量)。
数值型特征可直接拼接至嵌入层输出的向量中,或通过简单线性变换后参与后续计算。
关键特性:同一类别特征的不同取值(如“商品ID=A”和“商品ID=B”)会被映射为不同的低维向量,向量的数值隐含了特征的语义或关联信息(如相似商品的嵌入向量更接近)。
共享参数:嵌入层的参数(嵌入矩阵)会同时供后续的FM层和DNN层使用,避免特征信息的重复计算,提升模型效率。
3.FM层:捕捉低阶特征交互
FM层(Factorization Machine,因子分解机)是DeepFM的“低阶交互建模模块”,专注于学习特征间的简单组合关系。
核心功能:直接建模两个特征之间的低阶交互(如“用户性别=女”与“商品品类=美妆”的组合、“地域=一线城市”与“价格=高端”的组合)。
实现逻辑:基于嵌入层输出的低维特征向量,FM层通过向量内积计算所有特征对的交互强度(如特征i的嵌入向量与特征j的嵌入向量相乘,得到两者的交互分数),并将所有交互分数汇总为低阶交互总得分。
优势:无需人工设计交叉特征(如“性别×品类”),自动学习所有可能的两两特征交互,尤其适用于稀疏数据中低频特征的交互建模。
4.DNN层:捕捉高阶特征交互
DNN层(Deep Neural Network,深度神经网络)是DeepFM的“高阶交互建模模块”,专注于学习多个特征之间的复杂非线性组合关系。
核心功能:通过多层神经网络的非线性变换,捕捉特征间的高阶交互(如“用户年龄+地域+时段+商品品牌”的四特征组合、“历史点击品类+当前商品价格+促销类型”的多特征组合)。
输入:将嵌入层输出的所有低维特征向量拼接成一个长向量,作为DNN的输入。
网络结构:通常由多个全连接层(Dense Layer)组成,每层通过激活函数(如ReLU)引入非线性,逐步将低维特征向量映射到更高维的隐空间,最终输出一个高阶交互总得分。
作用:通过深度网络的“多层抽象”能力,挖掘特征间隐藏的复杂关联(如“25岁女性+一线城市+周末+轻奢品牌”的组合对点击率的影响)。
5.输出层:融合得分与预测点击率
输出层将FM层的低阶交互得分与DNN层的高阶交互得分进行融合,最终输出点击率的预测概率。
融合逻辑:将FM层的低阶得分和DNN层的高阶得分相加,得到一个总得分,再通过Sigmoid激活函数将总得分映射到0-1之间的概率值(即预测的点击率)。
训练目标:通过损失函数(如对数损失,Log Loss)优化整个模型的参数(包括嵌入层、FM层和DNN层的参数),使预测概率尽可能接近真实的用户点击标签(点击为1,未点击为0)。
DeepFM的架构设计通过“并行双路径建模”实现了对特征交互的全面捕捉:
FM层专注低阶、显式的特征组合(如两两特征交互),解决传统DNN在稀疏数据中难以学习简单关联的问题。
DNN层专注高阶、隐式的特征组合(如多特征非线性交互),弥补FM对复杂关系建模能力的不足。
嵌入层参数共享确保了低阶和高阶交互学习的一致性,避免信息割裂,实现端到端的联合训练。
这种架构让DeepFM在高维稀疏的点击率预测场景中(如广告推荐、电商推荐)能够同时兼顾简单规律和复杂模式,无需人工设计特征交叉,大幅提升了模型的实用性和预测精度。
二、工作原理
DeepFM 的核心工作原理可概括为:
通过嵌入层将高维稀疏特征转换为低维稠密向量,解决稀疏性问题;
通过FM 组件捕获一阶线性特征和二阶低阶交互,确保基础模式不丢失;
通过DNN 组件捕获高阶非线性特征交互,挖掘复杂模式;
联合优化两组件输出,通过 sigmoid 函数输出最终点击率预测概率。
这种 “低阶 + 高阶” 的双路径设计,使其在稀疏数据场景下既能保留基础特征影响,又能挖掘深层交互,从而在点击率预测任务中表现优异。
三、DeepFM的优点
1.同时建模低阶与高阶特征交互
DeepFM通过FM组件捕获低阶特征交互(如“性别=女”与“品类=化妆品”的直接关联),通过DNN组件捕获高阶特征交互(如“年龄=25-30岁”+“城市=一线城市”+“消费等级=高”的复杂组合),避免了传统模型(如仅用FM或仅用DNN)对特征交互建模不全面的问题。这种“低阶+高阶”的联合学习能力,使其在稀疏数据场景下(如推荐系统、广告点击率预测)表现更稳定。
2.共享嵌入层,提升特征表示一致性
FM的隐向量与DNN的嵌入层参数完全共享,即每个特征字段的嵌入向量既用于FM的二阶交互计算,也作为DNN的输入。这种设计避免了分阶段训练(如先预训练嵌入再输入DNN)导致的特征表示不一致问题,同时减少了参数冗余,提升了模型训练效率和特征利用率。
3.高效处理稀疏数据
FM组件通过隐向量内积建模二阶交互,解决了传统线性模型或矩阵分解在稀疏数据下参数估计不准确的问题,,适用于大规模稀疏输入。
嵌入层将高维稀疏特征映射为低维稠密向量,缓解了DNN在高维稀疏输入下的过拟合风险和训练难度。
4.端到端训练,简化工程流程
模型无需手动设计特征交互(如人工构造交叉特征),FM和DNN通过端到端联合训练自动学习特征交互模式,减少了对领域知识和特征工程的依赖,尤其适合特征维度极高、人工特征设计成本高的场景(如电商、广告推荐)。
5.扩展性强,适配多类型特征
模型对输入特征类型的兼容性较好,无论是类别型特征(如用户ID、商品ID)还是数值型特征(如价格、浏览时长),均可通过嵌入层统一处理为稠密向量,无需复杂的特征预处理逻辑。
四、DeepFM的缺点
1.高阶特征交互建模能力有限
DNN组件虽然理论上可通过多层非线性变换捕获高阶交互,但实际中存在两个问题:
嵌入层输出的向量直接拼接后输入DNN,低阶嵌入向量的“简单拼接”可能导致高阶交互学习效率低,尤其当特征维度极高时,有效交互信号易被噪声淹没。
传统DNN的全连接层对特征交互的建模是“无差别”的,缺乏对重要交互的针对性强化,可能导致冗余计算或关键模式丢失。
2.计算成本较高
模型包含FM和DNN两个组件,参数规模较大(嵌入层参数+FM一阶参数+DNN隐藏层参数),训练时需要更多的计算资源和显存支持,尤其在特征维度极高(如千万级特征)的场景下,训练效率可能低于轻量级模型(如FM、LR)。
嵌入层的维度K和DNN隐藏层的规模需谨慎调参,否则易出现过拟合或训练收敛缓慢的问题。
3.对超参数敏感,调优难度大
模型性能依赖多个关键超参数的设置,如:
嵌入维度K(影响特征表示能力和计算量);
DNN隐藏层的层数和神经元数量(影响高阶交互建模能力);
正则化参数(防止过拟合)。
超参数组合空间大,调优过程耗时,尤其在数据规模有限时,可能难以找到最优配置。
4.缺乏对特征交互的可解释性
FM的二阶交互可通过隐向量内积一定程度解释特征对的关联强度,但DNN的高阶交互是通过多层非线性变换实现的,其内部逻辑难以直观解读,无法明确回答“哪些高阶特征组合对预测起关键作用”。这在需要可解释性的场景(如金融风控)中可能成为短板。
5.对稠密数值特征的处理不够灵活
模型对数值型特征的处理通常是直接嵌入或线性变换后嵌入,未针对数值特征的连续性和分布特性设计专门模块(如未区分数值特征与类别特征的嵌入逻辑),可能导致数值特征的有效信息未被充分利用。
五、应用场景
1.在线广告推荐与投放
在线广告是点击率(CTR)预测的核心应用领域,DeepFM的优势在于精准预估用户对广告的点击意愿,优化广告投放效率和收益。
场景细分:
展示广告(Display Ads):在门户网站、App开屏、信息流等场景中,预测用户对不同广告素材、文案、落地页的点击概率,实现“千人千面”的广告个性化展示,提升广告平台的点击率和广告主的转化效果。
搜索广告(Search Ads):根据用户搜索关键词、历史浏览行为、广告出价等特征,预测广告与用户需求的匹配度,优化广告排序(如Google AdWords、百度推广的竞价排名辅助),平衡平台收益(CPC)和用户体验。
社交广告(Social Ads):结合用户社交关系、兴趣标签、互动行为(如点赞、分享)等特征,预测用户对好友推荐广告或信息流广告的点击概率,降低广告对用户体验的干扰。
核心价值:通过学习用户-广告-场景的多维度特征交互(如“25岁女性+一线城市+美妆广告+周末时段”的组合影响),提升广告投放的精准度,降低无效曝光成本。
2.电商平台商品推荐
电商场景中,用户对商品的点击行为直接影响转化效率,DeepFM可用于优化商品推荐列表,提升用户浏览-点击-购买的转化链路。
场景细分:
首页个性化推荐:基于用户历史购买记录、浏览时长、商品品类偏好、价格敏感度等特征,预测用户对“猜你喜欢”“为你推荐”等模块中商品的点击概率,优化推荐排序,增加用户停留时长。
商品详情页关联推荐:在商品详情页展示“相似商品”“搭配推荐”时,结合当前商品属性(如品牌、规格)、用户实时行为(如查看评价、对比价格)等特征,预测用户对关联商品的点击意愿,提升交叉销售机会。
促销活动推荐:在大促(如双十一、618)期间,结合用户对促销类型(满减、折扣、赠品)的偏好、历史促销参与行为等特征,精准推送用户可能点击的活动商品,提高活动参与度。
核心价值:处理电商场景中高稀疏的用户-商品交互数据(如多数用户仅浏览少数商品),通过低阶交互(如“品类×价格”)和高阶交互(如“用户年龄×地域×促销类型×商品品牌”)捕捉用户潜在需求。
3.内容推荐与信息流优化
在资讯、短视频、社交等内容平台中,DeepFM可预测用户对内容的点击概率,优化信息流排序,提升用户粘性。
场景细分:
资讯/App内容推荐:针对新闻、文章、短视频等内容,结合用户兴趣标签(如科技、娱乐)、内容属性(如作者、发布时间、话题热度)、场景特征(如使用时段、设备类型),预测用户点击概率,实现“千人千面”的内容分发(如今日头条、抖音的推荐逻辑)。
社交平台动态推荐:在微信朋友圈、微博信息流中,综合用户社交关系强度(如好友互动频率)、动态内容类型(如图文、视频)、用户历史互动行为(如点赞、评论),预测用户对某条动态的点击或互动意愿,平衡内容相关性和社交价值。
核心价值:解决内容特征(如标签、关键词)与用户特征(如兴趣、行为)的高维稀疏问题,通过高阶交互挖掘潜在兴趣(如“喜欢科幻电影的用户可能点击航天科技资讯”)。
4.金融与风控场景的精准触达
金融领域中,点击率预测可用于优化产品推荐和用户运营,提升业务转化效率,同时降低用户骚扰。
场景细分:
理财产品推荐:银行或理财平台根据用户风险等级、资产规模、投资历史、浏览过的产品类型等特征,预测用户对基金、保险、贷款等产品的点击意愿,在App首页或短信推送中精准展示,提升转化率。
信用卡营销活动:结合用户信用卡使用频率、消费场景(如餐饮、旅行)、信用评分等特征,预测用户对“积分兑换”“分期优惠”等活动的点击概率,优化营销资源投放。
核心价值:在金融数据高敏感、特征维度复杂(如用户征信、行为数据)的场景中,通过低阶和高阶交互平衡推荐精准度与合规性,避免对低意向用户的过度营销。
5.本地生活服务推荐
本地生活场景(如外卖、到店消费、出行)依赖用户地理位置、实时需求等动态特征,DeepFM可优化服务推荐的时效性和相关性。
场景细分:
外卖/到店餐饮推荐:根据用户地理位置、历史点餐偏好(如口味、价格区间)、天气(如雨天推热饮)、时段(如午间推快餐)等特征,预测用户对某家餐厅或菜品的点击概率,优化外卖平台首页推荐排序。
出行服务推荐:在打车、共享单车等App中,结合用户实时位置、出行时间(如早晚高峰)、历史出行方式偏好、天气状况等特征,预测用户对不同车型(如快车、专车)、优惠活动的点击意愿,提升叫车转化率。
核心价值:处理动态特征(如位置、天气)与静态特征(如用户偏好)的交互,快速响应实时场景变化,提升推荐的时效性。
6.模型优势驱动的场景适配共性
DeepFM之所以能在上述场景中广泛应用,核心在于其适配场景的共性需求:
1. 高维稀疏特征:场景中存在大量类别型特征(如用户ID、商品ID、地域),经独热编码后维度极高且稀疏,DeepFM的嵌入层可有效降维并保留特征信息。
2. 复杂特征交互:用户行为由多因素共同影响(如用户+商品+场景的组合),FM建模低阶交互(如“用户性别×商品品类”),DNN捕捉高阶交互(如“年龄+地域+时段+价格”),无需人工设计交叉特征。
3. 端到端训练:嵌入层参数在FM和DNN间共享,避免传统“先训练嵌入再建模”的两阶段误差累积,提升预测精度。
总结
DeepFM的核心优势在于高效融合低阶与高阶特征交互、适配稀疏数据、减少人工特征工程,使其在推荐系统、广告点击率预测等场景中广泛应用。但其高阶交互建模效率、计算成本、可解释性等问题也推动了后续改进模型的发展(如Wide&Deep、xDeepFM、AutoInt等),这些模型在DeepFM基础上针对特定缺点进行了优化(如增强高阶交互的显式建模、提升可解释性等)。在实际应用中,需根据数据规模、特征类型、资源限制和可解释性需求综合选择模型。