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的输入
交叉网络的核心思想是以有效的方式应用显式特征交叉。交叉网络由交叉层组成,每个层具有以下公式:
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)。
交叉网络的少数参数限制了模型容量。为了捕捉高度非线性的相互作用,模型并行地引入了一个深度网络。
深度网络就是一个全连接的前馈神经网络,每个深度层具有如下公式:
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)
链接层将两个并行网络的输出连接起来,经过一层全链接层得到输出:
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预估中的应用