Deep & Cross 学习笔记

引言

Deep & Cross模型来自于2017年的KDD论文:《Deep & Cross Network for Ad Click Predictions》。该模型可以看作是Wide & Deep模型的延续,着眼于解决特征交叉问题。

研究动机

传统的特征交叉都需要学者进行人工定义,过程较为繁琐。深度神经网络(DNNs)虽然可以自动完成特征交叉过程,节省了人工操作。但是,DNNs的特征交叉操作是自动且隐式(implicit)的:无法显式地判断哪些特征组合是有利的,并且对所有特征组合都进行计算,网络参数呈现爆炸趋势。

Deep & Cross的主要创新点就是提出了Cross Network,综合了人工定义和深度神经网络的优点,使用网络层权重进行有限的特征组合,既削减了网络参数,又达到人为控制交叉力度的目的。
在这里插入图片描述
上图是Deep & Cross的网络结构图。可以看出,原始的输入向量先通过一个Embedding层得到 x 0 x_0 x0
x 0 = [ x e m b e d d , 1 T , . . . . , x e m b e d d , k T , x d e n s e T ] x_0 = [x_{embedd,1}^{T},....,x_{embedd,k}^{T},x_{dense}^{T}] x0=[xembedd,1T,....,xembedd,kT,xdenseT]
然后分别通过 Deep Network和Cross Network。Deep Network的表达式是:
h l + 1 = R e L U ( W h , l x l + b h , l ) h_{l+1} = ReLU(W_{h,l}x_l+b_{h,l}) hl+1=ReLU(Wh,lxl+bh,l)
最后将两个部分的输出拼接在一起,使用交叉熵函数进行优化:
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_ilog(p_i)+(1-y_i)log(1-p_i)+λ\sum_{l}||w_l||^2 loss=N1i=1Nyilog(pi)+(1yi)log(1pi)+λlwl2
因为Deep Netowrk和Wide & Deep中一模一样,这里不再赘述。本文后续将重点介绍 Cross Network。

Cross 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_0x_{l}^{T}w_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 0 x_0 x0是原始输入向量, w l , b l w_l,b_l wl,bl是网络层权重。论文中也给出了上述式子的可视化:
在这里插入图片描述
上述式子中,Cross Network对输入向量 x 0 x_0 x0进行重复利用,既规避了DNNs参数过多的缺点,又保证了输入输出向量的变化不会过于剧烈。

同时,Cross Network也加入了残差链接,每层网络 f f f拟合的是残差 x l + 1 − x l x_{l+1}-x_l xl+1xl,可以缓解梯度消失问题。

那么,Cross Network是如何做到人为控制特征交叉的程度呢?论文中给出了解释:特征交叉的多项式次数 d d d由Cross Network的层数 L L L决定,并且有以下关系式: d = L + 1 d=L+1 d=L+1。下面参考《揭秘 Deep & Cross : 如何自动构造高阶交叉特征》中的例子进行解释,假设各层的偏置 b i b_i bi为零,可以得到:
在这里插入图片描述
从上述 x 1 、 x 2 x_1、x_2 x1x2的表达式可以看出, x 1 x_1 x1囊括了所有多项式次数 d = 1 , 2 d=1,2 d=1,2的组合, x 2 x_2 x2则囊括了所有多项式次数 d = 1 , 2 , 3 d=1,2,3 d=1,2,3的组合,也就是前面提到的 d = L + 1 d=L+1 d=L+1

总结一下Cross Network的三个优点:

  • 有限高阶。通过网络层数控制特征交叉的力度。
  • 参数共享。例如,上图 x 1 x_1 x1中的 w 0 , 1 x 0 , 1 2 和 w 0 , 1 x 0 , 2 x 0 , 1 w_{0,1}x_{0,1}^2和w_{0,1}x_{0,2}x_{0,1} w0,1x0,12w0,1x0,2x0,1共享了 w 0 , 1 w_{0,1} w0,1参数,这样设计的好处是参数的更新不会受限于某一对特征组合,缓解了数据稀疏的问题。
  • 自动进行特征交叉。每增加一层网络层,都囊括了该次数下的所有特征组合。

同时,论文中还对比了Deep部分和Cross部分的参数复杂度,发现Cross参数复杂度小了一个量级,在实际工业应用中颇具吸引力。

结论

Deep & Cross着眼于特征交叉,设计了独特的Cross Layer,对特征进行显式、有限度的组合,缓解了数据稀疏问题,提升了模型的推荐效果。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值