DCN:Deep & Cross Network for Ad Click Predictions简介
Deep & Cross Network for Ad Click Predictions
摘要
作者起草了DCN,该网络可以保持DNN的优点(隐式地生成特征之间的交互),同时又利用交叉网络来对特征进行显式的交叉计算。这也不要求手工的特征工程,同时只是在DNN的基础上加了一些可容忍的复杂度。实验证明DCN已经在CTR预估与分类问题上超过了sota。
介绍
对于web伸缩型的推荐系统,因为其产生的数据较为稀疏,对于线性模型来说已经不太好处理了。因此交叉特征变得很重要,但是这经常要求我们手动特征工程,为了减少这方面的工作,交叉网络应运而生。同时联合DNN,发挥两者的共同优势。
嵌入和堆叠层
对于离散数据,一般处理时会被编码成one-hot向量,对于实际应用中维度会非常高,因此使用
来将这些离散特征转换成实数值的稠密向量,最后将嵌入向量和连续特征向量堆叠在一起形成一个向量。
交叉网络
对于每层的计算,使用下述公式:
一层交叉层的可视化如下图所示:
该网络可以使交叉特征的次数随着层数的增加而不断变大,对于l层其最高多项式次数为l+1。
计算的时间与空间复杂度都是线性,因此DCN的效率与DNN是一个量级的。
深度网络
深度网络就是一个全连接的前馈神经网络,每个深度层具有如下公式:
链接层
将两个网络的输出联合,送进标准的logits层。
正则化的log loss函数:
实验
-
比较DCN,DC,DNN,FM,LR模型的最好的logloss
-
比较实现对应的logloss,DNN和DCN需要的参数数量
-
在固定参数下实现最好的logloss所需要的内存
-
在层数与结点一致的情况下,比较DNN与DCN的logloss(X
)差距,负值代表DCN表现好于DNN
-
最后展示了不同设置的变化趋势。
可以参考我的github来看看源代码,如有错误,欢迎交流。