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 j j个输入特征 X j I ∈ R n j X_j^I\in \mathbb{R}^{n_j} XjIRnj,其中, n j n_j nj表示的是特征 X j X_j Xj的维度,此时,Embedding层的输出为:

X j O = m a x ( 0 , W j X j I + b j ) X_j^O=max\left ( \mathbf{0},\mathbf{W}_jX_j^I+\mathbf{b}_j \right ) XjO=max(0,WjXjI+bj)

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

X O = [ X 0 O , X 1 O , … , X K O ] X^O=\left [ X_0^O,X_1^O,\dots ,X_K^O \right ] XO=[X0O,X1O,,XKO]

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

在这里插入图片描述

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

X O = F ( X I , { W 0 , W 1 } , { b 0 , b 1 } ) + X I 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 XO=F(XI,{W0,W1},{b0,b1})+XI

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

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

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

l o g l o s s = − 1 N ∑ i = 1 N ( y i l o g ( p i ) + ( 1 − y i ) l o g ( 1 − p i ) ) 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 ) logloss=N1i=1N(yilog(pi)+(1yi)log(1pi))

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

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值