返回

CTR代码实现6-深度ctr模型 后浪 xDeepFM/FiBiNET

人工智能

在 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 的优点,能够同时学习双线性交互和注意力权重。这两种模型都具有较好的效果,可以根据实际业务场景进行选择使用。