首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Deep&Cross Network(DCN)

Deep&Cross Network(DCN)

作者头像
felixzhao
发布2022-05-12 15:37:50
7440
发布2022-05-12 15:37:50
举报
文章被收录于专栏:null的专栏null的专栏null的专栏

1. 概述

Deep&Cross Network(DCN)[1]是由Google于2017年提出的用于计算CTR问题的方法,是对Wide&Deep[2]模型的进一步改进。线性模型无法学习到特征的交叉属性,需要大量的人工特征工程的介入,深度网络对于交叉特征的学习有着天然的优势,在Wide&Deep模型中,Deep侧已经是一个DNN模型,而Wide侧是一个线性模型LR,无法有效的学习到交叉特征。在DCN中针对Wide&Deep模型的Wide侧提出了Cross网络,通过Cross网络学习到更多的交叉特征,提升整个模型的特征表达能力。

2. 算法原理

2.1. DCN的网络结构

DCN模型的网络结构如下图所示:

在这里插入图片描述
在这里插入图片描述

在DCN网络中,由下到上主要包括五种类型的层,第一种是Embedding层,第二种是Stacking层,用于组合Embedding层的输出;第三种是Cross network的层,用于对Stacking后的特征进行学习;第四种是Deep network的层,作用与Cross network的层一样,此外,Cross network的层和Deep network的层是并行的两个过程;第五种是输出层,经过Cross network的层和Deep network的层后,组合两者的输出做最后的计算。

2.2. DCN网络的计算过程

2.2.1. Embedding和Stacking

对于CTR问题的输入,通常是由一些离散的特征和连续的特征组成,对于离散的特征的处理方法通常是利用one-hot编码对其离散化处理,但是处理后的特征通常是较为稀疏的,举例来说,如类别特征“country=USA”,假设通过one-hot编码后得到的特征为\left [ 0,1,0 \right ]。这样的特征不适合DNN处理,通常需要通过Embedding将其转换成连续的向量表示,这便是Embedding层的作用,最终得到的Embedding层的输出为:

\mathbf{x}_{embed,i}=W_{embed,i}\mathbf{x}_i

其中,\mathbf{x}_{embed,i} 是Embedding层的输出向量,\mathbf{x}_i 是属入的第i 个离散特征,W_{embed,i}\in \mathbb{R}^{n_e\times n_v} 是一个n_e\times n_v 的矩阵,是用于连接输入层到Embedding层的参数。通过Embedding层后,在Stacking层,需要将Embedding层的输出组合在一起,这里的Embedding特征包括了离散特征的Embedding结果以及原始的连续特征:

\mathbf{x}_0=\left [ \mathbf{x}_{embed,1}^T,\cdots ,\mathbf{x}_{embed,k}^T,\mathbf{x}_{dense}^T \right ]

得到Embedding层的结果后,便进入到DCN网络的核心的两个网络,分别是Cross network和Deep network。

2.2.2. Cross network

Cross network部分是Deep&Cross网络的核心部分,其作用是利用深度神经网络充分挖掘特征中的交叉特征。具体过程的形式化表示如下图所示:

在这里插入图片描述
在这里插入图片描述

其具体的数学表述为:

\mathbf{x}_{l+1}=\mathbf{x}_{0}\mathbf{x}_{l}^T\mathbf{w}_l+\mathbf{b}_{l}+\mathbf{x}_{l}=f\left ( \mathbf{x}_{l},\mathbf{w}_{l},\mathbf{b}_{l} \right )+\mathbf{x}_{l}

其中,\mathbf{x}_{l},\mathbf{x}_{l+1}\in \mathbb{R}^d 表示的是Cross network的第l 层和第l+1 层的输出向量,\mathbf{w}_l,\mathbf{b}_l\in \mathbb{R}^d 是Cross network的第l 层的参数。上述公式的第二部分可以写成:

f\left ( \mathbf{x}_{l},\mathbf{w}_{l},\mathbf{b}_{l} \right )=\mathbf{x}_{l+1}-\mathbf{x}_{l}

从上述公式可以看出是一个残差网络[3]的表达形式,函数f:\mathbb{R}^d \mapsto \mathbb{R}^d

需要拟合的是第l+1 层和第l 层的残差\mathbf{x}_{l+1}-\mathbf{x}_{l} 。在ResNet中,残差网络的优点主要有:

  1. 通过残差网络可以构建深层网络。在传统的MLP,当网络加深之后,往往存在过拟合现象。而通过残差网络构建深层网络,可以减少过拟合现象的发生。
  2. 残差网络使用了ReLU激活函数取代Sigmoid激活函数可以有效防止梯度弥散,使得网络更容易收敛。

总的来说,可以通过残差网络构建更深层的模型,便于学习到特征之间的交叉属性。

2.2.3. Deep network

Deep network部分与Wide&Deep模型中一致,是一个典型的全连接前馈神经网络,其可以由下属公式表示:

\mathbf{h}_{l+1}=f\left ( W_l\mathbf{h}_l+\mathbf{b}_l \right )

2.2.4. Combination

2.3. Cross network中的特征交叉

注:在Cross network中,网络中每一层的维数都是相等的。

3. 总结

Deep&Cross Network通过对Cross network的设计,可以显示、自动地构造有限高阶的特征叉乘,并完成不同阶特征的选择,从而在一定程度上摆脱了人工的特征工程,同时保留深度网络起到一定的泛化作用。

参考文献

[1] Wang R, Fu B, Fu G, et al. Deep & cross network for ad click predictions[M]//Proceedings of the ADKDD’17. 2017: 1-7. [2] Cheng H T, Koc L, Harmsen J, et al. Wide & Deep Learning for Recommender Systems[J]. 2016:7-10. [3] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 概述
  • 2. 算法原理
    • 2.1. DCN的网络结构
      • 2.2. DCN网络的计算过程
        • 2.2.1. Embedding和Stacking
        • 2.2.2. Cross network
        • 2.2.3. Deep network
        • 2.2.4. Combination
      • 2.3. Cross network中的特征交叉
      • 3. 总结
      • 参考文献
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档