大图
FiBiNET:结合特征重要性和双线性特征交互进行CTR预估
![](https://i-blog.csdnimg.cn/blog_migrate/5d9c486e0f2787e9f4af54c2aea43662.png)
背景
本文发表在RecSys 2019,主要通过动态学习不同特征的特征重要性权重,解决CTR预估中对不同场景下不同特征的权重(ReWeight)重定义问题,同时,双线性的使用解决稀疏数据在特征交叉建模时的有效性问题。
创新
由模型结构图我们可以发现,本文核心结构主要有两个,Embedding Layer中的SENET Layer 和 Bilinear-Interaction Layer 。
-
其中 SENET Layer又包含3个步骤,分别是
- 对每个Field用Max Pool或者Mean Pool 操作的Squeeze Step;
- 对每个Field用两层FC层计算特征重要性权重的Excitation;
- 对原始每个Field利用Excitation得到的特征重要性权重重新赋权的ReWeight。
-
而 Bilinear-Interaction Layer 层提出一种结合Inner Product和Hadamard Product方式,并引入额外参数矩阵W,学习特征交叉。
主要通过3种方式得到交叉向量,分别是- Field-All Type:所有特征组交叉时共享额外参数矩阵W;
- Field-Each Type:每个特征组Field-i 维护一个参数矩阵W-i;
- Filed-Interaction Type:每对交互特征P(i,j)都有一个参数矩阵W(i,j)。
最后,Bilinear-Interaction Layer 将原始的特征Embedding向量 和 SENET层输出的Embedding向量分别得到交叉向量p和q。
效果
DSIN:利用用户时序行为中兴趣变化进行CTR预估
![](https://i-blog.csdnimg.cn/blog_migrate/48b7cb50e3043e712bbb7f203416f19a.png)
在读本文之前,我们需要先搞清楚两个概念,Sequence和Sessions。
基于用户行为Behavior Sequence进行兴趣特征挖掘的方式目前被用于绝大数的CTR任务中。Sequence和Sessions的相同点在于它们都是由Behaviors组成的,但不同的是Sessions是根据一定的规则将用户的历史点击行为Behavior 进行划分得到的,也就是说,通过用户的点击时间对Sequence进行划分后,可以得到多个Sessions。
背景
本文发表在IJCAI 2019,主要通过将用户的历史点击行为划分为不同session,然后利用Transformer对每个Session进行学习得到兴趣向量后,使用BiLSTM学习用户在多个Session之间的兴趣变化,从而更好地完成CTR预估。
创新
由模型结构图我们可以发现,本文核心结构主要有4个。
1)Session Division Layer 完成对用户历史点击行为的划分,以30分钟为划分依据,得到多个Sessions;
2)Session Interest Extractor Layer 使用Bias Encoding 方式表征不同Session间的顺序,同时考虑到用户兴趣可能来自不同因素,利用 multi-head self-attention对每个session 建模得到兴趣向量表征;
3)Session Interest Interacting Layer 在得到用户的兴趣向量表征之后,利用Bi-LSTM学习不同Session之间的由顺序带来的兴趣变化;
4)Session Interest Activating Layer 利用注意力机制学习不同Session和Item之间的相关性,混合上下文信息的兴趣信息之后,对距离Item较近的Session赋予更大的权重。
效果
DIEN:深度兴趣进化网络
![](https://i-blog.csdnimg.cn/blog_migrate/76739c0f4a56c0202b4e32c127ef6a7d.png)
背景
在推荐场景下,用户的兴趣会随着时间(如季节等)和空间(如不同场景等)的变化而发生变化,只通过用户历史数据中的兴趣因素,而不关注兴趣的变化,使得现有的一些模型无法很好地在CTR预估任务中对用户兴趣的变化进行刻画捕捉。DIEN利用双层GRU对用户兴趣序列进行刻画。
创新
由模型结构图我们可以发现,本文核心结构主要有3个。
(1)Behavior Layer 将用户浏览过的商品按照浏览时间转换成对应的embedding。
(2)Interest Extractor Layer 兴趣抽取层利用GRU提取用户兴趣特征。具体地,作者加入了一个二分类模型来计算兴趣抽取的准确性,选取下一个行为作为正样本,也从未点击的样本中选取一个作为负样本,别与抽取出的兴趣表征结合输入到设计的辅助网络中,得到预测结果,并通过logloss计算辅助网络的损失。
(3)Interest Evolution Layer 兴趣演化层,利用Attention(局部激活能力)配合 GRU(序列学习能力)的形式,,从时序特征中构建与目标Item相关的兴趣演化特征。
效果
DIN:深度兴趣网络
![](https://i-blog.csdnimg.cn/blog_migrate/87897132488738059cb05743379ab50b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5badb6e211d360aa662ea7438d8264ba.png)
在BaseModel(Embedding+MLP)中,不同维度的Embedding在最后进行拼接,这样方法通过NN可以拟合高阶非线性关系,但用户的Embedding是不变的,这就很难获取用户多兴趣的场景。
创新
(1)Attention机制使用。其实这点挺有历史的巧合,因为DIN的提出并没有借鉴已有的Attention概念,它的的出发点是看到消费者往往不是在看同一类东西,模型上如何建模用户的多峰兴趣。因为直接显示构建多峰兴趣有些麻烦,所以作者转而用反向激活函数构建一个和预测Item有关的非参数化兴趣表达。巧合的是,当DIN团队构建好模型后发现这和NLP领域刚提出的Attention结构一样,所以论文里就必须写成Attention。作者认为问题的出发点和解题思路更重要,而不是简化的看这是不是Attention。
(2)DICE激活函数的设计。由于ReLU和PReLU激活函数都是在0处进行变化,但并非所有输入都会在0处变化,因此文章设计了Dice激活函数,根据每层的输入来自适应的调整激活点的位置。
(3)GAUC的使用。相比于常用的AUC,在CTR预估场景中,不同的用户之间存在着差异,这种差异可以理解为一个闲逛的购物者和一个要买小米手机的购物者间的差异。因为AUC表示的是正样本排在负样本前面的概率,所以不能很好地解决不同用户点击率分布的差异。文章提出GAUC作为线下评估指标,通过曝光点击进行加权平均,较少用户之间个性差异对模型造成的影响。
(4)Adaptive正则化方法。CTR预估场景下,构造的模型越复杂参数越多,越容易过拟合。实际场景中,存在着大量的长尾数据,这些数据的存在一方面在训练过程中增加了复杂度,另一方面在结果上产生了过拟合。直接去掉这些长尾数据是一种简单的处理方式,但也丢掉了很多信息。因此,DIN文章中给出了自适应正则化调整的方式,对高频减小正则,对低频增大正则。
实验