返回
CTR代码实现6-深度ctr模型 后浪 xDeepFM/FiBiNET
人工智能
2024-01-14 08:34:47
在 CTR 预估领域,特征工程是重中之重,而特征交互是特征工程的核心。经过前几章的介绍,我们对稀疏特征的处理、稠密特征的处理、交叉特征的处理等有了全面的了解。
今天,我们将进入 CTR 预估模型的学习,重点介绍深度 CTR 模型。深度 CTR 模型是指使用深度神经网络来学习特征交互的模型。相较于传统机器学习模型,深度 CTR 模型具有更强的特征学习能力,能够捕捉到更加复杂的特征交互关系。
本章,我们将介绍两种经典的深度 CTR 模型:xDeepFM 和 FiBiNET。
xDeepFM
xDeepFM 是由阿里巴巴在 2018 年提出的一个深度 CTR 模型。xDeepFM 在 DeepFM 的基础上进行了改进,使用改良的 DCN 来替代 DeepFM 的 FM 部分,从而增强了模型学习组合特征信息的能力。
模型结构
xDeepFM 的模型结构如下图所示:
[图片]
xDeepFM 主要由以下几个部分组成:
- Embedding Layer: 将稀疏特征转换为稠密向量。
- DNN Layer: 学习特征之间的低阶交互。
- CIN Layer: 学习特征之间的交叉交互。
- LR Layer: 对原始特征进行线性组合。
- Pooling Layer: 将 DNN Layer 和 CIN Layer 的输出进行池化。
- Output Layer: 对池化后的输出进行 sigmoid 激活,得到最终的预测结果。
优点
- 结合了 DNN 和 FM 的优点,能够同时学习低阶和高阶特征交互。
- 引入了 CIN 层,能够有效地捕捉到特征之间的交叉交互。
- 模型结构简单,易于训练和部署。
缺点
- CIN 层的计算复杂度较高,当特征数量较多时,训练时间可能会比较长。
FiBiNET
FiBiNET 是由腾讯在 2019 年提出的一个深度 CTR 模型。FiBiNET 在 NFM 和 AFM 的基础上进行了改进,应用 SENET 加入特征权重比,从而增强了模型对重要特征的关注能力。
模型结构
FiBiNET 的模型结构如下图所示:
[图片]
FiBiNET 主要由以下几个部分组成:
- Embedding Layer: 将稀疏特征转换为稠密向量。
- NFM Layer: 学习特征之间的双线性交互。
- AFM Layer: 学习特征之间的注意力权重。
- SENET Layer: 对 AFM Layer 的输出进行特征权重比的计算。
- Output Layer: 对 SENET Layer 的输出进行 sigmoid 激活,得到最终的预测结果。
优点
- 结合了 NFM 和 AFM 的优点,能够同时学习双线性交互和注意力权重。
- 引入了 SENET 层,能够有效地关注重要特征。
- 模型结构简单,易于训练和部署。
缺点
- SENET 层的计算复杂度较高,当特征数量较多时,训练时间可能会比较长。
总结
xDeepFM 和 FiBiNET 是两种经典的深度 CTR 模型,它们在 CTR 预估领域取得了广泛的应用。xDeepFM 结合了 DNN 和 FM 的优点,能够同时学习低阶和高阶特征交互。FiBiNET 结合了 NFM 和 AFM 的优点,能够同时学习双线性交互和注意力权重。这两种模型都具有较好的效果,可以根据实际业务场景进行选择使用。