CTR学习笔记3-深度CTR模型FNN->PNN->DeepFM
2023-11-10 22:12:47
深度CTR模型在业界和学界一直是关注的热点,特别是近年Google、Facebook、阿里、腾讯等业界大佬频频在顶级会议发表CTR预估算法论文,对整个模型算法的发展起到了很好的推动作用。
但随着大量企业引入预估系统,很多企业面临以下问题:
- 各类模型代码相互独立,维护困难。
- 难以做到快速迭代,比如,基于wide&deep模型构建的新模型开发周期太长。
- 缺乏业界权威和最新的算法实现。
针对上述问题,阿里巴巴发表业界首个系统性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模型。