一种能自动抽取特征与特征interaction重要性的CTR模型

博客参考RecSys的paper《FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction》,介绍FiBiNET模型。该模型提出SENET Layer和Bilinear-Interaction Layer,前者可自动提取特征重要性,后者提取特征交互重要性。实验证明,二者组合在CTR预测上优于其他神经网络模型。

今天的博客主要参考了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=k1t=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}}W1RfrfW2∈Rfr∗rW_2\in R^{\frac{f}{r}*r}W2Rrfr是随着模型训练的参数,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)=[α1e1,...αfef]
可以看出,在上述结构中模型可以自动的学习出不同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=viWvj。同时关于这个WWW参数作者提出了3种方式:
1 WWW被所有的物品交互共享,相当于增加了K∗KK*KKK的参数量;
2 WWW以商品iii为based,即每一个商品有一个W,即W=WiW=W_iW=Wi,相当于增加了f∗K∗Kf*K*KfKK的参数了;
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)KK的参数量。
后续作者实验部分发现,在不同的情况下这三种方式都有可能成为最优的方式。

最终作者通过大量的对比实验证明了无论是在shallow的结构中还是deep的结构中SENET Layer + Bilinear-Interaction Layer的组合使用都能比其他神经网络based的CTR模型得到最好的效果。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值