Deep Crossing

1. 概述

Deep Crossing[1]是微软在2016年提出的用于计算CTR问题的深度神经网络模型,Deep Crossing的网络结构对传统的FNN(Feedforward Neural Network)网络结构做了一些优化,使得其能够更适合处理CTR问题。文章距离现在已经比较久远,但是其思想在深度网络的发展过程中有着重要的指导意义。由LR模型中的特征工程,以及FM的成功经验来看,组合特征对于CTR问题有着重要作用,Deep Crossing网络围绕着特征组合,可通过网络自动进行特征组合,而无需大量的特征工程的工作。在Deep Crossing网络模型中,主要的优化点为:在Deep Crossing网络中增加Multiple Residual Units层,便于构建更深的网络。

2. 算法原理

2.1. Deep Crossing的网络结构

Deep Crossing的网络结构如下图所示:

在这里插入图片描述

从Deep Crossing的网络结构上看,整个网络由四种类型的层组成,分别为:第一种层为特征Embedding层,第二种层为Stacking层, 第三种层为Residual Unit层,第四种层为Scoring层。其中Embedding层用于将原始的稀疏特征转化为低维稠密特征;Stacking层将多个Embedding层的特征连接起来;Residual Unit层用于构建深层的网络;最后的Scoring层用于完成CTR的计算。

2.2. Deep Crossing网络的计算过程

Embedding层是由单层神经网络构成,假设第$j$个输入特征$X_j^I\in \mathbb{R}^{n_j}$,其中,$n_j$表示的是特征$X_j$的维度,此时,Embedding层的输出为:

$$X_j^O=max\left ( \mathbf{0},\mathbf{W}_jX_j^I+\mathbf{b}_j \right )$$

其中,$\mathbf{W}_j$事一个$m_j\times n_j$的矩阵,$\mathbf{b}_j \in \mathbb{R}^{n_j}$,$X_j^O$为第$j$个特征的Embedding输出。当输入特征通过Embedding层后,进入到Stacking层,其输出为:

$$X^O=\left [ X_0^O,X_1^O,\dots ,X_K^O \right ]$$

其中,$K$表示的是输入特征的个数。经过Stacking层后便是Multiple Residual Unit层,其结构图如下所示:

在这里插入图片描述

Residual Unit层最初是在ResNet[2]中提出的用于构建深层CNN的方法,也称为残差网络,在Deep Crossing对其做了修改,用MLP代替了原来的卷积核。对于上图中的结构可以表示为:

$$X^O=\mathcal{F}\left ( X^I,\left \{ \mathbf{W}_0,\mathbf{W}_1 \right \},\left \{ \mathbf{b}_0,\mathbf{b}_1 \right \} \right )+X^I$$

其中,$\mathbf{W}_{0,1}$和$\mathbf{b}_{0,1}$是两层MLP的参数,$\mathcal{F}$表示的是一个映射函数,用于计算Residual Unit层的输出$X^O$和输入$X^I$之间的残差$X^O-X^I$。在ResNet中,残差网络的优点主要有:

  1. 通过残差网络可以构建深层网络。在传统的MLP,当网络加深之后,往往存在过拟合现象。而通过残差网络构建深层网络,可以减少过拟合现象的发生。
  2. 残差网络使用了ReLU激活函数取代Sigmoid激活函数可以有效防止梯度弥散,使得网络更容易收敛。

总的来说,就是通过Residual Unit可以构建更深的网络,同时网络的训练也会更容易收敛。经过Residual Unit层后便是Scoring层,Scoring层作为输出层,就是为了拟合最终的优化目标。最终的损失函数为:

$$logloss=-\frac{1}{N}\sum_{i=1}^{N}\left ( y_ilog\left ( p_i \right )+\left ( 1-y_i \right )log\left ( 1-p_i \right ) \right )$$

其中,$i$表示第$i$个样本,$N$表示训练样本的个数,$p_i$表示的是网络的预测值。

3. 总结

Deep Crossing网络的两个特点是Deep和Crossing,首先,对于Deep,得益于残差网络的优点,Deep Crossing网络通过Multiple Residual Unit层构建足够深的深层网络;其次,对于Crossing,通过多层网络,可以自动学习到特征之间的交叉关系,而无需人工的参与。

参考文献

[1] Shan Y, Hoens T R, Jiao J, et al. Deep crossing: Web-scale modeling without manually crafted combinatorial features[C]//Proceedings of the 22nd ACM SIGKDD international conference on knowledge discovery and data mining. 2016: 255-262.

[2] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.