推荐系统笔记7-Deep & Cross Network for Ad Click Predictions
本文介绍Deep & Cross Network for Ad Click Predictions,这个和之前一篇Deep Crossing文章是不一样的,Deep Crossing 通过ResNet和Embedding来学习特征组合;
具体的代码实现见Github
摘要
特征工程对于预测模型是很重要的,但是这个过程费时费力,DNNs可以自动学习特征交互,但是不能学习所有的特征类型;文中提出Deep & Cross Network (DCN),DCN在保持了原来的DNN模型的优势基础上,引进了一个新的交叉网络;除此之外,DCN显示的在每层引入特征交叉,但是也只是增加了可以忽略不计的复杂度给DNN;
一、介绍
对于CTR预估中的CPC (cost-per-click)模型,只有当广告被点击,才会被收费;但是这些问题的数据一般是离散且类别型的,One-hot以后,数据变得高维且稀疏,对于线性模型是一个巨大的挑战;文中引入cross \ network以一种自动的形式来显示的应用特征交叉,交叉网络由好几层构成,因为最大的交互深度是被证明由层的深度所决定;
二、 DEEP & CROSS NETWORK (DCN)
DCN的网络架构如下所示:

首先是一个Embedding层和Stacking层,然后接着是并行的cross \ neteork和deep \ network,最终由一个combination \ layer来组合上两层的输出;
2.1 Embedding and Stacking Layer
考虑输入数据是稀释+密集 数据,因为One-hot以后的类别特征维度高且稀疏,一般用Embedding来表示,如X_{embed,i}=W_{embed,i}x_i,其中{{\rm{W}}_{embed,i}} \in {R^{{n_e} \times {n_v}}},n_e和n_v分别代表Embedding维度和输入维度,通过Embedding 后,我们将所有的数据stacking,转换为输入x_0,如下所示:
{x_0} = \left[ {x_{embed,1}^T,...,x_{embed,k}^T,x_{dense}^T} \right]然后将x_0送到下一层网络中;
2.2、 Cross Network
这一层的主要目的是显示的应用特征交叉,如下所示:{x_{l + 1}} = {x_0}x_l^T{w_l} + {b_l} + {x_l} = f({x_l},{w_l},{b_l}) + {x_l}其中{x_l},{x_{l + 1}} \in {R^d},{w_l},{b_l} \in {R^d},并在f函数以后自身输入,所以这个函数f学习的是残差x_{l+1}-x_l,一个交叉层的可视化图如下:

上面表明随着隐藏层的增加,其对应的交叉特征的度也在增大;其交叉层的参数数量是:d \times {L_c} \times 2,所以是线性的时间和空间复杂度,相比于NN层来说是可以忽略不计的,为了引入非线性特征,并行增加deep \ network;
2.3、 Deep Network
全连接的前馈神经网络,即h_{l+1}=f(W_lh_l+b_l),其中f是ReLU激活函数,假设所有层的大小都是一样的,且L_d代表有多少个隐藏层,m代表隐藏层的大小,deep\ network的参数数量是
d \times m+m+(m^2+m)\times (L_d-1)
2.4、 Combination Layer
该层将上述两个层的结果结合起来,且通过sigmoid函数得到输出,然后最小化logloss+L2,如下式所示:

三、CROSS NETWORK ANALYSIS
从三个角度分析为什么交叉网络有效:1、polynomial approximation;2、generalization to FMs;3、efficientprojection。
四、 EXPERIMENTAL RESULTS
4.1、Criteo Display Ads Data
数据集存在13个整数特征和26个类别特征,且每个类别有很高的基数,将7天数据,前6天训练,第7天随机划分两部分:验证集+测试集;
4.2、 Implementation Details
Data processing and embedding: 实数特征通过log 归一化,类别特征的维度是6\times(类别基数)^{1/4};
Optimization: mini-batch(512)+Adam+BN+梯度裁剪(100) ;
Regularization: 早停+L2+Dropout;
Hyperparameters: 使用网格搜索调参;
4.3、比较的模型
比较DNN、LR、FM、Wide & Deep和 Deep Crossing。
4.4、 Model Performance
不同模型测试集 Logloss 对比结果如下:

详细对比DCN的交叉结构层数大小(0层代表没有交叉,即DNN),如下所示:

上图右上角的注解代表的是并行的deep\ network的参数,可看出4层deep\ network和3个交叉层最好;
