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挖掘复杂交互特征的能力。
Embedding Layer:
关于特征,对于稀疏特征,就直接embedding成k维,对于稠密特征,通过乘一个k维的向量转换成特征,最后把所有特征concat在一起,如下所示:
f表示特征数量,每个特征都映射成了k维度,所Embedding Layer输出了f*k维的特征向量。
Instance-Guided Mask:
通过Instance-Guided,充分利用了输入样本得到的全局上下文信息,对特征层和前馈层中重要的包含信息的特征进行强化,在DNN中引入了乘法操作,使得模型更加有效的捕捉到复杂的交互特征。
如上图所示,两个使用了identity function全连接的FC层,可以注意到
第一个FC层是集成层,为了充分捕捉全局上下文特征,它要比下一层更"宽"。该层的参数为Wd1,这里d表示第d个mask层。第二个FC层是投射层,通过Wd2降低维度,如下所示:
这里要注意projection layer的输出维度要等于feature embedding层或者mlp层,所以z > t,令r = t/z表示衰减比率,是一个超参。
该论文提出使用element-wise product来融合全局上下文信息(提取feature embeding层或前馈网络层特征),如下式所示:
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,如下式所示:
在本文用的LN中,把每个特征都当作layer,做LN后concat在一起,如下所示:
前馈层后同样使用了LN:
最后maskblock如下图所示:
这个maskblock以另一个maskblock的输出和feature embedding layer为输入。相当于在maskblock的强特上,通过Vmask继续筛选强特。这种结构定义如下公式:
MaskNet:
所以最后网络结构长啥样?论文给了两种方案,serial masknet和parallel masknet,如下图所示:
看图还是很好理解的,不赘述。最后prediction layer也比较简单,用logloss就好,还可以加上正则化。
从实验我们可以看到serial masknet和parallel masknet在不同数据集上表现各有优劣,但是相较于其他模型都是最好的。
1.MaskNet: Introducing Feature-Wise Multiplication to CTR Ranking Models by Instance-Guided Mask