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网络的计算过程
其中,K 表示的是输入特征的个数。经过Stacking层后便是Multiple Residual Unit层,其结构图如下所示:
Residual Unit层最初是在ResNet[2]中提出的用于构建深层CNN的方法,也称为残差网络,在Deep Crossing对其做了修改,用MLP代替了原来的卷积核。对于上图中的结构可以表示为:
- 通过残差网络可以构建深层网络。在传统的MLP,当网络加深之后,往往存在过拟合现象。而通过残差网络构建深层网络,可以减少过拟合现象的发生。
- 残差网络使用了ReLU激活函数取代Sigmoid激活函数可以有效防止梯度弥散,使得网络更容易收敛。
总的来说,就是通过Residual Unit可以构建更深的网络,同时网络的训练也会更容易收敛。经过Residual Unit层后便是Scoring层,Scoring层作为输出层,就是为了拟合最终的优化目标。最终的损失函数为:
其中,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.