[深度模型] 新浪微博点击预测模型FiBiNet

 

[深度模型] 新浪微博点击预测模型FiBiNet

[深度模型] 新浪微博点击预测模型FiBiNet 俊俊 推荐算法工程师一枚 [深度模型] 新浪微博点击预测模型FiBiNet

本人微信公众号为“推荐算法学习笔记”,定期推出经典推荐算法文章,欢迎关注。

一. 概述

本文主要介绍的paper名称为《FiBiNet: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction》

在做点击预测的时候,有一些特征是比另一些特征重要的。例如我们要预测一个人的收入,很显然他的职业比他的兴趣爱好更加重要。同时,在FM和FFM等模型当中,我们主要通过点积或Hadamard product的方法来计算特征之间的交互,是不是可以用更好的方式构造特征之间的交互?

因此,新浪微博提出了FiBiNet,通过Squeeze-and-Excitation Network(SENET)和Bilinear-Interaction的方式,来解决上述的问题。

 

 

二. 需了解的基础

需要对FM,FFM和DeepFM算法有一定的了解。如果没有,建议先阅读相关paper或资料。

 

三. 模型架构

整体模型架构如下所示

 

[深度模型] 新浪微博点击预测模型FiBiNet

 

 

 

 

 

它主要有这几个部分组成的:sparse input layer,embedding layer,SENET layer,Bilinear-Interaction layer,combination layer,multiple hidden layers和 output layer。

下面分别对这几个layer进行具体的描述。

 

四. Sparse input and Embedding Layer

Sparse input and Embedding layer在深度预测模型如DeepFM,AFM中被广泛使用。原始的高维稀疏输入特征在这里被转换成低维的embedding:E = [e1, e2, e3, ... ef]。其中f表示field(feature)的个数,ei表示第i个field的embedding,每个field的维度都是一样的,用k来表示。

 

五. SENET Layer

这一层主要借鉴CV的SENET来学习每个特征的重要性。通过一系列的转换然后再和field对应的embedding结合起来,如下图所示

 

[深度模型] 新浪微博点击预测模型FiBiNet

 

它包含三步:Squeeze,Excitation和Re-weight

(1) Squeeze

这一步主要是将每个embedding的维度做average pooling,将E = [e1, e2, e3, ... ef]转换成Z = [z1, z2, z3, ... zf],其中zi是一个scalar,i 是第i个特征。zi的计算公式如下所示

 

[深度模型] 新浪微博点击预测模型FiBiNet

 

 

 

 

 

(2) Excitation

这一层主要通过两层fully connected layers来学习每个field的权重。第一层fully connected layer首先将Z = [z1, z2, z3, ... zf]的维度降低,然后第二层fully connected layer再将Z = [z1, z2, z3, ... zf]的维度还原。公式如下所示

 

[深度模型] 新浪微博点击预测模型FiBiNet

 

其中W1是f*r维的矩阵,W2是r*f维的矩阵, r小于f。

(3) Re-weight

将原始的Embedings和(2)中得到的权重进行相乘,就得到了动态学习到特征重要性的Embeddings。如下所示

[深度模型] 新浪微博点击预测模型FiBiNet

 

 

六. Bilinear-Interaction layer

在FM和DeepFM等模型中,常常采用点积或者Hadamard product的方式来计算特征交互。而paper作者认为这种方式过于简单,不足以表达特征之间的特征交互。因此提出了Bilinear-Interaction的方式,如下图所示

 

[深度模型] 新浪微博点击预测模型FiBiNet

 

如上图的右侧所示,vi首先会乘以一个W矩阵,然后再和vj做Hadamard product。根据W矩阵的不同,有3种Bilinear-Interaction的方式

(1)Field-All Type:所有的fields共用一个W矩阵

 

[深度模型] 新浪微博点击预测模型FiBiNet

 

(2)Field-Each Type:每个field对应一个W矩阵

 

[深度模型] 新浪微博点击预测模型FiBiNet

 

(3)Field-Interaction Type:每个特征交叉对应一个W矩阵

 

[深度模型] 新浪微博点击预测模型FiBiNet

 

最终,我们将SENET Layer的Embedding经过Bilinear-Interaction转换得到p = [p1, p2, .. pn]。将初始的Embedding经过Bilinear-Interaction转换得到q = [q1, q2, .. qn]。

 

七. Combination Layer和Multiple Hidden Layers

最终,我们将p = [p1, p2, .. pn]和q = [q1, q2, .. qn]放在一起concat起来,经过多层fully connected layes后,使用sigmoid函数得出预测的结果yd。

 

八. Output Layer

将上述的yd加上线性模型,就得出我们最终的预测值,公式如下所示

 

[深度模型] 新浪微博点击预测模型FiBiNet

 

损失函数为

 

[深度模型] 新浪微博点击预测模型FiBiNet

 

 

九. 总结

以上便是FiBiNet的介绍,如果有问题,欢迎和我联系。

本人微信公众号为“推荐算法学习笔记”,定期推出经典推荐算法文章,欢迎关注。

编辑于 07-03
上一篇:A deep-learning framework for multi-levelpeptide–protein interaction prediction文章梳理


下一篇:自学opencv,day3