浅析Attention在推荐系统中的应用(3)AutoInt模型

欢迎关注本人公众号: petertalks

专栏目录:

浅析Attention在推荐系统中的应用(1)Attention简介

浅析Attention在推荐系统中的应用(2)阿里Deep Interest Network模型

浅析Attention在推荐系统中的应用(3)AutoInt模型

浅析Attention在推荐系统中的应用(4)Transformer与阿里BST模型

 

前言

前面的文章介绍了attention机制和它的一些应用,本文主要向大家介绍一下CIKM 2019的一篇文章《AutoInt: Automatic Feature Interaction Learning via Self-Attentive Neural Networks》。该文主要介绍了一种名叫AutoInt的模型,该模型以multi-head self-attention为基础在将高维稀疏特征(包括连续特征和类别特征)映射到低维空间的同时建模高级特征交叉。相比其他的显示特征交叉的模型如Deep cross network、xDeepFM等具有更高的效率和可解释性。

 

背景与动机

CTR预估问题在广告和推荐系统中有着特别重要的地位。而机器学习又在CTR预估中扮演重要角色,其中存在着很多挑战。首先输入的往往是离散化后的高维稀疏特征,很容易造成模型过拟合;其次模型要取得较好的效果做好高阶特征的交叉工作是少不了的,但这块相当依赖人工经验,耗费着相当大的人力。所以业界为能将高阶特征映射到低维并且自动建模高阶特征交叉做了不少的努力和尝试。

这边的尝试总体来讲可以分成几块:

1)以NFM、PNN、FNN、DeepFM等网络为代表的采用隐式的方法利用前向网络去拟合高阶特征交叉,这类方法缺乏较好的可解释性。

2)以Deep&Cross和xDeepFM为代表的网络采用特征外积的方式显示构造高阶特征交叉,但是这种方法也无法直接解释出哪些特征交叉是更为有效。

3)一些树模型结合了embedding和树模型的优势,但却不得不将训练分成多个阶段。

4)HOFM等高阶因子分解机,但这类模型需要太多参数,难以投入实践。

为此这篇文章借鉴了attention和图像领域常用的residual network,提出了AutoInt模型。

 

模型

 

模型概览

AutoInt模型的结构如下图所示

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

整体结构较为清晰,首先是稀疏特征X(包括类别特征和连续特征)作为输入,通过Embedding层映射成低维embedding向量,紧接将向量输入到Interacting Layer,通过multi-head self-attention,捕获高阶特征交叉。这边采用multi-head可将特征映射到不同的空间获得不同类型的特征组合,通过叠加多个Interacting Layer可以实现不同阶的建模。最后将Interacting Layer产生的向量输入到输出层,通过sigmoid函数预估CTR。接下来让我们来具体看一下每一个模块。

 

模型输入层与Embedding层

模型的输入是离散化后的User和Item的属性特征,每个field代表一类特征,将这些特征concat到一起作为输入。

浅析Attention在推荐系统中的应用(3)AutoInt模型

到了Embedding层,对于类别特征直接获得Embedding,对于多值类的特征直接采用average pooling的方式取均值。

浅析Attention在推荐系统中的应用(3)AutoInt模型

这边值得注意的一点是该模型将连续值特征也进行了Embedding映射,这边的做法是对每个field学到一个Embedding,然后直接用特征值和这个field对应的Embedding相乘。

浅析Attention在推荐系统中的应用(3)AutoInt模型

最后将不同field的embedding concat到一起作为下一层输入。

 

特征交叉层

该层为整个模型的核心部分,如下图

浅析Attention在推荐系统中的应用(3)AutoInt模型

很容易看出,该层的核心就是该专栏第一篇文章所介绍的multi-head self-attention。这边来复习一下公式,首先是self-attention

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

 

再来看一下multi-head attention

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

 

AutoInt中通过引入self attentin来刻画不同field之间的关联关系,加权后得到指定head处的embedding

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

 

然后将不同head的输出concat到一起,获得不同空间的交叉

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

为了保留原始特征,接下来引入了残差网络的结构

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

通过重复叠加上述的结构,我们可以得到任意不同阶的组合特征。

 

输出层

该层的输入包括残差网络(residual block)保留的原始特征和multi-head self-attention产生的交叉特征。将所有特征concat到一起后,用非线性映射直接得到预估结果。

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

 

训练目标

这边的Loss直接采用交叉熵的方式

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

通过反向传播学习出

浅析Attention在推荐系统中的应用(3)AutoInt模型

 

复杂度分析

空间复杂度

浅析Attention在推荐系统中的应用(3)AutoInt模型

,时间复杂度

浅析Attention在推荐系统中的应用(3)AutoInt模型

,一般来讲H,d,d’都较小,所以时间复杂度和空间复杂度都不会太高。

 

实验结果

实验数据

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

数据预处理

1) 采用频次过滤,对于低于阈值的特征直接设成<unkown>。

2) 对于连续型特征采用和Criteo大赛冠军一样的处理,

浅析Attention在推荐系统中的应用(3)AutoInt模型

3)采用80%的数据作为训练集,随机平均切分成验证集和测试集。

4) batch size=1024,嵌入维度 d=16,Adam优化器。对小数据集MoveLens使用dropout=0.5

5)AutoInt中,Attention转化矩阵维度d’=32, 3层Interacting,每层2个attention head

6)DeepCross—4隐层+每层100 node,NFM—1隐层+200 node,CrossNet和CIN—3隐层

实验结果

实验一 单独模块

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

实验二 性能对比

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

实验三 残差、Interacting层数、嵌入维度等对效果的影响

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

实验四 模型都加上Deep部分

 

浅析Attention在推荐系统中的应用(3)AutoInt模型

AutoInt的效果最好,而且相比其他模型加上Deep部分后提升的幅度最小,这也证明了AutoInt模型结构的有效性。

 

参考文献:

https://arxiv.org/pdf/1810.11921.pdf

https://zhuanlan.zhihu.com/p/60185134

https://arxiv.org/abs/1706.03762

https://zhuanlan.zhihu.com/p/69701477

https://zhuanlan.zhihu.com/p/95605853