Attention机制在深度学习推荐算法中的应用(转载)

  1. AFM:Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks

Attention机制在深度学习推荐算法中的应用(转载)

模型入上图所示,其中sparse iput,embedding layer,pair-wise interaction layer都和FM一样,后面加入了一个attention net生成一个关于特征交叉项的权重,将FM原来的二次项累加变成加权累加。这里的attention net其实很简单,就是简单的线性变换求出权重之后再和原来的输入进行加权求和。

Attention机制在深度学习推荐算法中的应用(转载)

然后加权计算得到AFM的输出:

Attention机制在深度学习推荐算法中的应用(转载)

缺点:AFM只是在FM的基础上添加了attention的机制,但实际上只利用了加权的二次项,并没有加入更深的网络去学习更高阶的非线性交叉特征,所以它的上限和FFM很接近,没有完全发挥出dnn的优势。

2. 阿里DIN:Deep Interest Network for Click-Through Rate Prediction

Attention机制在深度学习推荐算法中的应用(转载)

用户的历史行为数据是有多个的,在计算新的候选商品的ctr时,可以将用户多个历史行为的embedding加个average pooling平均一下,但是这样没有办法建模出不同历史行为对目标预测的影响程度。DIN中加入了一种Attention机制来使得模型对用户相关的行为历史看重一些,对不相关的历史甚至可以忽略的效果。

Attention机制在深度学习推荐算法中的应用(转载)

上式中,Attention机制在深度学习推荐算法中的应用(转载)是用户的embedding向量,Attention机制在深度学习推荐算法中的应用(转载)是候选广告商品的embedding向量,Attention机制在深度学习推荐算法中的应用(转载)是用户u的第i次行为的embedding向量,因为这里用户的行为就是浏览商品或店铺,所以行为的embedding的向量就是那次浏览的商品或店铺的embedding向量。Attention机制在深度学习推荐算法中的应用(转载)从过去Attention机制在深度学习推荐算法中的应用(转载)的加和变成了Attention机制在深度学习推荐算法中的应用(转载)的加权和,Attention机制在深度学习推荐算法中的应用(转载)的权重Attention机制在深度学习推荐算法中的应用(转载)就由Attention机制在深度学习推荐算法中的应用(转载)Attention机制在深度学习推荐算法中的应用(转载)的关系决定,也就是上式中的Attention机制在深度学习推荐算法中的应用(转载)

那么怎么计算g呢,传统的做法可以直接将用户embedding u和候选商品embedding v做点积或者uWv。DIN的做法是将u、v和两者之间的差值这三个向量合并起来作为输入,输入到mlp中得到权重。

3. 阿里DIEN:Deep Interest Evolution Network

Attention机制在深度学习推荐算法中的应用(转载)

DIEN先用GRU从用户的行为序列中去抽取兴趣,然后通过带attention的GRU单元来寻找与目标item相关的兴趣点。其中attention计算方式为:

Attention机制在深度学习推荐算法中的应用(转载)

其中Attention机制在深度学习推荐算法中的应用(转载)表示一个目标item中不同field特征的embedding向量的concat,可以看到这里的attention是一种很传统的u*W*v的方式,然后将求得的attention权重结合GRU一起使用。

4. 阿里DSIN:Deep Session Interest Network for Click-Through Rate Prediction

Attention机制在深度学习推荐算法中的应用(转载)

有三处用到了attention的结构,首先在 Session Interest Extractor Layer中,使用了transformer来处理每个session,得到一个d维的向量。多个session的d维向量经过双向LSTM得到隐层状态ht。

另外两处用到attention的地方在Session Interest Activating Layer中,使用了和DIEN中一样的attention结构来刻画用户的会话兴趣与目标物品的相关性、LSTM得到隐层状态ht与目标物品的相关性。

Attention机制在深度学习推荐算法中的应用(转载)Attention机制在深度学习推荐算法中的应用(转载)

最后把四部分向量:用户特征向量、待推荐物品向量、会话兴趣加权向量UI、带上下文信息的会话兴趣加权向量UH进行concat,输入到全连接层中,得到输出。

5. 阿里:Behavior Sequence Transformer for E-commerce Recommendation in Alibaba

Attention机制在深度学习推荐算法中的应用(转载)

将用户的行为序列先通过embedding层处理,然后经过了一个Transformer层。

6. 阿里:Deep Spatio-Temporal Neural Networks for Click-Through Rate Prediction

Attention机制在深度学习推荐算法中的应用(转载)

输入包括目标广告的信息、上下文广告信息、点击广告信息、曝光未点击广告信息,经过embedding层,然后有两种attention方式,第一种是self-attention方式:

Attention机制在深度学习推荐算法中的应用(转载)

其实就是比如上下文的embedding表示 Attention机制在深度学习推荐算法中的应用(转载) 输入到一个函数f中,得到标量输出 Attention机制在深度学习推荐算法中的应用(转载) ,然后通过softmax将每个上下文item的权重归一化到0-1之间,随后基于权重进行加权求和。缺点就是没有考虑target ad的信息。

另外一种attention方式是交互式的,并且加入了目标广告的信息 Attention机制在深度学习推荐算法中的应用(转载) :

Attention机制在深度学习推荐算法中的应用(转载)

7. ATRank: An Attention-Based User Behavior Modeling Framework for Recommendation

Attention机制在深度学习推荐算法中的应用(转载)

分为原始特征空间(raw feature spaces)、行为嵌入空间(behavior embedding spaces)、隐语义空间(latent semantic spaces)、行为交互层(behavior interaction layers)、下游网络层(downstream application network)

模型中用到attention的地方在latent semantic spaces层后面,latent semantic spaces层的目的是将每个行为组中的向量通过线性变换到多个不同的语义空间,然后采用self-attention结构:

Attention机制在深度学习推荐算法中的应用(转载)

其中S是整个语义层拼接后的输出,Sk 是第 k 个语义空间上的投影。

Attention机制在深度学习推荐算法中的应用(转载)

经过 self-attention 后,第K个语义空间的向量表示为:

Attention机制在深度学习推荐算法中的应用(转载)

Attention机制在深度学习推荐算法中的应用(转载) 是将S映射到第k个语义空间的另一个转换函数,文中用的一层的MLP。

总结:可以看出深度学习推荐模型中,使用的attention可以分为两大类,一类是self-attention(比如ATRank),一类是传统的soft attention(主要都是u*W*v形式,比如DIEN,DSIN等),u表示用户行为历史中一个item的embedding,v是待推荐的目标item。求出乘积,通过softmax函数就可以得到用户历史行为中每个item的权重。另外DIN的做法比较特殊,是将u、v和两者之间的差值这三个向量合并起来作为输入,输入到mlp中得到用户历史行为中每个item的权重。

参考文献:

参考文献: https://zhuanlan.zhihu.com/p/78015378

上一篇:shell 脚本之判断语句 if 详解


下一篇:Hibernate第一篇【介绍Hibernate,简述ORM,快速入门】