Deep & Cross Network for Ad Click Predictions阅读笔记

动机

本文是2017年的论文,提出了经典的深度学习推荐模型Deep&Cross。本文是为了解决当时需要手动构建特征交叉和DNN不能学习到所有交叉特征的问题,作者提出的Deep & Cross Network(DCN)无需手动交叉特征,同时除了DNN参数外,只引入了少量额外的参数,模型性能和所占内存都优于当时最先进的算法。

方法

Deep&Cross模型结构如下图,主要由cross部分和deep部分组成。

cross network

cross每一层的表达式如下

\(x_0\)是原始的向量输入,\(w_l\)\(b_l\)是每一层的参数。
cross net部分参数很少,假设输入维度为d,每一层w和b维度也都是d,总共有d×L×2个参数,其中L为cross net总层数。cross net加入残差连接,可以缓解梯度消失问题。cross net还可以通过控制网络层数来控制特征交叉的力度,深度为L的网络可以达到L+1阶的叉乘。

deep network

deep net部分其实就是一个MLP,激活函数为ReLU,公式如下

Combination Layer

将cross和deep的结果结合起来,公式如下

损失函数是二分类交叉熵损失函数

实验结果

在Criteo广告数据集上,本文提出的Deep&Cross模型取得最好效果。
个人感觉这个结果说服力不强,提升效果并不明显,而且没和Wide&Deep比较,计算广告中重要的指标AUC也没有列出来比较。

总结

本文提出的Deep&Cross模型主要贡献是在Cross部分,它可以构造有限高阶的特征叉乘,避免手动交叉特征,同时额外需要的参数不多,保证了计算速度。因为在之前读过Wide&Deep和DeepFM相关论文,我发现这篇论文和上述两篇论文相似,都是将DNN和一个其他网络组合在一起使用,Wide&Deep是DNN+线性回归模型(LR),DeepFM是DNN+FM,本文则是DNN+Cross net,DNN部分负责高阶特征交叉,另一部分负责低阶特征交叉(Wide&Deep是一阶特征,DeepFM是二阶特征交叉,Deep&Cross是更高阶的特征交叉)。那么,读完本文之后我也有一些疑问,既然另一部分是注重低阶特征交叉,cross net是否还有必要做一些高阶特征交叉,是否线性模型就足够(也就是Wide&Deep模型)?这种特征交叉的方式是否真的有效?本文模型还有一个问题,而且cross部分的输出一直都是\(x_0\)的倍数。我也在网上搜索过关于这篇论文的解读(我是参考这篇揭秘 Deep & Cross : 如何自动构造高阶交叉特征,评论区也值得看一下),也有很多人和我有一样的疑问,而且这个模型的效果相对于Wide&Deep似乎并没有提高。个人认为这篇论文浅读一下就好,没必要深钻。

PS:论文中定理和证明比较晦涩,我没看懂,但是看到也有不少人和我一样,松了一口气。

posted @ 2022-07-03 23:24  South1999  阅读(84)  评论(0编辑  收藏  举报