前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >RS Meet DL(59)-FM家族的新朋友FAT-DeepFFM

RS Meet DL(59)-FM家族的新朋友FAT-DeepFFM

作者头像
石晓文
发布2019-08-06 16:22:03
1.4K0
发布2019-08-06 16:22:03
举报
文章被收录于专栏:小小挖掘机小小挖掘机

今天给大家介绍的文章标题是:《FAT-DeepFFM: Field Attentive Deep Field-aware Factorization Machine》 文章下载地址是:https://arxiv.org/abs/1905.06336

从本系列的第一篇开始,咱们已经陆续介绍过FM模型、FFM模型、DeepFM模型、NFM模型和AFM模型。今天给大家介绍的是FM家族中的另一个新朋友FAT-DeepFFM(全称是Field Attentive Deep Field- aware Factorization Machine),是由新浪微博的张俊林老师提出的哟,一起来学习下。

1、背景

点击率预估是计算广告以及推荐系统中非常重要的工作,学者们也提出了许多有效的模型来做CTR预估任务。如LR、树模型、贝叶斯模型、FM模型、FFM模型,以及深度学习模型如DeepFM、Wide & Deep模型等等。

同时,CTR模型中也经常借鉴其他领域的一些常用方法,如计算机视觉和自然语言处理中常用的方法,最为常见的是Attention机制。使用Attention机制可以从众多的特征中选择出比较重要的特征,并过滤掉一些无关特征。将注意力机制和深度学习CTR预估模型相结合,如AFM模型已经被学者们提出,AFM模型结构如下:

可以看到,上面的AFM模型,是在特征进行交叉之后,再对交叉特征进行权重计算,但本文认为,在特征进行交叉之前,对特征的重要性进行一个计算也十分重要。当特征为n个时,交叉后计算重要性的权重个数为n的平方,但是交叉前计算特征重要性的话,只需要计算n个权重。这么做的话在特征比较多的时候,对计算资源的节省是十分明显的。

好了,接下来,咱们就一步步来看看俊林老师提出的模型吧。

2、DeepFFM模型

在介绍FAT-DeepFFM之前,先介绍DeepFFM模型长什么样子,因为这个模型对大家来说应该也相当陌生。

2.1 FM模型

FM模型对每一个特征赋予一个k维的向量,并通过对应向量的内积来当作特征交叉的权重,其预估公式如下:

2.2 FFM模型

相较于FM模型,FFM模型提出了Field的概念,假设有n个域的话,每一个特征都对应了n-1个k维的向量,其预估公式如下:

2.3 DeepFFM模型

FM和深度神经网络相结合,我们已经有了DeepFM模型,很自然的,FFM和深度神经网络相结合,就有了DeepFFM模型,其模型结构如下图所示:

如图所示,我们的特征首先被转换成一堆one-hot encoding,每一个one-hot encoding可以看作一个field,如性别、周几等等。

还是想说一下本文的特征和field定义,比如有两个域,性别和周几,那么特征数量是2+7=9,当然你也可以认为是3 + 8=11,两个域各加一个未知选项嘛。

接下来在Embedding matrix layer,每一个特征将会得到一个对应的Embedding Matrix,简称EM,如对于第I个特征:

假设有n个域,每个特征对应的EM的大小为k * n,整个EM层的大小为k * n * n (这里每个特征对应n个k维向量,而非n-1个,但实际参与计算和更新的只有n-1个)。

接下来,有两种方式得到DNN部分的输入,分别是计算内积和哈达玛积:

哈达玛积的计算公式如下(文中这里感觉写错了,圆圈中间应该是乘号而非加号):

可以看到,如果使用内积的话,输入DNN的维度是n(n-1)/2的,如果使用哈达玛积的话,输入DNN的维度应该是kn(n-1)/2。随后经过多层神经网络:

而最终DeepFFM的输出为:

至此DeepFFM就介绍完了,和DeepFM有点不一样,DeepFM保留了FM中的一次项、二次项(特征交叉项),但DeepFFM中,只计算了一次项,二次项没有保留,也许是出于计算时间的考虑吧。

3、FAT-DeepFFM模型

好了,接下来介绍FAT-DeepFFM模型,与大多数模型借鉴的自然语言处理中的注意力机制不同,这里引入的注意力机制来源于图像领域的SENet,一起来看一下。

FAT-DeepFFM模型的整体的结构如下:

而注意力机制发挥作用的部分是:

论文中提出的Attention机制称为CENet Field Attention,全称为Compose-Excitation network (CENet) attention mechanism。接下来,咱们就来一步步解读这个Attention过程。

3.1 CENet Field Attention

这里Attention的过程分为两个阶段,分别称作Compose阶段和Excitation阶段。

Compose阶段

在Compose阶段,需要把每一个向量压缩成一维的值,每一个特征对应的Embedding Matrix是k * n,压缩之后变为一个n维的向量,如下图所示:

假设当前是第i个特征,对应的特征矩阵是EMi,EMi中的列向量分别是vi1,vi2,...,vin其压缩后对应的向量是zi。

对于SENet来说,直接对每一列使用max pooling来得到值,具体的,对于zi中的第f个值,通过下面的式子得到:

在本文中,对这种方式进行了一定的修改,使用1维卷积:

这里的卷积核是1 * 1的。有关1维卷积以及1*1卷积核,这里我一开始理解有误,认为论文里写的是错误的,不过经指正这里应该是没错的,感兴趣的小伙伴可以看下1维卷积、1*1卷积以及1*1卷积和全连接的区别。待我总结归来,一定将经验分享给大家。

Excitation阶段

经过Compose阶段,每个特征对应的Embedding Matrix,都得到了一个对应的n维压缩向量,例如特征i对应的n维压缩向量计作DVi,那么在Excitation阶段,我们首先对DV进行横向拼接:

这里D是n * n维的向量,接下来将D输入到两层全连接网络中:

从上图可以看出,经过全连接网络之后输出的S仍然是n * n维的向量,S便是我们想要得到的attention score。

利用attention score就可以对我们Embedding Matrix进行加权了,例如第i个特征:

到了这一步,剩下的就跟DeepFFM里面所讲的一致啦,这里就不细讲啦。

4、实验及总结

论文在两个数据集上进行了实验,结果如下:

可以发现,FAT-DeepFFM的效果好于其他对比模型,同时,使用哈达玛积的时候效果会比使用内积效果更好。

这篇论文应该放出来有一段时间了,俊林老师也在知乎上介绍了这个思路,今天看了一下其主要创新点还是在于attention的计算吧,借鉴了图像领域的思路,还是值得尝试一下的。

感兴趣的同学,可以点击原文看下俊林老师在知乎上对该模型的解读。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小小挖掘机 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、背景
  • 2、DeepFFM模型
    • 2.1 FM模型
      • 2.2 FFM模型
        • 2.3 DeepFFM模型
        • 3、FAT-DeepFFM模型
          • 3.1 CENet Field Attention
            • Compose阶段
            • Excitation阶段
        • 4、实验及总结
        相关产品与服务
        NLP 服务
        NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档