Pytorch之经典神经网络Attention(一) —— Attention()

      Attention机制最早是在视觉图像领域提出来的,应该是在九几年思想就提出来了,但是真正火起来应该算是2014年 Google Mind团队的这篇论文《Recurrent Models of Visual Attention》,他们在RNN模型上使用了attention机制来进行图像分类。随后,Bahdanau等人在论文《Neural Machine Translation by Jointly Learning to Align and Translate》中,使用类似attention的机制在机器翻译任务上将翻译和对齐同时进行,他们的工作算是第一个将attention机制应用到NLP领域中。接着attention机制被广泛应用在基于RNN/CNN等神经网络模型的各种NLP任务中。2017年,google机器翻译团队发表的《Attention is all you need》中大量使用了自注意力(self-attention)机制来学习文本表示。自注意力机制也成为了大家近期的研究热点,并在各种NLP任务上进行探索。下图为attention研究进展的大概趋势。

加入attention之后对模型效果的提升还是很大的

attention是一种计算资源的再分配

attention机制其实只是一个框架,它不是一个具体的网络架构。有很多paper的工作都运用了attention机制,但它们的网络构型是完全不同的。也就是说attention非常的灵活

Attention

attention一般都是基于encoder-decoder结构(或者说是seq2seq)之上的

使用了attention之后的encoder-decoder结构变成了这样

即aij是由eij的来的

eij是相关性分数,计算eij的方法在不同的attention模型中是不同的,选择是多种多样的

eij的作用是关联i时刻之前decoder的隐藏输入(s_i-1)和第j个encoder的隐藏输出(hj)

注意eij本身也是通过神经网络去训练的

eij再通过一个softmax就得到了aij

attention最重要的是求α

计算score的几种不同的方法

eij就是score

刚才用的就是concat方法

ht是decoder的隐藏输出

hs是encoder的隐藏输出

Attention中的Q,K,V

在普适的注意力机制模型里面主要有三个元素query, keys, values

query是询问,key是对信息的编码,value就是编码前的本身的值

而attention机制主要是在根据k和q的相关性,过滤掉那些不太相关的key

Attention用在Sequence-to-sequence,有两个序列。对左边的序列做线性变换,得到key和value。对右边的序列做线性变换,得到query。

query的意思是“去匹配key”。

key的意思是“被query匹配”。

用query和key共同计算权重α。

用权重α对value做加权平均,得到context vector c。

query vector is fed into the attention module to estimate glimpse vector

glimpse vector

比如在翻译s的时候,在系数α的作用下,只能看到s附近的feature sequence,其余地方都是0

那么这个glimpse也就是s了

给定一组向量集合values,以及一个向量query,attention机制是一种根据该query计算values的加权求和的机制。

有时候也把这种attention的机制叫做query的输出关注了(或者说叫考虑到了)原文的不同部分。(Query attends to the values

https://colab.research.google.com/github/tensorflow/tensor2tensor/blob/master/tensor2tensor/notebooks/hello_t2t.ipynb#scrollTo=OJKU36QAfqOC

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值