推荐系统与深度学习(13): [华为 CIKM'21] EDCN:基于信息共享的并行深度CTR模型

以下仅仅为个人对文章的阅读记录,如有错误,欢迎指正。如需转载注明来源即可~~ (哈哈哈哈哈,点个赞再走)

Chen B, Wang Y, Liu Z, et al. Enhancing Explicit and Implicit Feature Interactions via Information Sharing for Parallel Deep CTR Models[C]//Proceedings of the 30th ACM International Conference on Information & Knowledge Management. 2021: 3757-3766.
原文链接:https://dlp-kdd.github.io/assets/pdf/DLP-KDD_2021_paper_12.pdf

一、简介与主要贡献

目前大多数CTR模型都包含Embedding Layer和Feature Interaction Layer。具体还可以分为Stracked Structure:FNN、PNN、FM、AFM、NFM等,和Parallel Structure:DCN、DCN-V2、DeepFM、xDeepFM等。本文主要基于Parallel Structure 的模型进行改进。


CTR模型的两种主要结构

以DCN为主的并行结构模型存在以下两个主要问题:

  • Insufficient sharing in hidden layers。DCN使用的Cross Network和Deep Network两条并行路线之间缺少交互,学到的重要特征在最后一层才进行交互,作者称为 late fusion。这种方式导致中间的隐藏层之间缺少信息交互,使得交互信号之间的作用减弱,容易导致反向传播过程中出现梯度倾斜问题(skewed gradient problem)。
  • Excessive sharing in hidden layers。 DCN使用的Cross Network和Deep Network共同使用了一组Embedding,这就意味着所有的输入特征不加区分地输入到了两个并行网络中。但是在AutoFeature中提到,不同的特征适合与不同的特征交互。

因此本文提出了 Enhanced Deep & Cross Network (EDCN) 来改进DCN模型。其中主要包括两个结构:

  • Bridge module。 主要解决第一个问题,增加并行结构之间的交互。
  • Regulation module。主要解决第二个问题,为不同的并行网络生成有区别的Embedding,而且在每次交互之后再次使用以生成不同的embedding。

二、相关工作

首先对CTR任务进行了总结,提出了Stracked Structure和Parallel Structure。并重点关注后者,给出了三个并行结构的模型图。


三种深度并行CTR模型的结构:DeepFM,DCN,xDeepFM

其次,介绍了 Discriminative Input:即生成不同的Embedding输入。主要提到了FiBiNET中的SENET使用attention学习特征的权重。GateNet 学习bit-wise和vector-wise的特征。MMOE使用mixture-of-expert方法融合不同的信息。最后提到了多任务学习。

三、EDCN结构

3.1 Deep & Cross Network (DCN)

DCN模型结构

计算公式:

可以看到Cross Network(左)和Deep Network (右)之间没有交互,而且共享一组Embedding。

3.2 EDCN

改进主要在一下两个模块:Bridge Module 和 Regulation Module。


EDCN的结构

3.2.1 Bridge Module

大多数并行模型都是采用了Late fusion的模型,即在组以后一层进行连接,然后输入DNN 层 (下图左)。这种方式一方面弱化了显式(explicit)和隐式(implicit)特征交互之间的交互信号,另一方面导致梯度倾斜问题。因此作者提出了dense fusion 策略,即在每一层都进行信息的融合(下图右)。通过这种方式捕捉并行网络之间layer-wise 的交互信号。而且dense fusion的策略可以分享层与层之间的过渡信息,得益于多层级的交互信号,可以解决梯度问题。

两种信息混合策略

所以主要的实现方式要通过一个函数将两部分信息组合,然后输出一组新的特征: , 。所以可以采用的方式挺多的。作者提出了四种方式:

  • Pointwise Addition:
  • Hadamard Product(Pointwise product):
  • Concatenation+FC:
  • Attention Pooling:,其中 计算方式如下:。按照同样的方式计算。
    【以上的具体细节看原文】
    Bridge Module 主要构建了一座桥梁将两部分信息联系起来。

3.2.2 Regulation Module

Cross Network 和 Deep Network两部分提取不同的信息,所以他们的Embedding输入应该是不同的,这样才能更加有效的学习。所以作者提出了 soft-select discriminative feature,基于初始的Embedding matrix 学习不同的权重。通过Regulation Module模块实现。
首先初始化一个门单元(Gate Unit) , (B= {cross, deep} in DCN) 。根据作者给出的设置,所有的权重最开始是1。这些权重参数都是可学习的参数,通过反向传播更新。而且更新之后需要通过Softmax函数获得最终的重要性。
其中是温度系数,一个超参数。 最后的特征:
\mathrm{E}^{b}=\widehat{\mathrm{G}}^{b} \odot \mathrm{E}=\left[\widehat{\mathrm{g}}_{1}^{b} \mathbf{e}_{1}, \widehat{\mathrm{g}}_{2}^{b} \mathbf{e}_{2}, \cdots, \widehat{\mathrm{g}}_{f}^{b} \mathbf{e}_{f}\right]从EDCN的完整模型图中可以看到,这个Regulation Module 被多次使用了,最开始Embedding layer之后每个并行路径中都有一个;然后每次使用了Bridge Module之后都要使用两个 Regulation Module 。

四、实验分析

4.1 数据集:

  • Auazu(8:1:1)
  • Criteo(1-7天 train,第8天 validataion,第9天 test)
  • Industrial(1-7天 train,第8天 validataion,第9天 test)
数据集

4.2 整体表现

整体表现

和其他模型比较,提升比较显著。
不过作为2021年的文章,一些新的CTR文章没有拿出来对比,AutoFIS,AutoFeature,TFNet,FGCNN等。作者在相关工作中也提到了这些工作。而且Avazu数据集上Baseline的效果真的不算很好。同样是8:1:1的情况下,FM都能跑出0.78。其他两个数据集因为数据划分无法和其他论文进行横向对比。

4.3 兼容性分析

Bridge Module的兼容性


这里主要选择了三个基础模型DCN、DCN-V2、xDeepFM,在使用了Bridge Module 之后效果都得到了提升。而且文中还提到在训练过程中梯度的更新更加均衡,主要得益于反向传播过程中多路径的梯度信息传递,可以缓解梯度偏斜问题。
Bridge Module因为要选择并行的模型,而且需要两个路径中都是向量,所以可选择的比较少。DeepFM、WDL等都不行。

Regulation Module的兼容性


这里选择了六个基础模型:DeepFM、xDeepFM、AutoInt、DCN、DCN-V2、 。得益于Regulation module的特性,可以应用于更多的模型之中。效果看图吧。

Regulation Module 分析

4.4 消融分析

Bridge Module 消融分析


分析不同的连接方式。Hadamard product 确实效果很好。

Regulation Module 消融分析


和其他几个不同的特征生成的方式对比:

  • FC: 常用的全连接层。
  • SE: Squeeze-and-Excitation Network (SENET),用于图像处理中,被FiBiNET和FAT-DeepFFM用于CTR中,学习特征的权重。
  • GN: 用于GateNet中学习 Embedding的重要性。
    本文提出的Regulation module取得了最好的效果。

4.5 复杂度分析

由于数据稀疏,特征比较多,CTR模型的参数主要来源于 Embedding Layer。

4.6 在线 A/B测试

系统结构

在线上部署中,和基础方法比,获得了5%的提升

五、个人小结

首先梯度倾斜问题在DCN、DeepFM等问题中有没有。简单从整体表现的表格中可以看到,非并行模型的结果和并行结构的结果差距不大,而且在训练过程中,训练速度也差不多。
其次Bridge Module使用时会不会反而影响两部分分别完成自己的任务。一般我们觉得并行的结构都各自完成各自的任务例如:generalization和 memorization 能力, 捕捉explicit 和 implicit 的特征交互等等。虽然完整的EDCN在同时使用Bridge和Regulation Modue后实现了最好的效果,然后上面提到的问题也需要进行思考。
Regulation Module在当前的设计下进行了多次使用,例如模型都三层的情况下,需要使用6个Regulation Module 结构。是否有必要? 当然从设计方面来说是有比较的。有没有什么更好的解决方法。

你可能感兴趣的:(推荐系统与深度学习(13): [华为 CIKM'21] EDCN:基于信息共享的并行深度CTR模型)