进阶:https://zhuanlan.zhihu.com/p/35739040
Attention机制的具体计算过程,如果对目前大多数方法进行抽象的话,可以将其归纳为两个过程: 第一个过程是根据Query和Key计算权重系数,第二个过程根据权重系数对Value进行加权求和。 而第一个过程又可以细分为两个阶段: 第一个阶段根据Query和Key计算两者的相似性或者相关性,求相似性方法有点乘,权重,余弦相似性等; 第二个阶段对第一阶段的原始分值进行归一化处理; 可以将Attention的计算过程抽象为三个阶段。
注意力机制模仿了生物观察行为的内部过程,即一种将内部经验和外部感觉对齐从而增加部分区域的观察精细度的机制。例如人的视觉在处理一张图片时,会通过快速扫描全局图像,获得需要重点关注的目标区域,也就是注意力焦点。然后对这一区域投入更多的注意力资源,以获得更多所需要关注的目标的细节信息,并抑制其它无用信息。
encoder过程将输入的句子转换为语义中间件,decoder过程根据语义中间件和之前的单词输出,依次输出最有可能的单词组成句子。
1、Encoder-Decoder框架
目前大多数的注意力模型都是依附在 Encoder-Decoder 框架下,但并不是只能运用在该模型中,注意力机制作为一种思想可以和多种模型进行结合,其本身不依赖于任何一种框架。Encoder-Decoder 框架是深度学习中非常常见的一个模型框架,例如在 Image Caption 的应用中 Encoder-Decoder 就是 CNN-RNN 的编码 - 解码框架;在神经网络机器翻译中 Encoder-Decoder 往往就是 LSTM-LSTM 的编码 - 解码框架,在机器翻译中也被叫做 Sequence to Sequence learning 。
所谓编码,就是将输入的序列编码成一个固定长度的向量;解码,就是将之前生成的固定向量再解码成输出序列。这里的输入序列和输出序列正是机器翻译的结果和输出。
为了说明 Attention 机制的作用,以 Encoder-Decoder 框架下的机器翻译的应用为例,该框架的抽象表示如下图:
1.1 局限性
Encoder-Decoder 框架虽然应用广泛,但是其存在的局限性也比较