Attention在著名论文《Attention is all you need》中大放异彩,Attention 机制最早是在计算机视觉里应用的,随后在 NLP领域也开始应用了,真正发扬光大是在 NLP 领域,因为 2018 年 BERT和 GPT 的效果出奇的好,进而走红。而 Transformer和 Attention 这些核心开始被大家重点关注。
那么应用到推荐领域又该如何理解呢?
1、attention主体思想
通常对不同的item感兴趣程度、注意力分布不同,考虑对不同的item施加不同的权重,即求当前query关于不同key下的注意力分布及当前query的注意力分数。某些特征就会主导某一次的预测,就好像模型对某些特征更加专注。
2、attention机制 pipeline图示
3、Attention的计算步骤
Attention函数的本质可以被描述为一个查询(query)到一系列(键key-值value)对的映射,在计算attention时主要分为三步,
第一步是将query和每个key进行相似度计算得到权重,常用的相似度函数有点积,拼接,感知机等;
第二步一般是使用一个softmax函数对这些权重进行归一化;
第三步将权重和相应的键值value进行加权求和得到最后的attention。
目前在NLP研究中,key和value常常都是同一个,即key=value(即self-attention)。
4、attention与self-attention的区别与联系
query来自于解码层,key和value来自于编码层时叫vanilla attention,即最基本的attention。query,key和value都来自编码层的叫self-attention。
以Encoder-Decoder框架为例,输入Source和输出Target内容是不一样的,比如对于英-中机器翻译来说,Source是英文句子,Target是对应的翻译出的中文句子,Attention发生在Target的元素Query和Source中的所有元素之间。
Self Attention,指的不是Target和Source之间的Attention机制,而是Source内部元素之间或者Target内部元素之间发生的Attention机制,也可以理解为Target=Source这种特殊情况下的Attention。
两者具体计算过程是一样的,只是计算对象发生了变化而已。
最终预测结果
可以看出,这种attention单纯的根据自身交叉特征来计算一个分数,没有任何特征之间的交互。
AFM模型总结
1、主体思想:FM+Attention 考虑不同交叉特征的重要程度不同,使用attention机制对每个交叉特征的重要性进行打分,作为交叉特征的权重。
2、优点:缓解了FM存在的问题(并不是所有二阶交叉特征都是有效的,会有一些垃圾特征交叉的存在,需要施以不同的权重),利用目前比较流行的attention的概念,对每个特征交叉分配不同的attention,使没用的交叉特征权重降低,有用的交叉特征权重提高,加强模型预测能力。
3、缺点:由于这种attention的方式对训练数据的拟合表达更充分,但也更容易过拟合,因此作者除了在loss中加入正则项之外,在attention部分加入了dropout
在base model中,用户特征经过简单的平均池化后就直接送入下一层,没有区分用户特征的重要程度,也没有用户特征与广告特征之间的交互过程(实际上是有关联的),这其中会损失很多有价值得信息。
Deep Interest Model结构
在DIN中,对广告特征和用户特征计算一个权重,代表了注意力的强弱。具体得,通过将用户历史商品与当前候选广告商品同时输入至attention模块,由几层fc层学习得到分数并利用该分数对用户历史商品特征加权求和。
具体公式
值得注意的是,文章中特意提到关于attention分数是否进行归一化的讨论,即是否使用softmax进行normalization:文中提到,他们没有使用softmax对最终的score进行归一化,因为归一化会损失上式中输出vu的scale尺度的分辨率,例如,用户历史点击的80%都是服装,而当前候选广告也是服装,那么输出的结果vu的数值应该会比较大,而做了归一化后则没有这种表现。另一方面,在另一篇论文Deep Spatio-Temporal Neural Networks for Click-Through Rate Prediction中提到使用softmat的另一个缺点,当当前用户历史点击的商品都与候选商品无关时,经过了归一化后的分数都会较大,这也会影响后续的结果。
DIN模型总结
1、DIN主体思想:(1)对不同item,DIN采用local activation机制(attention)计算用户兴趣分布,使兴趣计算更adaptive。DIN可以充分表达一个用户兴趣的多样性。(2)提出了训练大规模稀疏特征网络的优化trick:mini-batch aware regularization和data adaptive activation function。
2、应用场景:电子商务领域(e-commerce industry)的CTR预估,重点在于充分利用/挖掘用户历史行为数据中的信息。
3、优点:使用了attention机制,提出了抑制过拟合效果较好的adaptive regularization,针对feature id出现的频率,来自适应调整他们的正则化强度。
4、缺点:无法捕捉用户兴趣的动态变化,深度模型非常复杂,输入非常稀疏且维度高,参数量很多,容易过拟合,需要特殊的抑制过拟合操作。
用户的历史行为是一个随时间排序的序列,存在或深或浅的前后依赖关系,AFM和DIN模型引入注意力机制仅是对不同行为重要性进行打分,这样的得分是与时间无关的,同时也是序列无关的(用户的兴趣迁移非常快,上周行为序列都会集中在篮球鞋这个品类商品上,购买完成后,本周的购物兴趣可能变成买一个机械键盘)
构建兴趣进化网络
行为序列层(把原始的id类行为转换成embedding行为序列)、兴趣抽取层(通过模拟用户兴趣兴趣迁移过程,抽取用户兴趣)、兴趣进化层(在兴趣抽取层基础上加入注意力机制,模拟与当前广告相关的兴趣进化过程)
1、兴趣抽取层(Interest Extractor Layer)
兴趣抽取层的主要目标是从embedding数据中提取出兴趣。但一个用户在某一时间的兴趣不仅与当前的行为有关,也与之前的行为相关,所以作者使用GRU单元来提取兴趣。
基本结构:GRU相对与传统序列模型RNN与LSTM,GRU解决了RNN梯度消失的问题,与LSTM相比,GRU的参数数量更少,训练收敛速度更快(GRU和LSTM它们能够保存长期序列中的信息,且不会随时间而清除或因为与预测不相关而移除)。
GRU结构:
2、兴趣进化层(Interest Evolving Layer)
相对于兴趣抽取层最大的特点是加入了注意力机制(AUGRU, GRU with Attentional Upgate gate),得分生成过程与DIN完全一致,都是当前状态向量和目标广告向量进行相互作用的结果,在模拟兴趣进化的过程中,需要考虑与目标广告的相关性(用户可能同时购买多类商品)。接下来看下AUGRU部分:
DIEN模型总结
1、DEIN主体思想:GRU+AUGRU(即Attention+GRU), 使得模型不仅对用户的历史行为时间、序列相关,还能利用attention机制来对不同用户行为的施加不同重要性的权重,解决了DIN无法动态捕捉用户兴趣的动态变化。
2、应用场景:与DIN应用场景一致。
3、优点:用序列模型模拟了用户兴趣的进化过程。
4、缺点:序列模型比较高的训练复杂度,以及在线上推断过程中的串行判断,使其在服务过程中延迟较大,无疑增大了其上线的难度,需要在工程上着重优化。实验结果难以复现。
本文展示的三种利用附加广告信息的三种模型如下图所示,(a)是不使用附加信息,(b)是简单的pooling(DSTN-Pooling Model),(c)是本文提出的交互式方法(DSTN- Self-Attention Model和DSTN - Interactive Attention Model)。
其中,交互式的方法包括两个:(1)self-attention,即每个附加广告通过神经网络学习到一个attention分数,利用这个分数进行对附加广告的加权求和,这里得self-attention和我们所熟知的self attention完全不同,只是由于其分数的学习只通过附加广告自身学习得到,所以叫self-attention,但是这种方式显然没有考虑到当前曝光的广告信息,没有动态适应的功能。另一方面,本文也指出了这种用softmax函数归一化的缺点:1、即使所有附加广告得到的分数都很小,经过归一化之后依然会较大。2、归一化后的分数进行加权求和后损失了scale上的尺度变化。(这个理由和Deep Interest Network for Click-Through Rate Prediction)里一样。
第二种交互方式:(2)将曝光广告和附加广告同时输入到attention学习网络学习到分数,公式如下,可以看出,其根据当前曝光广告和附加广告一起输入attention网络来学习分数,并且最后没有用softmax进行归一化,而是用exp将分数转化为零到正无穷的分数。
DSTN模型总结
1、DSTN主体思想:除了使用当前曝光的广告信息,还利用更多的附加广告信息(这是大多数模型无法考虑到的),文中利用了三类附加广告:上下文广告(与当前广告一同曝光在当前页面的其他广告)、用户历史点击的广告和用户历史未点击的广告。并利用attention机制,将当前曝光广告和这三类广告进行aggregation。
2、应用场景:需要考虑更多广告相互制约。
3、优点:引入辅助广告特征帮助更好的刻画CTR数据的分布,同时Attention机制的引入也能更好的提炼出辅助广告特征中对于目标广告更有用的信息、消除噪声对于模型学习的影响。
由于微信平台算法改版,公号内容将不再以时间排序展示,如果大家想第一时间看到我们的推送,强烈建议星标我们和给我们多点点【在看】。星标具体步骤为:
(1)点击页面最上方"AINLP",进入公众号主页。
(2)点击右上角的小点点,在弹出页面点击“设为星标”,就可以啦。
感谢支持,比心。
推荐阅读
征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)
完结撒花!李宏毅老师深度学习与人类语言处理课程视频及课件(附下载)
模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法
文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化
斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。
阅读至此了,分享、点赞、在看三选一吧🙏