【推荐系统】Deep & Cross Network

论文地址: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} xiRnv,进过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,iRne×nv
  • 将上述得到的 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 xlRd 分别为第 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,blRd 为第 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:RdRd 拟合残差 x l + 1 − x l x_{l+1} - x_l xl+1xl

下图是上式的可视化描述:
在这里插入图片描述

  • 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α2xdα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 xL1Rd,xL2Rm 分别为 cross network 和 deep nerwork 的输出
  • w l o g i t s ∈ R d + m w_{logits} \in R^{d+m} wlogitsRd+m
  • σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+ex1

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=1N(yilog(pi)+(1yi)log(1pi))+2λlwl2

三、分析

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α2xdα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αil+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=x1x2xd[x~1x~2x~d]w1w2wd=x1x2xd(w1x~1+w2x~2+wdx^d)=w1x1x~1+w2x1x~2+wdx1x~dw1x2x~1+w2x2x~2+wdx2x~dw1xdx~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 DCN2层deep layer(1024),6层cross layers
L R LR LR对整数特征在log尺度上进行离散化,单特征加上选择出来的特征组合42个交叉特征
W i d e Wide Wide& D e e p Deep Deepwide部分为sparse features5层deep layer
D e e p Deep Deep C r o s s i n g Crossing Crossing5个residual units

结论

  • Deep & Cross 能够较好地处理sparse和dense features
  • 对于特征组合有清洗的表达
  • 每增加一个cross layer,特征组合的阶数+1
  • 在模型准确性以及memory usage上都有优越的表现

参考资料

Deep & Cross Network总结

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值