美文网首页
FiBiNET模型

FiBiNET模型

作者: 缄默笔记 | 来源:发表于2019-10-06 00:15 被阅读0次

论文:FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction

https://arxiv.org/abs/1905.09433

简介

(1)FiBiNET通过SENET(Squeeze-and-Excitation network)机制动态学习特征重要性;

(2)当前的许多通过特征组合进行 CTR 预估的工作主要使用特征向量的内积或哈达玛积来计算交叉特征,这两种方法比较简单,在稀疏数据集上,很难有效地对特征交叉进行建模,文章提出一种双线性函数学习特征交叉。

1 网络结构

结构主要包含:输入层、Embedings层、SENET层、Bilinear-Interaction层、Combination层和DNN层。

2 SENET Layer

2.1 SENet

SeNet来源于CV,结构如下,包括三个过程:

(1)Squeeze:顺着空间维度来进行特征压缩,将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野,并且输出的维度和输入的特征通道数相匹配。它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获得全局的感受野,这一点在很多任务中都是非常有用的。

(2)Excitation:它是一个类似于循环神经网络中门的机制。通过参数 w 来为每个特征通道生成权重,其中参数 w 被学习用来显式地建模特征通道间的相关性。

(3)Scale:将 Excitation 的输出的权重看做是进过特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定。

使用 global average pooling 作为 Squeeze 操作。紧接着两个 Fully Connected 层组成一个 Bottleneck 结构去建模通道间的相关性,并输出和输入特征同样数目的权重。我们首先将特征维度降低到输入的 1/16,然后经过 ReLu 激活后再通过一个 Fully Connected 层升回到原来的维度。这样做比直接用一个 Fully Connected 层的好处在于:

1)具有更多的非线性,可以更好地拟合通道间复杂的相关性;

2)极大地减少了参数量和计算量。然后通过一个 Sigmoid 的门获得 0~1 之间归一化的权重,最后通过一个 Scale 的操作来将归一化后的权重加权到每个通道的特征上。

2.2 SENET Layer

SENET层包含Squeeze、Excitation和Re-Weight三个过程:

Squeeze:输入为embeding层输出,对于embeding层的每个fields,进行pooling(均值pooling优于sum-pooling),维度由fields_num * embeding_size转化为fields_num

Excitation:连接两个fc层,先进行降维,然后升维到fields_num维度,得到每个fields的权重

Re-Weight:embeding层每个fields乘以对应权重,得到最终结果

3 Bilinear-Interaction Layer

传统的特征交叉方式广泛采用了内积 ( fm,ffm 等 ) 和哈达玛积 ( AFM,NFM 等 )。而这两种方式在稀疏数据上很难有效对特征交叉进行建模。文章提出结合内积和哈达玛积并引入一个额外的参数矩阵 W来学习特征交叉,

4 Combination Layer

(1)Combination层把embeding层原始输出交叉结果和SENET层输出交叉结果拼接在一起

(2)如果对Combination层输出,求和后直接接入sigmoid,则得到一个浅层网络

(3)如果对Combination层输出,接入DNN网络,则得到一个深层网络

(4)假如去掉SENET layer 和 Bilinear-Interaction layer,模型可以看作FNN模型,再去掉DNN部分,可以看作传统的FM模型

5 模型效果

4.1 浅层网络

4.2 深层网络

参考:

[1] RecSys19 | FiBiNET:结合特征重要性和双线性特征交互进行 CTR 预估

[2] Momenta详解ImageNet 2017夺冠架构SENet

相关文章

  • FiBiNET模型

    论文:FiBiNET: Combining Feature Importance and Bilinear fea...

  • 有哪些主要的软件生存期模型

    生存期模型主要有:瀑布模型、原型开发模型(快速原型模型、演化模型、增量模型)、螺旋模型、喷泉模型、基于知识的模型和...

  • 【原创】产品生命周期模型

    产品生命周期模型有:瀑布模型、快速原型模型、迭代模型、螺旋模型、W模型、V模型。 瀑布模型(Waterfall M...

  • 三阶段day18-flask

    flask模型 模型定义 模型迁移及增删改 模型查看 模型分页

  • 敏捷开发(适合产品经理看)

    在软件工程领域,有过很多软件开发模型,如瀑布模型、快速原型模型、增量模型、螺旋模型、演化模型、喷泉模型、RAD模型...

  • Swift 字典转模型

    这里探讨字典转模型中模型的类型单一模型模型嵌套 (模型中包含模型 || 模型中包含模型数组) Swfit的字典转模...

  • 一些常见模型类型与分类的初步讨论

    提要:讨论了一些常见的模型类型,例如比例模型或实物模型、物理模型、数学模型、理论模型,以及图像作为模型、描述性模型...

  • 几种软件模型的比较

    几种软件模型 瀑布模型 快速原型模型 螺旋模型 增量模型 统一过程模型 RUP 瀑布 快速模型的区别 RUP 瀑布...

  • 框架_Django_2

    Django模型(MTV_Model) 什么是模型 配置数据 模型开发 模型属性 模型查询 字段查询 模型成员 模...

  • 23.1 信息系统综合测试与管理

    软件测试模型 软件测试模型总表 1. V模型 V模型及优缺点 2. W模型 W模型及优缺点 3. H模型 H模型及...

网友评论

      本文标题:FiBiNET模型

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