dcn网络是什么(dcn网络是什么意思)

Deep & Cross Network(DCN)在 2017 年由 google 和 Stanford 共同发表的一篇论文中被提出,类似于Wide & Deep Network(WDL),是用负杂网络预估CTR的一种方法。

特征工程一直是许多预测模型成功的关键。许多有效的特征都来自于原始特征的交叉组合。在WDL中,wide侧的交叉组合特征依然需要依靠hand-craft来完成。而DCN能对sparse和dense的输入自动学习特征交叉,可以有效地捕获有限阶(bounded degrees)上的有效特征交叉,无需人工特征工程或暴力搜索(exhaustive searching),并且计算代价较低。

本文在详细介绍Deep & Cross Network网络结构的基础上,给出了高效实现DCN模型的tensorflow代码,主要点出了网络上一些主流实现中常犯的错误,让你真正能够在企业级的生产环境中玩转DCN模型。

DCN网络结构

DCN模型以一个嵌入和堆叠层(embedding and stacking layer)开始,接着并列连一个cross network和一个deep network,接着通过一个combination layer将两个network的输出进行组合。

嵌入和堆叠层

考虑具有稀疏和稠密特征的输入数据。在网络规模推荐系统的CTR预测任务中,输入主要是分类特征,如“country=usa”。这些特征通常是编码为独热向量如[0,1,0];然而,这通常会产生超高维度的特征空间。

为了减少维数,我们采用嵌入过程将这些二进制特征转换成实数值的稠密向量(通常称为嵌入向量):

这一部分在tensorflow中,使用tf.feature_columnAPI可以很容易实现,大致代码结构如下:

交叉网络

交叉网络的核心思想是以有效的方式应用显式特征交叉。交叉网络由交叉层组成,每个层具有以下公式:

总结

DCN主要有以下几点贡献:

提出一种新型的交叉网络结构,可以用来提取交叉组合特征,并不需要人为设计的特征工程;这种网络结构足够简单同时也很有效,可以获得随网络层数增加而增加的多项式阶(polynomial degree)交叉特征;十分节约内存(依赖于正确地实现),并且易于使用;实验结果表明,DCN相比于其他模型有更出色的效果,与DNN模型相比,较少的参数却取得了较好的效果。

源代码Github

论文阅读

Deep & Cross Network for Ad Click Prediction