论文地址:Deep & Cross Network for Ad Click Predictions
一、背景
特征组合在提升模型的表达力上是很有效的,但是往往需要复杂的特征工程以及详尽的搜索。并且模型对于没有见过的特征组合的泛化能力也十分重要。
- 本文提出了由多层cross layers组成的cross network,每一层都会产生更高阶的特征组合,特征组合的最高阶由网络的深度决定,
- 将cross network和DNN联合训练(DNN能够学习非常复杂的特征交叉,但是会极大地增加参数的数量,并且无法确定特征组合的阶数)
- 实验结果表明联合训练可以在模型准确性以及存储效率上都有优越的表现
贡献:
- 自动特征交叉,清晰描述特征交叉的阶数
- 引入的复杂度微不足道
残差神经网络是什么?
二、结构
DCN模型的结构如下图所示:
2.1 Embedding & Stacking layer
- 低维稠密的连续特征(dense feature)不需要经过embedding,经过normalize后直接进入stacking层
- 对于稀疏的离散特征(sparse feature)进行embedding:
- 假设第
i
i
i 个特征为离散特征:
x
i
∈
R
n
v
x_i\in R^{n_v}
xi∈Rnv,进过Embedding层得到
n
e
n_e
ne维的Embedding向量:
x e m b , i = W e m b , i x i x_{emb,i}=W_{emb,i}x_i xemb,i=Wemb,ixi
其中 W e m b , i ∈ R n e × n v W_{emb,i} \in R^{n_e\times n_v} Wemb,i∈Rne×nv
- 假设第
i
i
i 个特征为离散特征:
x
i
∈
R
n
v
x_i\in R^{n_v}
xi∈Rnv,进过Embedding层得到
n
e
n_e
ne维的Embedding向量:
- 将上述得到的
E
m
b
e
d
d
i
n
g
Embedding
Embedding 向量和连续型特征
s
t
a
c
k
stack
stack 起来得到网络的输入
x
0
x_0
x0:
x 0 = [ x e m b , 1 T , x e m b , 2 T , ⋯ , x e m b , k T , x d e n s e T ] x_0=[x_{emb,1}^T, x_{emb,2}^T,\cdots,x_{emb,k}^T,x_{dense}^T] x0=[xemb,1T,xemb,2T,⋯,xemb,kT,xdenseT]
2.2 Cross Network
C
r
o
s
s
Cross
Cross
n
e
t
w
o
r
k
network
network 采用了多层残差网络 (
M
u
l
t
i
Multi
Multi-
l
a
y
e
r
layer
layer
R
e
s
i
d
u
a
l
Residual
Residual
N
e
t
w
o
r
k
Network
Network )。
具体地,由
c
r
o
s
s
cross
cross
l
a
y
e
r
layer
layer 组成,第
l
+
1
l+1
l+1 层的输出
x
l
+
1
x_{l+1}
xl+1 如下:
x
l
+
1
=
x
0
x
l
T
w
l
+
b
l
+
x
l
=
f
(
x
l
,
w
l
,
b
l
)
+
x
l
x_{l+1}=x_0x_l^Tw_l + b_l +x_l = f(x_l,w_l,b_l) +x_l
xl+1=x0xlTwl+bl+xl=f(xl,wl,bl)+xl
- x l + 1 x_{l+1} xl+1 , x l ∈ R d x_l \in R^d xl∈Rd 分别为第 l l l 和第 l + 1 l+1 l+1 个 c r o s s cross cross l a y e r s layers layers 输出的列向量
- w l , b l ∈ R d w_l, b_l \in R^d wl,bl∈Rd 为第 l l l 层的参数
- 在 x l x_l xl 进过特征交叉 f f f 后,每个 c r o s s cross cross l a y e r layer layer 又把输入 x l x_l xl 加了回来
- f : R d → R d f: R^d \rightarrow R^d f:Rd→Rd 拟合残差 x l + 1 − x l x_{l+1} - x_l xl+1−xl
下图是上式的可视化描述:
- Cross Network特殊的网络结构使得cross feature的阶数随着layer depth的增加而增加
- 对于输入 x 0 x_0 x0 ,一个 l l l 层的 c r o s s cross cross n e t w o r k network network 特征交叉的最高阶数为 l + 1 l+1 l+1
- 实际上,cross network 由 x 1 α 1 x 2 α 2 ⋯ x d α d x_1^{\alpha_1}x_2^{\alpha_2}\cdots x_d^{\alpha_d} x1α1x2α2⋯xdαd所有特征交叉项组成 ( α i = 1 , 2 , ⋯ , l + 1 \alpha_i=1,2,\cdots, l+1 αi=1,2,⋯,l+1)
复杂度分析
- 假设有
L
c
L_c
Lc 层 cross layer, 输入的维度为
d
d
d,cross network 的参数个数为:
2
×
L
c
×
d
2\times L_c \times d
2×Lc×d
- 一个 cross network 的时间和空间复杂度是输入维度 d d d 的线性函数,由此引入的复杂度微不足道,因此DCN和DNN的复杂度是一个级别的
- 但是较少的参数也限制了模型的表达能力,为了学习高度非线性的特征组合,DCN并行引入了deep network:
2.3 Combination Layer
Combination layer 将 cross network 和 deep nerwork 的输出连接起来,然后经过一个标准的
l
o
g
i
t
s
logits
logits 层(fully-connected + sigmoid):
p
=
σ
(
[
x
L
1
,
x
L
2
]
w
l
o
g
i
t
s
)
p=\sigma([x_{L_1},x_{L_2}]w_{logits})
p=σ([xL1,xL2]wlogits)
- x L 1 ∈ R d , x L 2 ∈ R m x_{L_1}\in R^d,x_{L_2} \in R^m xL1∈Rd,xL2∈Rm 分别为 cross network 和 deep nerwork 的输出
- w l o g i t s ∈ R d + m w_{logits} \in R^{d+m} wlogits∈Rd+m
- σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+e−x1
2.4 loss function
DCN 的损失函数如下:
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
)
)
+
λ
2
∑
l
∣
∣
w
l
∣
∣
2
loss = -\frac{1}{N}\sum_{i=1}^{N}(y_ilog(p_i)+(1-y_i)log(1-p_i)) + \frac{\lambda}{2}\sum_{l}||\bm{w}_l||^2
loss=−N1i=1∑N(yilog(pi)+(1−yi)log(1−pi))+2λl∑∣∣wl∣∣2
三、分析
FM的泛化
-
C r o s s Cross Cross n e t w o r k network network也使用了在 F M FM FM m o d e l model model中的参数共享( p a r a m e t e r parameter parameter s h a r i n g sharing sharing)的思想:
- 对于某个特征,两个模型都会学习独立于其他特征的权重,而组合特征的权重则是该组合特征涉及的单个特征的权重的某种组合
- 在FM中,特征 x i x_i xi 的权重向量为 v i v_i vi,而特征组合项 x i x j x_ix_j xixj 的权重为 < v i , v j > <v_i,v_j> <vi,vj>
- 对于一个有着 l l l 层 c r o s s cross cross n e t w o r k network network的 D C N DCN DCN中,特征 x i x_i xi 与标量 { w k ( i ) } k = 0 l \{w_{k}^{(i)}\}_{k=0}^l {wk(i)}k=0l 关联,而 x i x j x_ix_j xixj的权重则是与 x j x_j xj 关联的集合 { w k ( i ) } k = 0 l \{w_{k}^{(i)}\}_{k=0}^l {wk(i)}k=0l 中的参数和与 x j x_j xj 关联的集合 { w k ( j ) } k = 0 l \{w_{k}^{(j)}\}_{k=0}^l {wk(j)}k=0l 里参数的乘积
-
参数共享不仅使得模型更加有效,同时也增强了模型的泛化能力,使得模型能够学习到没有在训练集中见过的组合特征的权重
-
FM是一个浅层的结构,只能局限于表达2阶的组合特征;DCN则能够建立 x 1 α 1 x 2 α 2 ⋯ x d α d x_1^{\alpha_1}x_2^{\alpha_2}\cdots x_d^{\alpha_d} x1α1x2α2⋯xdαd各种阶数的组合项, α = [ α 1 , α 2 , ⋯ , α d ] \bm{\alpha}=[\alpha_1,\alpha_2,\cdots,\alpha_d] α=[α1,α2,⋯,αd]为特征组合中各个特征的阶数,而该特征组合的最高总阶数由 c r o s s cross cross n e t w o r k network network的深度 l l l 界定,即 0 ≤ ∣ α ∣ = ∑ i = 1 d α i ≤ l + 1 0\leq|\bm{\alpha}|=\sum_{i=1}^d\alpha_i\leq l+1 0≤∣α∣=∑i=1dαi≤l+1
-
此外,与 h i g h high high- o r d e r order order F M s FMs FMs 不同, D C N DCN DCN 的参数数量是输入维度 d d d 的线性函数,其复杂度和传统的 D N N DNN DNN 是一个量级的
Efficient Projection
DCN可以仅使用 d d d维向量进行高效的存储:
- 设
x
~
∈
R
d
\tilde{x}\in R^d
x~∈Rd 为一个
c
r
o
s
s
cross
cross
l
a
y
e
r
layer
layer的输入:
x ρ = x 0 x ~ T w = [ x 1 x 2 ⋮ x d ] [ x ~ 1 x ~ 2 ⋯ x ~ d ] [ w 1 w 2 ⋮ w d ] = [ x 1 x 2 ⋮ x d ] ( w 1 x ~ 1 + w 2 x ~ 2 + ⋯ w d x ^ d ) = [ w 1 x 1 x ~ 1 + w 2 x 1 x ~ 2 + ⋯ w d x 1 x ~ d w 1 x 2 x ~ 1 + w 2 x 2 x ~ 2 + ⋯ w d x 2 x ~ d ⋮ w 1 x d x ~ 1 + w 2 x d x ~ 2 + ⋯ w d x d x ~ d ] \begin{aligned} x_{\rho} &=x_0\tilde{x}^Tw \\ &=\left[ \begin{array}{ccc} x_1\\ x_2\\ \vdots \\ x_d \end{array} \right ] \left[ \begin{array}{ccc} \tilde{x}_1&\tilde{x}_2 &\cdots & \tilde{x}_d \end{array} \right ] \left[ \begin{array}{ccc} w_1\\ w_2\\ \vdots \\ w_d \end{array} \right ] \\ &=\left[ \begin{array}{ccc} x_1\\ x_2\\ \vdots \\ x_d \end{array} \right ](w_1\tilde{x}_1+w_2\tilde{x}_2+\cdots w_d\hat{x}_d) \\ &=\left[ \begin{array}{ccc} w_1x_1\tilde{x}_1+w_2x_1\tilde{x}_2+\cdots w_dx_1\tilde{x}_d\\ w_1x_2\tilde{x}_1+w_2x_2\tilde{x}_2+\cdots w_dx_2\tilde{x}_d\\ \vdots \\ w_1x_d\tilde{x}_1+w_2x_d\tilde{x}_2+\cdots w_dx_d\tilde{x}_d\\ \end{array} \right ] \\ \end{aligned} xρ=x0x~Tw=⎣⎢⎢⎢⎡x1x2⋮xd⎦⎥⎥⎥⎤[x~1x~2⋯x~d]⎣⎢⎢⎢⎡w1w2⋮wd⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡x1x2⋮xd⎦⎥⎥⎥⎤(w1x~1+w2x~2+⋯wdx^d)=⎣⎢⎢⎢⎡w1x1x~1+w2x1x~2+⋯wdx1x~dw1x2x~1+w2x2x~2+⋯wdx2x~d⋮w1xdx~1+w2xdx~2+⋯wdxdx~d⎦⎥⎥⎥⎤
上式等同于:
这样可以仅使用 d d d维向量进行高效的存储。
四、实验结果
数据
Criteo Display Ads数据集
- 目标:点击率预估
- 13个整数特征,26个类别型特征(维度都很高)
- 6天的数据训练,第7天的数据划分validation和test set
实施细节
-
Data preprocessing and embedding:
- 实值特征 → \rightarrow → l o g log log t r a n s f o r m transform transform
- 类别型特征 → \rightarrow → e m b e d d i n g embedding embedding ( s i z e = 6 × ( c a t e g o r y (size= 6×(category (size=6×(category c a r d i n a l i t y ) 1 / 4 ) cardinality)^{1/4}) cardinality)1/4)
- 把所有embedding连接起来后的向量维度为1026
-
Optiimzation
- mini-batch stochastic optimization with A d a m Adam Adam optimizer
- batch_size=512
- gradient clip normwas set at 100
-
Regularization
- early stopping
- 发现 L 2 L_2 L2和 d r o p o u t dropout dropout没啥效果
-
Hyperparameters
- 隐层的数量(2-5)
- 隐层的维度(32-1024)
- learning rate初值(0.0001-0.001,step:0.0001)
- cross layers的数量(1-6)
用于比较的模型
模型名称 | 描述 | 结构 |
---|---|---|
D N N DNN DNN | 即没有cross layers的 D C N DCN DCN | 2层deep layer(1024),6层cross layers |
L R LR LR | 对整数特征在log尺度上进行离散化,单特征加上选择出来的特征组合 | 42个交叉特征 |
W i d e Wide Wide& D e e p Deep Deep | wide部分为sparse features | 5层deep layer |
D e e p Deep Deep C r o s s i n g Crossing Crossing | 5个residual units |
结论
- Deep & Cross 能够较好地处理sparse和dense features
- 对于特征组合有清洗的表达
- 每增加一个cross layer,特征组合的阶数+1
- 在模型准确性以及memory usage上都有优越的表现