1、原理
Deep&Cross Network模型我们下面将简称DCN模型:
一个DCN模型从嵌入和堆积层开始,接着是一个交叉网络和一个与之平行的深度网络,之后是最后的组合层,它结合了两个网络的输出。完整的网络模型如图:
图1、the Deep & Cross Network
嵌入和堆叠层
我们考虑具有离散和连续特征的输入数据。在网络规模推荐系统中,如CTR预测,输入主要是分类特征,如“country=usa”。这些特征通常是编码为独热向量如“[ 0,1,0 ]”;然而,这往往导致过度的高维特征空间大的词汇。为了减少维数,我们采用嵌入过程将这些离散特征转换成实数值的稠密向量(通常称为嵌入向量):
x
e
m
b
e
d
=
x
e
m
b
e
d
,
i
x
i
x_{embed} = x_{embed,i} x_{i}
xembed=xembed,ixi
然后,我们将嵌入向量与连续特征向量叠加起来形成一个向量:
x
0
=
[
x
e
m
b
e
d
,
1
T
,
.
.
.
,
x
e
m
b
e
d
,
k
T
,
x
d
e
n
s
e
T
]
x_{0} = [ x_{embed,1}^T, ...,x_{embed,k}^T,x_{dense}^T]
x0=[xembed,1T,...,xembed,kT,xdenseT]
拼接起来的向量X0将作为我们Cross Network和Deep Network的输入
Cross Network
交叉网络的核心思想是以有效的方式应用显式特征交叉。交叉网络由交叉层组成,每个层具有以下公式:
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_{0} x_{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
一个交叉层的可视化如图所示:
图2、Visualization of a cross layer
可以看到,交叉网络的特殊结构使交叉特征的程度随着层深度的增加而增大。多项式的最高程度(就输入 x 0 x_{0} x0 而言)为l层交叉网络l+1。如果用 l c l_{c} lc 表示交叉层数,d表示输入维度。然后,参数的数量参与跨网络参数为: d ∗ l c ∗ 2 d*l_{c}*2 d∗lc∗2 (w和b)。
交叉网络的少数参数限制了模型容量。为了捕捉高度非线性的相互作用,模型并行地引入了一个深度网络。
Deep Network
深度网络就是一个全连接的前馈神经网络,每个深度层具有如下公式:
h
l
+
1
=
f
(
w
l
h
l
+
b
l
)
h_{l+1} = f(w_{l} h_{l} + b_{l} )
hl+1=f(wlhl+bl)
Combination Layer
链接层将两个并行网络的输出连接起来,经过一层全链接层得到输出:
p
=
[
x
L
1
T
,
h
L
2
T
]
W
l
o
g
i
t
s
p=[x_{L_{1}^T }, h_{L_{2}^T } ]W_{logits}
p=[xL1T,hL2T]Wlogits
如果采用的是对数损失函数,那么损失函数形式如下:
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
)
+
λ
∑
l
∣
∣
w
l
∣
∣
2
loss=-\frac{1}{N} \sum_{i=1}^N y_i log(p_i) + (1-y_i)log(1-p_i)+ \lambda \sum_{l} ||w_{l}||^2
loss=−N1∑i=1Nyilog(pi)+(1−yi)log(1−pi)+λ∑l∣∣wl∣∣2
总结
DCN能够有效地捕获有限度的有效特征的相互作用,学会高度非线性的相互作用,不需要人工特征工程或遍历搜索,并具有较低的计算成本。
论文的主要贡献包括:
1)提出了一种新的交叉网络,在每个层上明确地应用特征交叉,有效地学习有界度的预测交叉特征,并且不需要手工特征工程或穷举搜索。
2)跨网络简单而有效。通过设计,各层的多项式级数最高,并由层深度决定。网络由所有的交叉项组成,它们的系数各不相同。
3)跨网络内存高效,易于实现。
4)实验结果表明,交叉网络(DCN)在LogLoss上与DNN相比少了近一个量级的参数量。
参考文献:
论文:Deep & Cross Network for Ad Click Predictions
推荐系统遇上深度学习(五)–Deep&Cross Network模型理论和实践
推荐好文: 深度学习在CTR预估中的应用