[推荐]DeepFM(介绍)

618 阅读4分钟

DeepFM算法是推荐系统中的一种混合模型,结合了因子分解机(FM)深度神经网络(DNN),旨在自动捕捉特征的低阶(线性)和高阶(非线性)交互关系,广泛应用于点击率预估(CTR)、排序等场景。

以下从核心原理、作用、与其他模型的对比三个方面详细解析。


一、DeepFM的核心原理

1. 模型结构

DeepFM由两部分组成:FM组件(低阶特征交互)DNN组件(高阶特征交互),共享同一输入特征嵌入层,联合训练输出结果。

  • FM部分(Factorization Machine)

    • 功能:自动学习特征的二阶交叉组合(如用户年龄 × 商品类别),无需人工设计交叉特征。
    • 公式
      [ \hat{y}{\text{FM}} = w_0 + \sum{i=1}^n w_i x_i + \sum_{i=1}^n \sum_{j=i+1}^n \langle \mathbf{v}_i, \mathbf{v}_j \rangle x_i x_j ] 其中,(\mathbf{v}_i)是特征(x_i)的隐向量,(\langle \mathbf{v}_i, \mathbf{v}_j \rangle)表示隐向量的内积,用于建模特征交叉。
  • DNN部分(Deep Neural Network)

    • 功能:通过多层神经网络挖掘特征的高阶非线性交互(如三阶及以上组合)。
    • 输入:所有特征的嵌入向量拼接后输入DNN,经过多个全连接层和非线性激活函数(如ReLU)变换。
  • 联合输出
    [ \hat{y} = \sigma(\hat{y}{\text{FM}} + \hat{y}{\text{DNN}}) ] (\sigma)为Sigmoid函数,用于输出概率(如点击概率)。

2. 核心优势

  • 自动特征交叉:FM替代人工设计交叉特征(如Wide&Deep的Wide部分),减少特征工程成本。
  • 共享嵌入层:FM和DNN共享特征嵌入,避免参数冗余,提升训练效率。
  • 端到端训练:联合优化低阶和高阶特征交互,增强模型表达能力。

二、DeepFM在推荐系统中的作用

1. 解决的关键问题

  • 稀疏数据下的特征交互:在用户行为稀疏的场景(如新用户、长尾物品),通过FM和DNN分别捕捉显式和隐式特征关系,提升泛化能力。
  • 精准CTR预估:同时建模用户点击行为的低阶规则(如“年轻用户偏爱电子产品”)和高阶模式(如“一线城市白领在周末偏好高端餐饮”),提高推荐准确性。

2. 实际应用场景

  • 电商推荐:预测用户点击或购买概率,优化商品排序。
  • 信息流推荐:结合用户历史行为和内容特征,提升内容曝光相关性。
  • 广告投放:精准预估广告点击率,优化广告位竞价策略。

三、DeepFM与其他模型的区别

1. DeepFM vs. 协同过滤(CF)

维度协同过滤DeepFM
数据依赖仅用户-物品交互数据支持多源特征(用户画像、物品属性、上下文等)
特征交互基于共现的隐式相似性(如矩阵分解)显式建模低阶(FM)和高阶(DNN)特征交互
冷启动无法处理新用户/物品利用侧信息缓解冷启动问题
场景适用性简单推荐场景(如Top-N推荐)复杂场景(如CTR预估、精细化排序)

2. DeepFM vs. Wide&Deep

维度Wide&DeepDeepFM
特征交叉方式Wide部分依赖人工设计交叉特征FM自动学习二阶交叉,无需人工干预
参数共享Wide和Deep部分特征独立处理FM与DNN共享嵌入层,减少冗余参数
工程复杂度需人工筛选有效交叉特征端到端自动交叉,降低开发成本
泛化能力依赖人工特征的质量自动挖掘潜在交叉,泛化性更强

3. DeepFM vs. 双塔模型

维度双塔模型DeepFM
模型目标生成用户/物品的独立嵌入(召回阶段)端到端CTR预估(排序阶段)
特征交互仅通过内积计算相似度显式建模特征交叉(FM+DNN)
应用阶段召回(候选集生成)排序(精准打分)
特征处理用户和物品特征分开处理所有特征联合输入,交叉建模

4. DeepFM vs. 传统FM

维度传统FMDeepFM
特征交互阶数仅二阶交叉二阶(FM)+ 高阶(DNN)
非线性能力线性模型(仅内积交互)非线性DNN捕捉复杂模式
特征表示隐向量浅层表示嵌入层+DNN深层语义表示

四、总结:DeepFM的核心价值

  1. 自动化特征工程:通过FM替代人工交叉特征,适应大规模稀疏数据场景。
  2. 平衡效率与效果:共享嵌入层减少参数量,同时联合低阶和高阶特征提升预测精度。
  3. 广泛适用性:在CTR预估、排序等任务中表现优异,成为工业界主流模型之一。

五、模型演进与选择建议

  • 选择协同过滤:数据量小、仅需简单推荐(如初创产品MVP阶段)。
  • 选择Wide&Deep:已有高质量人工交叉特征,需快速上线混合模型。
  • 选择DeepFM:追求自动化特征交叉与高精度排序(如电商、广告场景)。
  • 选择双塔模型:需高效召回候选集(如亿级物品库的初步筛选)。