推荐系统笔记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以后,数据变得高维且稀疏,对于线性模型是一个巨大的挑战;文中引入 c r o s s   n e t w o r k cross \ network cross network以一种自动的形式来显示的应用特征交叉,交叉网络由好几层构成,因为最大的交互深度是被证明由层的深度所决定;

二、 DEEP & CROSS NETWORK (DCN)

DCN的网络架构如下所示:
推荐系统笔记7-Deep & Cross Network for Ad Click Predictions_第1张图片
首先是一个Embedding层和Stacking层,然后接着是并行的 c r o s s   n e t e o r k cross \ neteork cross neteork d e e p   n e t w o r k deep \ network deep network,最终由一个 c o m b i n a t i o n   l a y e r combination \ layer combination layer来组合上两层的输出;

2.1 Embedding and Stacking Layer

考虑输入数据是稀释+密集数据,因为One-hot以后的类别特征维度高且稀疏,一般用Embedding来表示,如 X e m b e d , i = W e m b e d , i x i X_{embed,i}=W_{embed,i}x_i Xembed,i=Wembed,ixi,其中 W e m b e d , i ∈ R n e × n v {{\rm{W}}_{embed,i}} \in {R^{{n_e} \times {n_v}}} Wembed,iRne×nv n e 和 n v n_e和n_v nenv分别代表Embedding维度和输入维度,通过Embedding后,我们将所有的数据 s t a c k i n g stacking stacking,转换为输入 x 0 x_0 x0,如下所示:
x 0 = [ x e m b e d , 1 T , . . . , x e m b e d , k T , x d e n s e T ] {x_0} = \left[ {x_{embed,1}^T,...,x_{embed,k}^T,x_{dense}^T} \right] x0=[xembed,1T,...,xembed,kT,xdenseT]然后将 x 0 x_0 x0送到下一层网络中;

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 + 1}} = {x_0}x_l^T{w_l} + {b_l} + {x_l} = f({x_l},{w_l},{b_l}) + {x_l} xl+1=x0xlTwl+bl+xl=f(xl,wl,bl)+xl其中 x l , x l + 1 ∈ R d {x_l},{x_{l + 1}} \in {R^d} xl,xl+1Rd w l , b l ∈ R d {w_l},{b_l} \in {R^d} wl,blRd,并在 f f f函数以后自身输入,所以这个函数 f f f学习的是残差 x l + 1 − x l x_{l+1}-x_l xl+1xl,一个交叉层的可视化图如下:
推荐系统笔记7-Deep & Cross Network for Ad Click Predictions_第2张图片
上面表明随着隐藏层的增加,其对应的交叉特征的度也在增大;其交叉层的参数数量是: d × L c × 2 d \times {L_c} \times 2 d×Lc×2,所以是线性的时间和空间复杂度,相比于NN层来说是可以忽略不计的,为了引入非线性特征,并行增加 d e e p   n e t w o r k deep \ network deep network

2.3、 Deep Network

全连接的前馈神经网络,即 h l + 1 = f ( W l h l + b l ) h_{l+1}=f(W_lh_l+b_l) hl+1=f(Wlhl+bl),其中 f f f是ReLU激活函数,假设所有层的大小都是一样的,且 L d L_d Ld代表有多少个隐藏层, m m m代表隐藏层的大小, d e e p   n e t w o r k deep\ network deep network的参数数量是
d × m + m + ( m 2 + m ) × ( L d − 1 ) d \times m+m+(m^2+m)\times (L_d-1) d×m+m+(m2+m)×(Ld1)

2.4、 Combination Layer

该层将上述两个层的结果结合起来,且通过 s i g m o i d sigmoid 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 × ( 类 别 基 数 ) 1 / 4 6\times(类别基数)^{1/4} 6×()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对比结果如下:
推荐系统笔记7-Deep & Cross Network for Ad Click Predictions_第3张图片
详细对比DCN的交叉结构层数大小(0层代表没有交叉,即DNN),如下所示:
推荐系统笔记7-Deep & Cross Network for Ad Click Predictions_第4张图片
上图右上角的注解代表的是并行的 d e e p   n e t w o r k deep\ network deep network的参数,可看出4层 d e e p   n e t w o r k deep\ network deep network和3个交叉层最好;

你可能感兴趣的:(机器学习,推荐系统)