# Deep&Cross相比Wide&Deep作了哪些改进?Deep&Cross模型的Cross网络是怎么操作的?
Deep&Cross的主要思路是使用 Cross网络替代原来的Wide部分,从而增加特征之间的交互力度。模型结构如下,
DCN模型以一个嵌入和堆叠层(embedding and stacking layer)开始,接着并列连一个cross network和一个deep network,接着通过一个combination layer将两个network的输出进行组合。
位于模型结构图左侧的Cross网络使用多层交叉层对输入向量进行特征交叉。假设第
# 请说明一下Deep&Cross Network中的交叉网络部分的结构。
交叉网络的核心思想是以有效的方式应用显式特征交叉。交叉网络由交叉层组成,每个层具有以下公式:
其中:
是列向量(column vectors),分别表示来自第 层和第( )层cross layers的输出; 是第 层layer的weight和bias参数。
在完成一个特征交叉f后,每个cross layer会将它的输入加回去,对应的mapping function
Cross Layer 设计的巧妙之处全部体现在上面的计算公式中:
每层的神经元个数都相同,都等于输入
的维度 d,也即每层的输入输出维度都是相等的;受残差网络(Residual Network)结构启发,每层的函数拟合的
是 的残差,残差网络有很多优点,其中一点是处理梯度消失的问题,使网络可以“更深”。
我们看一个具体的例子:
假设 Cross 有 2 层,令X_{ 0 }=\begin{bmatrix} x_{ 0,1 } & \\ x_{ 0,2 }\end{bmatrix},那么为便于讨论令各层
当cross layer叠加
复杂度分析:假设
一个cross network的时间和空间复杂度对于输入维度是线性关系。因而,比起它的deep部分,一个cross network引入的复杂度微不足道,DCN的整体复杂度与传统的DNN在同一水平线上。
# DCN主要有哪些优点?
- 提出一种新型的交叉网络结构,可以用来提取交叉组合特征,并不需要人为设计的特征工程;
- 这种网络结构足够简单同时也很有效,可以获得随网络层数增加而增加的多项式阶(polynomial degree)交叉特征;
- 十分节约内存(依赖于正确地实现),并且易于使用;
- 实验结果表明,DCN相比于其他模型有更出色的效果,与DNN模型相比,较少的参数却取得了较好的效果。