如何利用DeepFM算法设计推荐系统

早年的推荐算法主要是各种单模型,例如逻辑回归、协同过滤、矩阵分解等等。后来推荐算法演化成了混合模型,例如 GBDT + LR , GBDT + FM 等。而随着深度学习的崛起,深度神经网络越来越深刻地影响了推荐系统领域的发展。

Huifeng Guo 等中国国内学者在 IJCAI 2017 发表了一篇题为《DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 》的论文,讲解了如何将 FM 和深度学习模型进行融合之后进行推荐的算法。

DeepFM 主要有以下三个优点:

  1. DeepFM 可以对低阶特征交互和高阶特征交互进行建模,不需要进行特征工程。
  2. DeepFM 可以高效的进行训练,因为模型宽的部分和深的部分,不仅共享输入,也共享嵌入式向量。
  3. 实验数据表明 DeepFM 可以在点击率预估问题上取得优秀的效果。

DeepFM 的输入数据为点击率预估常见的 (X, y) 元组,其中 X 是表示用户和物品的特征向量,可能包括非数值数据,y 是点击数据标签,y = 1 表示用户点击了物品,y = 0 表示用户没有点击物品。

DeepFM 的预测函数如下:

如何利用DeepFM算法设计推荐系统

, 其实是利用 sigmoid 函数对基于 FM 的预测和基于 DNN 的预测进行了融合。算法模型中的 FM 部分算法架构如下图所示:

如何利用DeepFM算法设计推荐系统

DNN 部分的算法架构如下图所示:

如何利用DeepFM算法设计推荐系统

在混合模型中,FM 和 DNN 共享同一个特征嵌入层。嵌入层的结构如下图所示:

如何利用DeepFM算法设计推荐系统

嵌入层得到的向量记为:

如何利用DeepFM算法设计推荐系统

, 该向量参与到后续的DNN计算中:

如何利用DeepFM算法设计推荐系统

,以及

如何利用DeepFM算法设计推荐系统

作者随后在测试数据集合上对近年来的几种不同的点击率预估算法进行了测评,选择的测评标准包括 AUC 和 Log-loss ,测评结果如下图所示:

如何利用DeepFM算法设计推荐系统

与 DeepFM 相比,其他几种点击率预估算法有以下缺点:

  1. FNN : FNN 是一个由 FM 初始化的前向神经网络。FM 预训练策略有如下两个问题:1). 嵌入层参数受 FM 影响较大 2). FM 预训练对算法效率有影响。另外,FM 只包含了高阶特征组合。
  2. PNN : PNN 及其变种 IPNN 和 OPNN 忽略了低阶特征的组合。
  3. 宽深网络:宽身网络的 FM 部分需要人工处理特征工程。

DeepFM 设计思路简单,源于 2016 年 Google 的宽深网络方法但是效果出众。自推荐系统诞生以来,人们便设计了各种不同的模型融合方法。从修改主题模型的 Collaborative Topic Regression ,到基于 blending 的 GBDT + LR 再到后面的宽深网络方法, 给我们设计算法提供了不同的思路。算法本身是一个既要考虑模型,又要考虑数据和参数的学科,DeepFM 在如何设计模型层面给我们展示了很好的范例。

相关推荐