论⽂笔记之FeatureGene...
FeatureGenerationbyConvolutionalNeuralNetworkforClick-ThroughRatePrediction
⽬标:CTR预估。
本⽂指出之前的CTR预估模型⼤多都基于特征交互,然⽽这些模型的问题在于相⽐于特征交互空间的规模,真正有效的特征交互往往是稀疏的,
因此在这种⼤量参数的情况下进⾏有效学习是困难的。
Wide&Deep通过在wide部分的特征⼯程来帮助deep部分的学习,然⽽,特征⼯程需要领域知识,并且代价较⾼。本⽂的想法是通过机器学习
模型来进⾏⾼效的特征交互。
如上图的右边部分,原始特征放⼊model中来产⽣新的特征,之后原始特征和产⽣的新特征进⾏组合输⼊到deepneuralnetwork中。
产⽣的新特征通过提前捕捉稀疏但是重要的特征交互来减少deepmodel的学习难度。
最直接的学习特征交互的⽅法是使⽤MLP,然后把hiddenneural作为产⽣的新特征(MLP其实可以看作是表⽰学习的过程)。然⽽,正如前⾯所提
到的,真正有效的特征交互是⾮常稀疏的,⽤MLP从这么⼤的参数空间中学习特征交互是困难的。
同时本⽂指出了直接把CNN⽤在CTR预估任务中的缺点。在CTR预估任务中,原始特征的不同排列顺序并没有不同的意义(这⼀点与cv和nlp是不
同的),如果只⽤CNN抽取局部区域的信息,那么很多有⽤的全局特征交互信息将会被丢失,这也是为什么CNN在CTR预估中表现不好的原因。
为了克服这⼀不⾜,本⽂使⽤CNN和MLP,两者是互补的,来学习global-local的特征交互信息。
本⽂提出了FeatureGenerationbyConvolutionalNeuralNetwork(FGCNN),由FeatureGeneration和DeepClassifier两部分组成。
FeatureGeneration部分,通过CNN+MLP的结构来从原始特征中产⽣新特征。CNN学习了局部区域的特征交互(local),⽽通过MLP可以将它
们进⾏组合来抽取全局的特征交互(global)。通过FeatureGeneration,组合原始特征和新的特征来扩充特征空间。
DeepClassifier部分,可以使⽤各种state-of-the-art的⽹络结构,⽐如PIN、xDeepFM、DeepFM。下⽂中,选择了IPNN作为Deep
Classifier部分。
FEATUREGENERATIONBYCONVOLUTIONALNEURALNETWORK
MODEL
后⾯⽤到的notation如下。
tureEmFeatureEmbedding
输⼊通常是onehot的,对于连续型特征⼀般会做离散化再onehot。
通过embeddinglayer将⾼维稀疏向量转为低维稠密向量。如果特征域是onehot的,那么直接embedding;如果特征域是multi-hot的,如
Interest=Football,Basketball,那么特征域的embedding为域上所有embedding之和。
对于⼀个实例,域i表⽰为⼀个低维向量ei(1*k维),有nf个域,embeddingsize为k,那么每个实例可以表⽰为⼀个embeddingmatrix(nf*k
维)
在FGCNN中,embeddingmatrixE同时⽤于FeatureGeneration和DeepClassifier,为了避免更新参数时梯度⽅向的不稳定(原⽂描述的是
inconsistency),引⼊另⼀个embeddingmatrixE'⽤于DeepClassifier,⽽E⽤于FeatureGeneration。
tureGenerFeatureGeneration
如上图,CNN通过较少的参数学习附近区域(local)有效的特征交互,之后通过recombinationlayer(⼀个全连接层)产⽣全局(global)的特征交
互。
ConvolutionalLayer
PoolingLayer
使⽤maxpoolinglayer来捕捉最重要的特征交互,并减少参数数量。poolinglayer的⾼度为hp,宽度为1,第⼀个poolinglayer的输出为
第i个poolinglayer的输出作为第i+1个卷积层的输⼊,即E_i+1=Si。
RecombinationLayer
由于CNN的特点,如果直接把S1作为新特征,那么global的特征交互将会被忽略,因此引⼊⼀个全连接层来recombinelocal的特征来产⽣新特
征。
Concatenation
如果有nc个卷积层、pooling层、recombination层的组合,那么FeatureGeneration部分产⽣的新特征为
拼接原始特征和新特征
E'为⽤于DeepClassifier部分的原始特征的embeddingmatrix。
DeepClassifer
DeepClassifier部分可以使⽤各种现有的模型,⽂中选择了IPNN进⾏说明。
NetworkStructure
看图基本上就很清晰了,IPNN的具体内容见PNN那篇paper。
此外,还可以在激活函数前加BN。Loss⽤交叉熵。
总结:这篇paper的核⼼想法在于,先学习⼀些重要的交互特征,⽽不是直接把原始数据放⼊deepmodel直接做CTR预估。
本文发布于:2022-11-26 19:22:14,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/26189.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |