美文网首页
推荐系统排序算法--Deep&Cross Network模型

推荐系统排序算法--Deep&Cross Network模型

作者: 算法手记 | 来源:发表于2019-12-27 02:08 被阅读0次

1、原理

Deep&Cross Network模型我们下面将简称DCN模型:

一个DCN模型从嵌入和堆积层开始,接着是一个交叉网络和一个与之平行的深度网络,之后是最后的组合层,它结合了两个网络的输出。完整的网络模型如图:

1、the Deep & Cross Network

嵌入和堆叠层

我们考虑具有离散和连续特征的输入数据。在网络规模推荐系统中,如CTR预测,输入主要是分类特征,如“country=usa”。这些特征通常是编码为独热向量如“[ 0,1,0 ]”;然而,这往往导致过度的高维特征空间大的词汇。为了减少维数,我们采用嵌入过程将这些离散特征转换成实数值的稠密向量(通常称为嵌入向量):

                                        x_{embed}  = x_{embed,i} x_{i}

然后,我们将嵌入向量与连续特征向量叠加起来形成一个向量:

                                        x_{0} = [ x_{embed,1}^T,  ...,x_{embed,k}^T,x_{dense}^T]

拼接起来的向量X0将作为我们Cross Network和Deep Network的输入

Cross Network

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

                                        x_{l+1}=x_{0} x_{l}^Tw_{l} + b_{l}+ x_{l}=f(x_{l} ,w_{l} ,b_{l} ) +x_{l}

一个交叉层的可视化如图所示:

2、Visualization of a cross layer

可以看到,交叉网络的特殊结构使交叉特征的程度随着层深度的增加而增大。多项式的最高程度(就输入x_{0} 而言)为l层交叉网络l+1。如果用l_{c} 表示交叉层数,d表示输入维度。然后,参数的数量参与跨网络参数为:d*l_{c}*2 (w和b) 。

交叉网络的少数参数限制了模型容量。为了捕捉高度非线性的相互作用,模型并行地引入了一个深度网络。

Deep Network

深度网络就是一个全连接的前馈神经网络,每个深度层具有如下公式:

                                        h_{l+1}  = f(w_{l} h_{l} + b_{l} )

Combination Layer

链接层将两个并行网络的输出连接起来,经过一层全链接层得到输出:

                                        p=[x_{L_{1}^T }, h_{L_{2}^T } ]W_{logits}

如果采用的是对数损失函数,那么损失函数形式如下:

                                        loss=-\frac{1}{N} \sum_{i=1}^N y_i log(p_i) + (1-y_i)log(1-p_i)+ \lambda \sum_{l} ||w_{l}||^2

总结

DCN能够有效地捕获有限度的有效特征的相互作用,学会高度非线性的相互作用,不需要人工特征工程或遍历搜索,并具有较低的计算成本。

论文的主要贡献包括:

1)提出了一种新的交叉网络,在每个层上明确地应用特征交叉,有效地学习有界度的预测交叉特征,并且不需要手工特征工程或穷举搜索。

2)跨网络简单而有效。通过设计,各层的多项式级数最高,并由层深度决定。网络由所有的交叉项组成,它们的系数各不相同。

3)跨网络内存高效,易于实现。

4)实验结果表明,交叉网络(DCN)在LogLoss上与DNN相比少了近一个量级的参数量。

参考文献:

论文:Deep & Cross Network for Ad Click Predictions

推荐系统遇上深度学习(五)--Deep&Cross Network模型理论和实践

相关文章

网友评论

      本文标题:推荐系统排序算法--Deep&Cross Network模型

      本文链接:https://www.haomeiwen.com/subject/gxjroctx.html