【参考资料】:
-
目前主流的attention方法都有哪些? - JayLou娄杰的回答 - 知乎
-
目前主流的attention方法都有哪些? - 张戎的回答 - 知乎
-
Attention机制解读 - 高峰OUC的文章 - 知乎
-
Transformer详解(一)——Attention机制详解 - 被包养的程序猿丶的文章 - 知乎
-
简说Seq2Seq原理及实现 - 陈猛的文章 - 知乎
-
Attention机制简单总结 - 邱震宇的文章 - 知乎
注:本文的内容均来自上面所罗列的参考资料,只是在学习的过程中对所学的内容进行整理,感谢上面的各位大佬,让我这个nlp小白对attention有了一定的了解。
Attention机制的血缘关系:
encoder-decoder:
是一种神经网络的结构,常见的encoder和decoder可以是RNN、LSTM、GRU这些能够处理序列数据的模型。
seq2seq:
任务:输入一个序列,输出一个序列。
主要部分:encoder和decoder,encoder首先处理输入序列中的每一个item(需要做embeeding处理),并且将其转换成一个向量(context向量),然后encoder将context向量传递给decoder,decoder根据context向量一个接一个的生成输出序列中的每个item。
Attention:
从上面的encoder和decoder结构seq2seq模型可以发现,encoder只把最后一个hidden state作为context向量喂给decoder,所以这种结构在处理长句子翻译问题的时候表现并不好。为解决这个问题,Attention应运而生,Attention使得模型能够关注输入序列中与目标相关的部分。
1. 什么要引入Attention机制?
循环神经网络已经的很强的记忆能力,但想要记忆长距离的信息需要更复杂的模型,需要更强大的计算能力,而往往在很多场合计算能力是一个瓶颈,使得不能一味增加模型的复杂度来提高模型效果。
2. Attention机制的理解
引入人脑处理信息过载的方式,只选择一些关键信息进行处理,来提高神经网络的效率。在图像识别中人的面部、文本中的标题以及文章首句等位置就是关键信息。
3. Attention机制有哪些?
按照认知神经学中的注意力,可以分为两类:
-
聚焦式(focus)注意力:自上而下的有意识的注意力,主动注意--------是指有预定目的、依赖任务、主动有意识地聚焦于某一对象的注意力。
-
显著性(saliency-based)注意力:自下而上的有意识的注意力,被动注意—基于显著性的注意力是由外界刺激驱动的注意力,不需要主动干预,也和任务无关;可以将max-pooling和门控(gating)机制来近似地看做是自下而上的基于显著性的注意力机制。
在人工神经网络中,注意力机制一般就特指聚焦式注意力。
4. Attention机制的原理
上面的图是QKV模型,假设输入为 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
q
q
q,Memory 中以(
k
k
k,
v
v
v)形式存储需要的上下文。感觉在 Q&A 任务中,这种设置比较合理,transformer 是采用的这种建模方式。
k
k
k 是 question,
v
v
v是 answer,
q
q
q是新来的 question,看看历史 memory 中
k
k
k 更相似,然后依葫芦画瓢,根据相似
v
v
v,合成当前问题的答案。
decoder中的信息定义为一个Query,encoder中包含了所有可能出现的词语,我们将其作为一个字典,该字典的key为所有encoder的序列信息。n个单词相当于当前字典中有n条记录,而字典的value通常也是所有encoder的序列信息。
注意力机制可以分为三步:
-
step1-信息输入:
用X = [x1, · · · , xN ]表示N 个输入信息
-
step2-计算注意力分布α:
令Key=Value=X,则可以给出注意力分布
α
i
=
s
o
f
t
m
a
x
(
s
(
k
e
y
i
,
q
)
)
=
s
o
f
t
m
a
x
(
s
(
X
i
,
q
)
)
α_i = softmax(s(key_i,q)) = softmax(s(X_i,q))
αi=softmax(s(keyi,q))=softmax(s(Xi,q))
我们将
α
i
\alpha_i
αi称之为注意力分布(概率分布),
s
(
X
i
,
q
)
s(X_i,q)
s(Xi,q)为注意力打分机制,有几种打分机制:
这种编码方式为软性注意力机制(soft Attention),软性注意力机制有两种:普通模式(Key=Value=X)和键值对模式(Key!= Value )
关于Attention的更多内容可以在开头的参考资料中进行查阅学习。