推荐系统论文阅读(十四)-DCN-Deep&Cross Netw
论文原文:
论文地址:http://xxx.itp.ac.cn/pdf/1708.05123v1
论文题目:《Deep & Cross Network for Ad Click Predictions》
一 、背景
在第四篇文章里面我们介绍了DeepFm,DeepFm把fm和和神经网络结合在一起了,在文章里面我们也提到了两种方式,一种是并行方式,另一种是串行方式。我们知道DeepFm是并行结构,FM和DNN部分是并行的,FM部分计算低阶交叉特征,DNN部分计算高级特征,最后将两部分结果合并作为最终的CTR预估值。
DeepFM我们已经知道了并行结构怎么预估CTR了,现在来介绍一下另一种并行结构怎么实现的。
二 、模型结构
2.1 Embedding and Stacking Layer
我们考虑具有离散和连续特征的输入数据。在神经网络推荐系统中,如CTR预测,输入主要是离散特征,如“gender=male”。这些特征通常是编码为独热向量如“[ 1,0,0,0,0,0,0 ]”,但是这one-hot往往导致过度的高维特征空间大的词汇。
为了减少向量的维度,让高维稀疏的one-hot向量转换为低维稠密的向量,用embedding层操作:
从图中我们可以看到,除了离散特征外还有连续特征,连续特征的处理跟DeepFM里面的处理是不一样的,在DeepFm中,不管是连续特征还是离散特征,都是经过embedding层进行转化的,连续特征的embedding向量乘以本身的值,离散特征的embedding向量乘以1。而在DCN中,我们对连续特征对处理就是不需要经过embedding层,这一点我们也可以从模型结构图看出来,dense特征是直接进行concat操作的:
这样,我们就得到了DNN的输入向量X0,这也是后面反复会用到的向量。
2.2 Cross Network
交叉网络的核心思想是以有效的方式应用显式特征交叉。交叉网络由交叉层组成,每个层具有以下公式:
我们可以看到,不管是在哪个层,每一层的输入都会跟之前的X0计算交叉特征,这相当于使得交叉特征的程度随着层深度的增加而增大。
上面那个公式的计算方式可以用可视化的图解来理解,相信你看了上面这张图就知道计算过程是什么样子的来。多项式的最高程度(就输入X0而言)为L层交叉网络L + 1。如果用Lc表示交叉层数,d表示输入维度。然后,参数的数量参与跨网络参数为:d * Lc * 2 (w和b)。
交叉网络的少数参数限制了模型容量。为了捕捉高度非线性的相互作用,模型并行地引入了一个深度网络。
2.3 Deep Network
这一层就是DNN层了,公式自然是我们很熟悉的啦:
激活函数是Relu
2.4 Combination Layer
这一层跟DeepFM里面的最后一层的效果是一样的,也就是把两部分的输出合并到一起。
这里就没什么好解释的了,看一下损失函数吧,又是我们最熟悉的交叉熵损失函数:
用了l2正则化。
三、实验结果
四、总结
DCN能够有效地捕获有限度的有效特征的相互作用,学会高度非线性的相互作用,不需要进行人工特征工程或遍历搜索,并具有较低的计算成本。
论文的主要贡献包括:
1)提出了一种新的交叉网络,在每个层上明确地应用特征交叉,有效地学习有界度的预测交叉特征,并且不需要手工特征工程或穷举搜索。
2)跨网络简单而有效。通过设计,各层的多项式级数最高,并由层深度决定。网络由所有的交叉项组成,它们的系数各不相同。
3)跨网络内存高效,易于实现。
4)实验结果表明,交叉网络(DCN)在LogLoss上与DNN相比少了近一个量级的参数量。