MaskNet 这个CTR模型,有点意思

CTR模型相关论文,大家已经看了很多了,如FNN、DeepFm、XDeepFM等,难免会"审美疲劳",所以这些模型真的充分挖掘了交叉特征了吗?这篇论文《MaskNet: Introducing Feature-Wise Multiplication to CTR Ranking Models by Instance-Guided Mask》提出了MaskBlock更好的挖掘交叉特征,提升点击率模型的效果。

这篇论文的贡献主要如下:

  • 本文提出了一种instance-guided mask方法,该方法在DNN中的特征嵌入层和前馈层同时使用element-wise product。instance-guided mask包含全局上下文信息,动态地融入到特征嵌入层和前馈层,突出重要的特征。
  • 本文提出了MaskBlock结构,该结构由3个部分组成,分别为instance-guided mask,前馈层,normalization层。通过这种结构,把标准的DNN扩展为包含可加可乘的交互特征结构。
  • 本文提出了排序框架MaskNet,充分利用了MaskBlock作为基本单元,提出了串行MaskBlock和并行MaskBlock。
  • 在3个数据集上,MaskNet都表现最好,说明MaskBlock可以显著提升DNN挖掘复杂交互特征的能力。

v2-0b272c735057607545f85dedc8485b12_b.jpg

Embedding Layer:

关于特征,对于稀疏特征,就直接embedding成k维,对于稠密特征,通过乘一个k维的向量转换成特征,最后把所有特征concat在一起,如下所示:

v2-801ebeb561fb0318d9ebcf63ee3a3361_b.jpg

f表示特征数量,每个特征都映射成了k维度,所Embedding Layer输出了f*k维的特征向量。

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

MaskNet 这个CTR模型,有点意思_第1张图片

如上图所示,两个使用了identity function全连接的FC层,可以注意到

第一个FC层是集成层,为了充分捕捉全局上下文特征,它要比下一层更"宽"。该层的参数为Wd1,这里d表示第d个mask层。第二个FC层是投射层,通过Wd2降低维度,如下所示:

v2-8ee0da6d2de362b8c3dc2789576282b5_b.jpg

v2-ca7c5f28821f1f82355f3c174cb59729_b.jpg

v2-8abd92a8044e3029d678776089f80329_b.jpg

v2-f45ede6690fa30f9e4dd8ae0730091b7_b.jpg

这里要注意projection layer的输出维度要等于feature embedding层或者mlp层,所以z > t,令r = t/z表示衰减比率,是一个超参。

该论文提出使用element-wise product来融合全局上下文信息(提取feature embeding层或前馈网络层特征),如下式所示:

v2-6dfc226d4a66f02540de3bee092f1f2f_b.jpg

v2-a7f43e660768d7e937ea61bcb822dd17_b.jpg

instance-guided mask可以被看作为一种特殊的bit-wise attention或者是gate结构。Vmask可以直接看作为每一个bit的权重,可以加强重要的特征,减弱噪声对模型的影响。其实Vmask有点像之前一篇介绍的SENET双塔,只不过SENET是field-wise mask,这里是bit-wise mask。

MaskBlock:

了解了maskblock中最重要的instance-guided mask后,理解maskblock就很简单了,先简单回顾下layerNorm,如下式所示:

MaskNet 这个CTR模型,有点意思_第2张图片

在本文用的LN中,把每个特征都当作layer,做LN后concat在一起,如下所示:

v2-7c8b8315ef64fe89875977d54d06dc01_b.jpg

前馈层后同样使用了LN:

v2-5913858c3dcf6d5459dab4b0d3aa0db2_b.jpg

最后maskblock如下图所示:

MaskNet 这个CTR模型,有点意思_第3张图片

这个maskblock以另一个maskblock的输出和feature embedding layer为输入。相当于在maskblock的强特上,通过Vmask继续筛选强特。这种结构定义如下公式:

v2-9896663a7766642b58d969616ffe2397_b.jpg

MaskNet:

所以最后网络结构长啥样?论文给了两种方案,serial masknet和parallel masknet,如下图所示:

MaskNet 这个CTR模型,有点意思_第4张图片

MaskNet 这个CTR模型,有点意思_第5张图片

看图还是很好理解的,不赘述。最后prediction layer也比较简单,用logloss就好,还可以加上正则化。

v2-95c15f3ac837c9e53227b92e97b6c64a_b.jpg

MaskNet 这个CTR模型,有点意思_第6张图片

从实验我们可以看到serial masknet和parallel masknet在不同数据集上表现各有优劣,但是相较于其他模型都是最好的。

1.MaskNet: Introducing Feature-Wise Multiplication to CTR Ranking Models by Instance-Guided Mask


这个CTR模型,有点意思


MaskNet 这个CTR模型,有点意思_第7张图片
十方@炼丹笔记

你可能感兴趣的:(机器学习,深度学习,计算机视觉,python,算法)