美文网首页
推荐系统与深度学习(6): [华为 2019]FGCNN: 基于

推荐系统与深度学习(6): [华为 2019]FGCNN: 基于

作者: 银色尘埃010 | 来源:发表于2020-11-04 10:47 被阅读0次

    以下为个人对文章的理解记录,如有错误,欢迎指正~~
    如果觉得有帮助或者写的还行,点个赞呗~~~

    Liu B, Tang R, Chen Y, et al. Feature generation by convolutional neural network for click-through rate prediction[C]//The World Wide Web Conference. 2019: 1119-1129.
    原文链接:https://arxiv.org/pdf/1904.04447.pdf

    一、简介

    用户点击预测(Click Through Rate,CTR)是推荐系统中的关键任务,它可以估计用户点击一个item的概率。对于CTR预测的关键挑战是如何有效选择模型特征的交互。一般的线性模型,例如LR、FTRL虽然在实际使用中表现很好,但是缺少了学习特征交互的能力。为了克服这个限制,以FM为基础的模型被提出来,通过特征向量的内积建模成对特征的交互,并且取得了很不错的效果。随着深度学习在计算机视觉、自然语言处理中的成功。越来越多的深度学习模型也在CTR预测任务中被提出来,例如DeepFM、xDeepFM、DIN等等。这些模型将原始的特征输入到DNN中,学习显式的或者隐式的特征交互。理论上来说,DNN可以从原始的特征中学习到到任意的特征交互。然而由于有用的特征交互很稀疏,从大量的参数中学习有效的交互特征就变得很困难。
    所以在WDL模型中,通过特征工程,在wide部分加入了手工特征,效果获得了显著提升。但是特征工程(人工特征)的划分比较昂贵,而且需要领域知识。因此如果我们可以通过机器学习模型自动生成有用的特征交互,这将会变得更加的使用和稳定。
    本文中,提出了Feature Generation by Convolutional Neural Network (FGCNN)模型解决该问题。在FGCNN中,主要有两个模块: Feature Generation 和 Deep Classifier。其中Feature Generation模块利用CNN去生成local patterns并且组合生成新的特征。如果仅仅使用CNN的话,会丢失很多有用的全局特征交互,因此需要使用MLP模块。Deep Classifier则采用IPNN的结构去学习增强特征空间中的交互,学习有用的全局特征交互。需要注意的是,为了避免梯度下降的不一致性,在训练过程中,使用了两组Embedding matrix。该工作表明CTR预测的一个新方向:通过外部的模型减少DNN部分学习高阶特征的难度,本文就是通过CNN+MLP学习的特征,添加到DNN部分。如下图所示:


    CONTRIBUTIONS:
    • CTR预测的一个重要方向是:通过预先自动生成重要特征来减少深度学习模型的优化困难。
    • 提出了一种用于自动特征生成和分类的新模型FGCNN,它包括两个部分:Feature Generation 和 Deep Classifier。其中Feature Generation利用CNN去生成local patterns并且组合生成新的特征;Deep Classifier则采用IPNN的结构去学习增强特征空间中的交互。
    • 在三个数据集上的实验表明FGCNN的有效性。

    二、FGCNN模型解读

    先看看FGCNN的完整模型,模型主要包含两个部分:Feature Generation 和 Deep Classifier。除此之外还有,Feature Embedding部分。

    FGCNN完整模型

    2.1 Feature Embedding

    在输入Feature Generation和Deep Classifier之前,有一个Feature Embeding层,这也是深度学字中不可缺少的部分。将高维稀疏特征(one-hot encoding),映射到低维稠密特征中去。embedding做法和之前的一些模型都一样,比如multi-values的id特征,各自的embedding求和等。需要注意的是,为了避免梯度下降的不一致性,在训练过程中,使用了两组Embedding matrix。

    2.2 Feature Generation

    Feature Generation层是CNN+Recombination结构:其中CNN提取useful neighbor feature patterns;Recombination layer(全连接层)基于CNN提取的特征生成 global feature interactions。
    下图给出了一个具体的例子,可以先具体琢磨一下。首先经过卷积层,将N&A的信息组合到一起(useful neighbor feature patterns);然后通过池化层选出显著的特征;最后再通过Recombination layer学习全局的特征交互。



    再来看看完整模型的Feature Generation结构。
    首先看下图中的红色框框的部分,了解过CNN的就可以可以看到这是个典型的(卷积+池化)* N的通过模式,在这里这个模式的输入为raw feature(B,1,24,40),24为field的数量,40为embeding的维度。是不是就很好计算了。再看看黄色框的Recombination部分,这就是一个全连接层。以S1为例,此时的维度为(B,6,12,40),通过全连接层得到R1(New Features),(B,3,12,40)。


    Feature Generation部分

    2.3 Deep Classifier

    Deep Classifier的目的是学习Raw features和New generated features之间更加深层次的特征交互。论文中使用了IPNN模型,理论上可以使用各种advanced network。可以看出Feature Generation层只是增加了Field(Feature)的数量,假设原来只有F个Fields,通过eature Generation层生成了F_new个新的Fields,再通过连接,只是Fields的数量增加了,可以作为任何同类型CTR模型的输入。


    三、实验分析

    围绕以下五个问题,进行了完整细致的实验。


    3.1 整体表现

    回到了问题1,FGCNN在三个数据集的结果上超过了目前很多SOTAs的模型。


    3.2 FGCNN和其他模型搭配使用的有效性

    因为FGCNN之后的Deep Classifier可以是其他任何CTR模型,所以在这个实验中验证了FGCNN提升FM、DNN、DeepFM、IPNN效果。


    3.3 FGCNN变体的有效性

    为了验证FGCNN所使用的各个模块有效性。设计了这个实验。可以看作是消融分析(Ablation analysis)。


    3.4 超参数的选择

    3.5 原始特征顺序的影响

    可以看到有了Racombination layer之后实现了更好的效果和稳定性。


    四、小结

    本文通过CNN+MLP的方式学习有用的useful local features和global features,既减少了WDL手工学习的昂贵开销,又缓解了因为特征的稀疏导致DNN学习的困难。将Feature Generation提取的New features和Raw features连接,可以输入到其他任何classifier(可以是FM、DNN、IPNN、DeepFM等)中,都能提升效果。
    而且实验都很完整,从各个角度说明了FGCNN模型的有效性。在实验设计上值得个人学习。

    相关文章

      网友评论

          本文标题:推荐系统与深度学习(6): [华为 2019]FGCNN: 基于

          本文链接:https://www.haomeiwen.com/subject/bsvivktx.html