今天的博客主要参考了2019年推荐系统顶会RecSys的paper《FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction》。该篇paper最大的创新点就是提出了一种自动提取特征重要性的结构SENET Layer和提取特征之间交互重要性的结构Bilinear-Interaction Layer。
下面先来展示一下整体模型的架构图:

其实和一般的CTR模型是非常相似的,原始特征Embedding经过SENET Layer之后变成了SENET-like Embedding,然后这两种Embedding一起经过Bilinear-Interaction Layer层后进入combine layer后(这里的combine layer其实就是向量的concat操作)。接下来如果是shallow part那么就直接接输出,如果是deep part的话再经过multiple hidden layer后再接输出。下面就来详细介绍一下模型中两个最重要的部件SENET Layer层和Bilinear-Interaction Layer层。
SENET Layer层

上图其实就是SENET Layer层,而这种结构其实最早是运用在图像领域的,这里作者把其用到了推荐领域。其中e1,e2,...efe_1,e_2,...e_fe1,e2,...ef是原始特征Embedding,而v1,v2,...vfv_1,v_2,...v_fv1,v2,...vf是变换后的Embedding,从e=>f只是乘以了一个权重系数,即Freweight(ei)=viF_{reweight}(e_i)=v_iFreweight(ei)=vi。具体FreweightF_{reweight}Freweight是怎么做的呢?总共分为3个步骤:
1 假设原始特征有E=[e1,...ef]E=[e_1,...e_f]E=[e1,...ef]其中f为特征field的数量,eie_iei是维度为k的Embedding向量。接下来经过变换zi=1k∑t=1kei(t)z_i=\frac{1}{k}\sum_{t=1}^{k}e_i^{(t)}zi=k1∑t=1kei(t),得到Z=[z1,...zi,..zf]Z=[z_1,...z_i,..z_f]Z=[z1,...zi,..zf](即向量i中每一维数值的平均值),其中ziz_izi为标量;
2 将得到的Z=[z1,...zi,..zf]Z=[z_1,...z_i,..z_f]Z=[z1,...zi,..zf]通过2层的全连接网络,得到权重系数输出α=[α1,...αf]\alpha=[\alpha_1,...\alpha_f]α=[α1,...αf],α=σ2(W2σ1(W1Z))\alpha=\sigma_2(W_2\sigma_1(W_1Z))α=σ2(W2σ1(W1Z)),其中W1∈Rf∗frW_1\in R^{f*\frac{f}{r}}W1∈Rf∗rf,W2∈Rfr∗rW_2\in R^{\frac{f}{r}*r}W2∈Rrf∗r是随着模型训练的参数,r作为维度的压缩系数是一个模型的超参数;
3 最后V=Freweight(α,E)=[α1∗e1,...αf∗ef]V=F_{reweight}(\alpha,E)=[\alpha_1*e_1,...\alpha_f*e_f]V=Freweight(α,E)=[α1∗e1,...αf∗ef]。
可以看出,在上述结构中模型可以自动的学习出不同field特征的重要性,将更重要的field特征赋予更高的权重,将不重要的field特征赋予更小的权重。
Bilinear-Interaction Layer层

图中列出了3中提取特征interaction的方式,其中a就是内积(inner product),b就是对位相乘(Hadamard product),而c作为本文提出的Bilinear-Interaction其实就是在b的基础上多乘了一个参数矩阵而已,pij=vi∗W⨀vjp_{ij}=v_i *W \bigodot v_jpij=vi∗W⨀vj。同时关于这个WWW参数作者提出了3种方式:
1 WWW被所有的物品交互共享,相当于增加了K∗KK*KK∗K的参数量;
2 WWW以商品iii为based,即每一个商品有一个W,即W=WiW=W_iW=Wi,相当于增加了f∗K∗Kf*K*Kf∗K∗K的参数了;
3 WWW以商品iii和商品jjj的交互为based,即W=WijW=W_{ij}W=Wij,相当于增加了f(f+1)2∗K∗K\frac{f(f+1)}{2}*K*K2f(f+1)∗K∗K的参数量。
后续作者实验部分发现,在不同的情况下这三种方式都有可能成为最优的方式。
最终作者通过大量的对比实验证明了无论是在shallow的结构中还是deep的结构中SENET Layer + Bilinear-Interaction Layer的组合使用都能比其他神经网络based的CTR模型得到最好的效果。
博客参考RecSys的paper《FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction》,介绍FiBiNET模型。该模型提出SENET Layer和Bilinear-Interaction Layer,前者可自动提取特征重要性,后者提取特征交互重要性。实验证明,二者组合在CTR预测上优于其他神经网络模型。
3477

被折叠的 条评论
为什么被折叠?



