前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐系统(十七)——kdd'17「谷歌」deep cross network(DCN)

推荐系统(十七)——kdd'17「谷歌」deep cross network(DCN)

作者头像
秋枫学习笔记
发布2022-09-19 11:49:26
5520
发布2022-09-19 11:49:26
举报
文章被收录于专栏:秋枫学习笔记

Deep & Cross Network for Ad Click Predictionshttps://dl.acm.org/doi/pdf/10.1145/3124749.3124754

背景

前一篇文章介绍了很多FM系列的方法,但是FM通过特征之间的两两关系来构建交叉特征,这些都是低阶特征组合。谷歌提出DCN,除了DNN部分,在显示构造特征的部分进行多层cross network进行特征的交叉。

方法

如图所示为DCN的结构示意图。通过embedding层将输入数据转换为embedding,然后右边部分是DNN部分,用于发掘特征之间的高阶关系,他能自动的进行特征交互,但是DNN是隐式的对所有特征值进行交互,不一定能学习到有效的特征交叉。右边部分则是采用显示的特征交叉来构建特征之间的相互关系。DeepFM中也是用类似的方法,不过缺点正如背景中所说的,因此本文提出了多层交叉的方式。

Cross Network

cross network就是交叉网络,即结构图中的左边部分。下式为交叉网络中每一层的计算方式,每一层计算的时候都是前一层的输出

x_l

和最初始的输入特征

x_0

做交叉,可视化如下图。

\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}

交叉网络的特征交叉程度随着层数的加深而增大,如果交叉网络有L层,则交叉程度为L+1

DNN和Combination Layer

DNN部分就是多层前馈神经网络,

h_{l+1}=f(w_lh_l+b_l)

。结合层:

p=\sigma\left(\left[\mathbf{x}_{L_{1}}^{T}, \mathbf{h}_{L_{2}}^{T}\right] \mathbf{w}_{\text {logits }}\right)

,将交叉网络和DNN的输出结合起来,经过一层全连接层和sigmoid得到ctr预估。损失函数依旧是交叉熵损失函数,加上L2正则项。

总结

可以发现,DCN和FM系列还是有明显区别的。首先,FM系列做的特征交叉是比较低阶的,而DCN做的多层交叉使得整个交叉后的特征是高阶的。其次,FM系列在FFM之后都采用了Field的概念,分成不同的field来对特征做交叉,而DCN是对整个特征进行操作。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档