【Paper Note】MaskNet论文详解

在这里插入图片描述

Introduction

FNN、DeepFM、xDeepFM这类浅层网络对交叉特征建模,从而达到较好的推荐结果,但一些研究表明,前馈网络在捕获交互特征方面效率低下。

为了解决上述问题,论文提出了一种MaskBlock结构作为基本单元,设计MaskNet的网络,提出了串行MaskBlock和并行MaskBlock网络结构,在3个公开数据集上,MaskNet都表现最好,说明MaskBlock可以显著提升DNN挖掘复杂交互特征的能力。

MaskBlock结构,由3个部分组成,分别为instance-guided mask,layer normalization,feed forward layer。这种结构把标准的DNN扩展为包含可加可乘的交互特征结构。

其中instance-guided mask方法,在DNN中的特征嵌入层和前馈层同时使用element-wise product,提取全局上下文信息,动态地融入到特征嵌入层和前馈层,突出重要的特征。

Model

Embedding Layer

embedding layer和我们常规的相似,分别对sparse feature和dense feature进行基础的处理。

sparse feature:直接进行embedding转成k维特征
e i = W e x i (1) e_i=W_ex_i \tag{1} ei=Wexi(1)
dense feature:通过乘一个k维向量转成特征
e j = V j x j (2) e_j=V_jx_j \tag{2} ej=Vjxj(2)

将每个特征concat操作,获得一个f*k维的特征向量,f为特征数量:
V e m b = c o n c a t ( e 1 , e 2 , … , e i , … , e f ) (3) V_{emb}=concat(e_1,e_2,\dots,e_i,\dots,e_f) \tag{3} Vemb=concat(e1,e2,,ei,,ef)(3)

Instance-Guided Mask

Instance-Guided Mask,充分利用了输入样本得到的全局上下文信息,对特征层和前馈层中重要的包含信息的特征进行强化,在DNN中引入了乘法操作,使得模型更加有效的捕捉到复杂的交互特征。

在这里插入图片描述
Aggregation Layer:一个wider layer,有效的从input instance中提取全局上下文信息

Projection Layer:把维度降到和embedding layer或hidden layer的维度

上面两层实际上是FC层
V m a s k = W d 2 ( W d 1 V e m b + β d 1 ) + β d 2 (4) V_{mask}=W_{d2}(W_{d1}V_{emb}+\beta_{d1})+\beta_{d2} \tag{4} Vmask=Wd2(Wd1Vemb+βd1)+βd2(4)
其中, V e m b ∈ R m = f ∗ k V_{emb}\in R^{m=f*k} VembRm=fk W d 1 ∈ R t ∗ m W_{d1}\in R^{t*m} Wd1Rtm W d 2 ∈ R z ∗ t W_{d2}\in R^{z*t} Wd2Rzt。 t 和 z 分别是两层网络的神经元数量,Projection Layer的维度要等于embedding层或hidden层,所以 t >= z,这里设置一个超参数 r = t / z 来控制两层网络神经元的数量,后续会对 r 不同取值做验证

使用element-wise product来融合全局上下文信息
V m a s k e d E M B = V m a s k ⊙ V e m b (5) V_{maskedEMB}=V_{mask}\odot V_{emb} \tag{5} VmaskedEMB=VmaskVemb(5) V m a s k e d H I D = V m a s k ⊙ V h i d d e n (6) V_{maskedHID}=V_{mask}\odot V_{hidden} \tag{6} VmaskedHID=VmaskVhidden(6)
这个逐元素乘积操作类似Hadamard Product,向量对应位置元素相乘:
V i ⊙ V j = [ V i 1 ⋅ V j 1 , V i 2 ⋅ V j 2 , ⋯   , V i u ⋅ V j u ] (7) V_i \odot V_j=[V_{i1}\cdot V_{j1},V_{i2}\cdot V_{j2}, \cdots,V_{iu}\cdot V_{ju}] \tag{7} ViVj=[Vi1Vj1,Vi2Vj2,,ViuVju](7)
instance-guided mask可以被看作为一种特殊的bit-wise attention或者是gate结构。 V m a s k V_{mask} Vmask 可以直接看作为每一个bit的权重,可以加强重要的特征,减弱噪声对模型的影响。

instance-guided mask优点

1.将逐元素乘积运算引入到DNN中,能够更有效地获取复杂的特征交互
2.强化重要特征,减弱噪声

MaskBlock

由instance-guided mask、layer normalization、hidden layer组成

layer normalization:进行z-score标准化
h = g ⊙ N ( x ) + b (8) h = g \odot N(x)+b \tag{8} h=gN(x)+b(8)
其中, N ( x ) = x − μ δ N(x)=\frac{x-\mu}{\delta} N(x)=δxμ μ = 1 H ∑ i = 1 H x i \mu=\frac{1}{H} \sum_{i=1}^{H} x_i μ=H1i=1Hxi δ = 1 H ∑ i = 1 H ( x i − μ ) 2 \delta=\sqrt{\frac{1}{H}\sum_{i=1}^{H}{(x_i-\mu)^2}} δ=H1i=1H(xiμ)2
其中, h h h 是layer normalization层的输出, ⊙ \odot 是主元素乘法操作, μ \mu μ δ \delta δ 分别是输入数据的均值和标准差, b b b g g g 是同 H H H 维度相同的参数。

for embedding layer:
相当于把每个特征当作一个layer进行layer normalization,之后concat
L N _ E M B ( V e m b ) = c o n c a t ( L N ( e 1 ) , L N ( e 2 ) , ⋯   , L N ( e i ) , ⋯   , L N ( e f ) ) (9) LN\_EMB(V_{emb})=concat(LN(e_1),LN(e_2),\cdots,LN(e_i),\cdots,LN(e_f)) \tag{9} LN_EMB(Vemb)=concat(LN(e1),LN(e2),,LN(ei),,LN(ef))(9)
for hidden layer:
L N _ H I N ( V h i d d e n ) = R e L U ( L N ( W i X ) ) (10) LN\_HIN(V_{hidden})=ReLU(LN(W_iX)) \tag{10} LN_HIN(Vhidden)=ReLU(LN(WiX))(10)
MaskBlock on Feature Embedding
在这里插入图片描述
V m a s k e d E M B = V m a s k ⊙ L N _ E M B ( V e m b ) (11) V_{maskedEMB}=V_{mask}\odot LN\_EMB(V_{emb}) \tag{11} VmaskedEMB=VmaskLN_EMB(Vemb)(11) V o u t p u t = L N _ H I D ( W i V m a s k e d E M B ) = R e L U ( L N ( W i ( V m a s k ⊙ L N _ E M B ( V e m b ) ) ) ) (12) \begin{aligned}V_{output} &= LN\_HID(W_iV_{maskedEMB}) \\ &=ReLU(LN(W_i(V_{mask}\odot LN\_EMB(V_{emb})))) \end{aligned} \tag{12} Voutput=LN_HID(WiVmaskedEMB)=ReLU(LN(Wi(VmaskLN_EMB(Vemb))))(12)
MaskBlock on MaskBlock

在这里插入图片描述
V m a s k e d H I D = V m a s k ⊙ V o u t p u t p (13) V_{maskedHID}=V_{mask}\odot V_{output}^{p} \tag{13} VmaskedHID=VmaskVoutputp(13) V o u t p u t = L N _ H I D ( W i V m a s k e d H I D ) = R e L U ( L N ( W i ( V m a s k ⊙ V o u t p u t p ) ) ) (14) \begin{aligned} V_{output} &= LN\_HID(W_iV_{maskedHID}) \\ &=ReLU(LN(W_i(V_{mask}\odot V_{output}^{p}))) \end{aligned} \tag{14} Voutput=LN_HID(WiVmaskedHID)=ReLU(LN(Wi(VmaskVoutputp)))(14)

MaskNet

在这里插入图片描述
Serial MaskNet结构类似RNN,能够对交互信息不断强化,最后一个MaskBlock模块的输出作为Prediction Layer的输入进行计算

Parallel MaskNet则是将多个MaskBlock并行,相当于多个expert提取交互信息,再将所有的输出进行concat,经过hidden layer

Prediction Layer

y ^ = δ ( w 0 + ∑ i = 1 n w i x i ) (15) \hat{y}=\delta(w_0+\sum_{i=1}^{n}{w_ix_i}) \tag{15} y^=δ(w0+i=1nwixi)(15)
loss function: logloss
L = − 1 N ∑ i = 1 N y i log ⁡ ( y ^ i ) + ( 1 − y i ) log ⁡ ( 1 − y ^ i ) (16) L=-\frac{1}{N}\sum_{i=1}^{N}{y_i\log(\hat{y}_i) + (1-y_i)\log(1-\hat{y}_i)} \tag{16} L=N1i=1Nyilog(y^i)+(1yi)log(1y^i)(16) L = L + λ ∣ ∣ Θ ∣ ∣ (17) \frak{L}=L+\lambda||\Theta|| \tag{17} L=L+λΘ(17)

Experiment

在三个公开数据集上的表现:
在这里插入图片描述
两种MaskNet网络在不同数据集上面各有优势,但整体都要比其他模型更好

论文中也做了移除MaskBlock结构中的某个部分,进行验证:
在这里插入图片描述

结果说明:使用MaskBlock完整结构的效果最好,单元中每个部分对于提取交互特征都由正向收益

几个超参的调优

embedding size

SerMaskNet:50左右最佳

ParaMaskNet:30左右最佳 -----------整体变化不大
在这里插入图片描述
block num

SerMaskNet:block num=5时最优

ParaMaskNet:block num越大越好 ==> 多个MaskBlock会提高模型性能,但时间成本会增加
在这里插入图片描述
reduction ratio(r):

不同的r对于指标影响不大
在这里插入图片描述

Reference

论文地址:https://arxiv.org/abs/2102.07619

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值