Deep Crossing

8/2/2021 Deep Crossing

# 请简述Deep Crossing的网络结构。

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

其主要包括四层:

1)Embedding层:将经过one-hot之后的稀疏的类别型特征向量转换成低维稠密的Embedding向量;而数值型特征无需经过Embedding层,直接进入下一层。

2)Stacking层:将不同的Embedding特征和数值型特征拼接在一起,形成新的包含全部特征的特征向量。

3)Multiple Residual Units层:多层残差网络对各个维度进行充分的交叉组合,使得模型可以抓取到更多的非线性特征和组合特征的信息,提高模型的表达能力。

4)Scoring层:对于CTR预估二分类,scoring层往往使用的是逻辑回归模型,而对于多分类问题,往往使用softmax模型。

# 请介绍一下Deep Crossing模型中Embedding层。

Embedding层的主要作用是对输入特征进行特征转换,Embedding层包含了一个单层神经网络,网络定义如下:

其中代表输入特征的索引,代表输入特征,是一个的矩阵,是输出的Embedding特征。当时,Embedding层的作用就是对输入特征进行降维。操作在神经网络中代表的就是ReLU激活函数。故Embedding层的主要作用是,首先对输入特征进行一个线性变化,其次通过ReLU激活函数得到最后的Embedding特征。

值得注意的是,Embedding层的大小会对整个模型的整体大小产生很重要的影响。即便输入是稀疏特征,大小为的权重矩阵也是稠密的。

# Deep Crossing中的残差单元有什么作用?

残差单元的结构如下,其输入一方面经过两层以ReLU为激活函数的全连接层,生成输出向量,另一方面可以通过一个短路(shortcut)通路直接与输出向量进行元素加,生成最终的输出向量。所以残差单元中两层的ReLU拟合的其实是输出和输入之间的"残差"。

残差单元主要为了解决两个问题:

1)随着网络加深,神经网络往往存在过拟合现象,而在残差单元中,由于有输入向量短路的存在,可以越过两层ReLU网络,减少过拟合现象的发生。

2)当神经网络层数过多,往往会产生严重的梯度消失现象。残差单元中的ReLU激活函数可以有效缓解梯度消失,而且输入向量短路相当于直接把梯度毫无变化地传递到下一层,也使得残差网络的收敛速度更快。