Deep和Cross不得不说的秘密

Deep & Cross Network(DCN)[1]是来自于 2017 年 google 和 Stanford 共同完成的一篇工作,对比同样来自 google 的工作 Wide & Deep[2] ,DCN 不需要特征工程来获得高阶的交叉特征,对比 FM 系列[3][4]的模型,DCN 拥有更高的计算效率并且能够提取到更高阶的交叉特征

模型简介

从网络结构上面来看,该模型是非常简单明了的,特征分为类别型与数值型,类别型特征经过 embedding 之后与数值型特征直接拼接作为模型的输入。所有的特征分别经过 cross 和 deep 网络,如果把这两个网络看作特征提取的话,经过提取后的特征向量拼接之后是常规的二分类,如果训练数据是曝光和点击,最后输出的就可以看作点击率了。

离散特征嵌入

离散特征嵌入这个想法最初来自于 Mikolov 的 word2vec[5] 系列文章。最初解决的问题是词的独热表示过于稀疏,并且不同词之间的向量形式表示完全没有联系。具体思路在此不赘述,最终的实现是将一个上万维的词独热表示嵌入到了只有几百维的稠密向量中。而嵌入的本质其实是构建一张随机初始化的向量查找表,通过我们的训练目标做有监督学习来得到不同词在特定目标下,处于向量空间中的位置。

词嵌入的思路推广到其它的离散特征处理中,我们可以用同样的方法将各种类别特征如“用户性别”、“城市”、“日期”嵌入到稠密的向量空间中。经过这样处理之后,自然就解决了原本 FM 遇到的特征稀疏问题。

高阶交叉特征

在广告场景下,特征交叉的组合与点击率是有显著相关的,例如,“USA”与“Thanksgiving”、“China”与“Chinese New Year”这样的关联特征,对用户的点击有着正向的影响。换句话说,来自“China”的用户很可能会在“Chinese New Year”有大量的浏览、购买行为,而在“Thanksgiving”却不会有特别的消费行为。这种关联特征与label的正向相关性在实际问题中是普遍存在的,如“化妆品”类商品与“女性”,“球类运动配件”的商品与“男性”,“电影票”的商品与“电影”品类偏好等。因此,引入特征的组合是非常有意义的。看到这种需要,我们很容易就能想到 SVM 里面的多项式核函数,FM 就是在多项式核的基础上,优化了稀疏问题以及计算复杂度的产物。

而本文开发了一个新的算子,用另一种形式来得到交叉特征:

考虑 x₀ 为输入的特征及第一层的输入,x 为 第 L 层的输入,我们可以看到它的基本思路还是用矩阵乘法来实现特征的组合。

这是个递推形式算子,所以使用它很容易能得到高于二阶的交叉特征;并且该模型还用了残差的思想,解决网络性能退化的问题;此公式还有一个小的优化技巧,三矩阵相乘那个算子,用乘法结合律先计算后面两个矩阵的积,这样可以减少三分之一的计算复杂度。

DCN和同场景模型对比

在此我们略过 FM,因为它已经包含在 deepFM 内了。 

可以看到 deepFM 进行了离散特征嵌入的操作,并且还将嵌入前的离散特征加入到了 FM 层;所以该网络可以看作是传统的 FM 、离散特征嵌入之后的 FM 和基本 DNN 三个模型融合的结果。

可以看到 wide & deep 的思路中,deep 部分的做法和 deepFM 是大相径庭的,关键的 wide 部分其实是离线的特征工程,根据业务场景提前完成了特征交叉等处理,该模型可以看作是 DNN 与离线特征模型的融合结果。

而从 DCN 的网络中我们可以发现,deep 部分网络除了使用离散嵌入特征外,还拼接了数值型特征;cross 部分网络直接完成了特征组合,对比 FM 层它可以学到更高阶的组合特征,对比 wide 网络它不需要做线下的特征工程

小结

DCN 已经在云脑科技内部多个项目中得到了实践运用,包括信息流和应用商店等多个场景下的点击率预测任务。在深度定制的预测服务支持下,得益于该模型不需要复杂的特征工程,该模型能以很低的时延和较高的并发量运行。

实践经验表明,手工做的特征工程有时并不能很好的反映我们的预测目标,在实际完成的生产项目中我们更是发现,减少人工特征工程的使用反而会提高模型的效果,也是更加耐人寻味。

云脑科技
云脑科技

云脑科技是一家跨越中美两地的人工智能行业平台公司,在深度学习(RNN/CNN)、增强学习、NLP、知识图谱领域均拥有大规模项目成功实践经验。本专栏将持续输出云脑员工的原创技术解读,旨在与AI从业者共同探讨、进步。

理论云脑科技DCN
2
相关数据
云脑科技机构

云脑科技成立于2015年5月,是一家跨越中美两地的人工智能行业平台公司,在深度学习(RNN/CNN)、增强学习、NLP、知识图谱领域均拥有大规模项目成功实践经验。

核函数技术

核函数包括线性核函数、多项式核函数、高斯核函数等,其中高斯核函数最常用,可以将数据映射到无穷维,也叫做径向基函数(Radial Basis Function 简称 RBF),是某种沿径向对称的标量函数。最常应用于SVM支持向量机中

词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

特征工程技术

特征工程是利用数据所在领域的相关知识来构建特征,使得机器学习算法发挥其最佳的过程。它是机器学习中的一个基本应用,实现难度大且代价高。采用自动特征工程方法可以省去采用人工特征工程的需求。Andrew Ng 说“挖掘特征是困难、费时且需要专业知识的事,应用机器学习其实基本上是在做特征工程。”

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

word2vec技术

Word2vec,为一群用来产生词向量的相关模型。这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本。网络以词表现,并且需猜测相邻位置的输入词,在word2vec中词袋模型假设下,词的顺序是不重要的。 训练完成之后,word2vec模型可用来映射每个词到一个向量,可用来表示词对词之间的关系。该向量为神经网络之隐藏层。 Word2vec依赖skip-grams或连续词袋(CBOW)来建立神经词嵌入。Word2vec为托马斯·米科洛夫(Tomas Mikolov)在Google带领的研究团队创造。该算法渐渐被其他人所分析和解释。

推荐文章
暂无评论
暂无评论~