赞
踩
在CTR预估中,FM系列模型使用浅层网络(线性模型),让模型自己学习特征组合交互,为显式建模的方式;而DNN系列模型使用深层网络,隐式挖掘模型的高阶特征交互。
本文继续介绍结合这两者优点的另外一个系列:Wide&Deep,即同时加入低阶特征组合交互的线性模型-Wide、高阶特征交叉的深度模型(Deep),Wide部分模型提供模型的记忆能力,而Deep部分提供模型的泛化能力。这是Wide&Deep系列模型很重要的一个点。
论文:Wide & Deep Learning for Recommender Systems
地址:https://arxiv.org/pdf/1606.07792.pdf
论文指出推荐系统的其中一个挑战在于同时兼顾memorization(记忆)和generalization(泛化):
论文提出的Wide & Deep学习框架就是为了兼具记忆和泛化,联合训练一个线性模型组件和一个深度神经网络模型组件,如下图:
Wide组件是一个普通的线性模型,如上图[Wide&Deep框架]-左: y = w T x + b y=w^Tx+b y=wTx+b
其中,y是预估值,x是一个向量,包含了d个特征值 x = [ x 1 , x 2 , . . . , x d ] x=[x_1,x_2,...,x_d] x=[x1,x2,...,xd],w是模型的参数 w = [ w 1 , w 2 , . . . , w d ] w=[w_1,w_2,...,w_d] w=[w1,w2,...,wd],而b则是bias。
值得注意的是,x包括了原设的特征输入,还有变换过的特征,论文列出一个最重要的特征变化:cross-product
c k i c_{ki} cki是一个布尔变量,当第i个特征是第k个变换的一部分,取值为1,否则为0。比如有一个cross-product变换为“AND(gender=female, language=en)”,那么当且仅当所有组成特征都为1时, ϕ k \phi_k ϕk才等于1,其他情况都为0。
再对应解释下 c k i c_{ki} cki,如另外的特征(city)由于不是这个变换的部分,那么 c k i c_{ki} cki为0,任何取值下 x i c k i x_i^{c_{ki}} xicki都为1,不影响最终的 ϕ k \phi_k ϕk。
Deep组件是一个前馈神经网络,如上图[Wide&Deep框架]-右。老生常谈,对于类别特征,原设输入是字符串(如‘language=en’,language有许多取值),每一个这样稀疏和高维的特征都会转换为一个低维和稠密的实值向量,即embedding vector。这些embedding vectors会被输入到神经网络的隐藏层:
其中,l是隐藏层的数量,f是激活函数(一般为ReLUs)。
在这里,论文还说明了集成学习和联合训练的区别:
在联合训练中,wide组件使用的优化器是带有L1正则的Follow-the-regularized-leader (FTRL),而deep组件使用的AdaGrad,最终组合的模型正如上图[Wide&Deep框架]-中,形式如下:
其中, σ ( ⋅ ) \sigma(\cdot) σ(⋅)是一个sigmoid函数, a ( l f ) a^{(l_f)} a(lf)是最后一层网络经过激活函数的输出。
论文:DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
地址:https://www.ijcai.org/proceedings/2017/0239.pdf
DeepFM模型仍然可以认为是套用Wide&Deep的基础框架,但是DeepFM模型在以下几点上做了一些改进:
对于FM模型系列,可以跳转到这篇文章FM/FFM/FwFM/FEFM
论文做了详细的超参数消融实验,具体结果如下图所示:
其中network shape表示:constant (200-200-200)、increasing (100-200-300)、decreasing (300-200-100)、diamond (150-300-150).
论文:Deep & Cross Network for Ad Click Predictions
地址:https://arxiv.org/pdf/1708.05123.pdf
Deep & Cross Network (DCN)与DeepFM模型一样,基于Wide & Deep的框架,对wide部分进行改进:使用cross network,能够学习超过二阶的特征交互,同样可以摆脱人工特征工程。DCN模型结构如下图:
DCN中除了Cross network,其他部分与其他模型的基本一致,因此不再赘述,着重讲解cross network部分。
Cross Network是这篇论文的核心创新点-显示的特征交叉,它的公式形式如下式:
其中, x 0 x_0 x0即是特征embedding拼接输入, x l + 1 , x l ∈ R d x_{l+1},x_l\in \mathbb{R}^d xl+1,xl∈Rd是d维的向量,分别代表第l和l+1层cross layer的输出,并且第l层在特征交叉(feature cross)之后,会加回原来的输入 x l x_l xl,即让feature cross去拟合第l+1层与第l层的残差: x l + 1 − x l x_{l+1}-x_l xl+1−xl
可以看出l层的cross network能够达到l+1阶的特征交叉,并且参数量仅为d的的线性关系: d × l × 2 d\times l \times 2 d×l×2
论文从三种角度来帮助分析理解cross network的有效性:polynomial approximation、generalization to FMs、efficient projection。在分别介绍这三种分析方法之前,先说明一些参数符号:
对于n阶的多元(d元)多项式为,它的系数数量达到了 O ( d n ) O(d^n) O(dn),如下式:
但是,论文提出的cross network能够以O(d)的参数量,包含了上式多元多项式的所有交叉项,并且每个交叉项的系数都是不同的。
考虑一个l层的cross network,并且第i+1层的输出为: x i + 1 = x 0 x i T w i + x i x_{i+1}=x_0x_i^Tw_i+x_i xi+1=x0xiTwi+xi。
让输入为 x 0 = [ x 1 , x 2 , . . . , x d ] x_0=[x_1,x_2,...,x_d] x0=[x1,x2,...,xd],输出为 g l ( x 0 ) = x l T w l g_l(x_0)=x_l^Tw_l gl(x0)=xlTwl,参数为 w i , b i ∈ R d w_i,b_i\in \mathbb{R}^d wi,bi∈Rd,然后多元多项式 g l ( x 0 ) g_l(x_0) gl(x0)可以变为下式:
可以看出,1、cross network的参数量能够比普通的多元多项式少的原因在于:参数w的共享,但每个特征交叉项又使用了不同的参数交叉,以达到不同系数的效果;
2、cross network是以bit-wise的方式来实现高阶特征交叉的。
cross network借鉴了FM模型的参数共享的精髓,并且将其扩展到更深的结构。
记 x ~ \tilde{x} x~为每一层的cross layer的输入,cross layer实现的其实就是隐式的组合 x ~ \tilde{x} x~和x的所有pairwise interactions x i x ~ j x_i\tilde{x}_j xix~j( d 2 d^2 d2个),然后再隐式的投影(project)到维度d,有效将参数量由维度d的三次方减少到线性关系,从这里也可以看出参数量的减少得益于参数w共享:其中, w ∈ R d w\in \mathbb{R}^d w∈Rd。回归到DCN,x则为 x 0 x_0 x0,那么 x P = x 0 x ~ T w x_P=x_0\tilde{x}^Tw xP=x0x~Tw
论文使用的数据集是:Criteo Display Ads Data,实验得到最好的结构是6层cross layer和2层1024size的deep layer,其他参数如下:
从下图也可以看出,加入cross layer之后,效果提升显著
论文:DCN V2: Improved Deep & Cross Network and Practical Lessons for Web-scale Learning to Rank Systems
地址:https://arxiv.org/pdf/2008.13535.pdf
2017年提出DCN之后,该团队在2020年发表DCN-V2版本的论文,与DCN的区别在于Cross Network,在特征对交叉使用的权重使用了矩阵的形式,而DCN是向量形式,如下图所示:
但这样带来的参数量提升是巨大的,由原来的O(d)变为 O ( d 2 ) O(d^2) O(d2)。因此引入一种low-rank的方法,即将原来输入的直接投影(project),调整为先投影到低维度空间 R r \mathbb{R}^r Rr,再重新投影回原来的维度 R d \mathbb{R}^d Rd
当r<<d时,参数量可以显著减少。 U l , V l ∈ R d × r U_l,V_l\in \mathbb{R}^{d\times r} Ul,Vl∈Rd×r
上述,DCN是以bit-wise的方式来实现高阶特征交叉的,而DCN-V2不仅能视为bit-wise的交叉方式(可认为是cross network中权重w没有共享的的DCN,如下图[efficient projection]),也能够看成是feature-wise。
Wide & Deep提出一种通用框架:wide组件的线性模型的显性低阶特征交叉提供记忆能力,deep组件的深度网络模型的隐式高阶特征交叉提供泛化能力;
DeepFM模型则是在此基础,加强wide部分的能力,将线性模型替换为FM模型,并且大大减少特征工程;
Deep & Cross又是进一步提升wide部分的能力,突破FM浅层网络的二阶特征交叉能力限制,使用深层网络来实现高阶的显式特征交叉,并且参数量能够保持在输入维度的线性关系。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。