FiBiNET:结合特征重要性和双线性特征交互进行CTR预估

FiBiNET模型结合Squeeze-Excitation网络(SENET)学习特征重要性和双线性交互来改进CTR预估。SENET层通过挤压和兴奋操作动态调整特征权重,而双线性交互层则采用多种类型来更好地建模特征交叉,提高预估准确性。实验在criteo和avazu数据集上展示了优于其他模型的性能。
摘要由CSDN通过智能技术生成

简介

本文主要介绍新浪微博机器学习团队发表在RecSys19上的一项工作。
文章标题为 FiBiNET: Combining Feature Importance and Bilinear feature Interaction for Click-Through Rate Prediction

文章指出当前的许多通过特征组合进行CTR预估的工作主要使用特征向量的内积或哈达玛积来计算交叉特征,这种方法忽略了特征本身的重要程度。提出通过使用Squeeze-Excitation network (SENET) 结构动态学习特征的重要性以及使用一个双线性函数来更好的建模交叉特征。

下面对该模型进行一个简单的介绍并提供核心代码实现以及运行demo,细节问题请参阅论文。

模型结构

整体结构

#
图中可以看到相比于我们熟悉的基于深度学习的CTR预估模型,主要增加了SENET LayerBilinear-Interaction Layer两个结构。下面就针对这两个结构进行简单的说明。

SENET Layer

SENET Layer的主要作用是学习不同特征的一个重要程度,对重要特征加权,对蕴含信息量不多的特征进行削弱。对于该结构的更详细的介绍可以参考论文Squeeze-and-Excitation Networks

该使用特征组的embedding向量作为输入,产生一个特征组权重向量 A = [ a 1 , . . . , a i , . . . a f ] A=[{a_1,...,a_i,...a_f}] A=[a1,...,ai,...af],最后将原始特征组embedding向量 E E E乘上 A A A得到一组新的embedding向量 V = [ v 1 , . . . , v i , . . . v f ] V=[{v_1,...,v_i,...v_f}] V=[v1,...,vi,...vf]
具体来说,分为3个步骤:

Squeeze

在这里插入图片描述
这一步主要是对每个特征组中的embedding向量进行汇总统计量的操作。文章使用了池化操作来对原始特征组embedding向量 E = [ e 1 , . . . , e f ] E=[e_1,...,e_f] E=[e1,...,ef]进行压缩表示得到统计向量 Z = [ z 1 , . . . , z i , . . . z f ] Z=[z_1,...,z_i,...z_f] Z=[z1,...,zi,...zf],其中 z i z_i zi表示第 i i i个特征的全局信息。 z i z_i zi可以通过如下的平均池化的方式计算得到:
z i = F s q ( e i ) = 1 k ∑ t = 1 k e i ( t ) z_i=F_{sq}(e_i)=\frac{1}{k}\sum_{t=1}^ke_i^{(t)} zi=Fsq(ei)=k1t=1ke

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值