返回

CTR学习笔记3-深度CTR模型FNN->PNN->DeepFM

人工智能

深度CTR模型在业界和学界一直是关注的热点,特别是近年Google、Facebook、阿里、腾讯等业界大佬频频在顶级会议发表CTR预估算法论文,对整个模型算法的发展起到了很好的推动作用。

但随着大量企业引入预估系统,很多企业面临以下问题:

  1. 各类模型代码相互独立,维护困难。
  2. 难以做到快速迭代,比如,基于wide&deep模型构建的新模型开发周期太长。
  3. 缺乏业界权威和最新的算法实现。

针对上述问题,阿里巴巴发表业界首个系统性CTR算法库:CateKit,该算法库包含了业界和学术界最新颖和高效的CTR预估算法,包括wide&deep, DeepFM, DeepCross, xDeepFM, DIN, FNN, PNN, AutoInt, DCN, NFM, AFM, ONN, MLR, LR等,未来还将持续引入新的算法,打造一站式CTR预测预估方案,满足线上各种场景的需求。

本篇内容将介绍CTR学习笔记2中剩余的3个模型:

  • FNN: Neural Factorization Machines for Recommender Systems
  • PNN: Product-based Neural Networks for User Response Prediction
  • DeepFM: A Factorization-Machine based Neural Network for CTR Prediction

上述模型是CTR预估模型中的经典模型,是后续各类模型的基础,在各大工业界广泛使用。

FNN

FNN(Factorization Machines Neural Networks)模型本质上是一个多层神经网络,它将FM得到的隐向量作为输入,然后通过多层神经网络进行学习,得到最终的预估结果。

FNN模型的结构如下图所示:

[Image of FNN model structure]

FNN模型的优点:

  • 学习能力强,可以学习到更复杂的特征交互关系。
  • 鲁棒性强,对异常值不敏感。
  • 可解释性好,可以通过特征权重来解释模型的预测结果。

FNN模型的缺点:

  • 计算量大,训练时间长。
  • 容易过拟合,需要进行正则化处理。

PNN

PNN(Product-based Neural Networks)模型也是一种多层神经网络,它与FNN模型的区别在于,PNN模型将向量内/外积从预训练直接迁移到网络中,这样可以减少计算量,提高模型的训练速度。

PNN模型的结构如下图所示:

[Image of PNN model structure]

PNN模型的优点:

  • 计算量小,训练速度快。
  • 鲁棒性强,对异常值不敏感。
  • 可解释性好,可以通过特征权重来解释模型的预测结果。

PNN模型的缺点:

  • 学习能力弱于FNN模型。
  • 容易过拟合,需要进行正则化处理。

DeepFM

DeepFM(Deep Factorization Machines)模型是FM模型与DNN模型的结合,它将FM模型的隐向量作为DNN模型的输入,然后通过DNN模型进行学习,得到最终的预估结果。

DeepFM模型的结构如下图所示:

[Image of DeepFM model structure]

DeepFM模型的优点:

  • 学习能力强,可以学习到更复杂的特征交互关系。
  • 鲁棒性强,对异常值不敏感。
  • 可解释性好,可以通过特征权重来解释模型的预测结果。

DeepFM模型的缺点:

  • 计算量大,训练时间长。
  • 容易过拟合,需要进行正则化处理。

代码实现

FNN、PNN和DeepFM模型的代码实现可以参考如下链接:

总结

FNN、PNN和DeepFM模型都是CTR预估模型中的经典模型,它们各有优缺点,在不同的场景下有不同的应用。

在实际应用中,我们可以根据自己的业务场景选择合适的模型进行使用。如果对模型的学习能力要求较高,可以选择FNN模型;如果对模型的训练速度要求较高,可以选择PNN模型;如果对模型的可解释性要求较高,可以选择DeepFM模型。