【学习笔记】注意力机制的分类与总结

注意力机制的分类与总结


注意力机制最早用于做机器翻译,出现在论文《Neural Machine Translation by Jointly Learning to Align and Translate》中。

Motivation

传统的Seq2Seq模型,编码器将源序列信息编码为一个定长向量,无论序列长度多长。然而,当序列长度较长时,定长向量不足以概况其所有重要信息,势必影响解码生成效果。

通过引入注意力机制,Decoder在每次计算输出时都可以访问Encoder的中每个token的隐藏状态,并计算出每个隐藏状态的注意力权重,然后将二者加权求和得到的上下文向量作为Decoder的输入。因此,Decoder每个时间步都要重新计算一个上下文向量,优点在于,decoder 在计算输出时可以有侧重地利用source sentence中的信息,把“注意力”放在最有利于当前正确输出的信息上。

注意力权重 α t , i \alpha_{t,i} αt,i 用于衡量源句中第i个 token与Decoder的第t个输出之间的对齐程度

Bahdanau Attention vs. Luong Attention

二者的主要区别是是注意力打分函数所使用的查询向量不同。Bahdanau在打分函数中所用的查询向量是Decoder前一时刻状态 h t − 1 h_{t-1} ht1,而Luong在打分函数中所用的查询向量是Decoder当前时刻状态 h t h_t ht。K和V都是Encoder的隐藏状态,此外,在原文中,Luong还提出了点积、双线性、加性三种打分函数。

Soft Attention vs. Hard Attention

我们常用的Attention即为Soft Attention,每个权重取值范围为[0,1],依赖特征之间的关系学习权重。

对于Hard Attention来说,每个key的注意力只会取0或者1,也就是说我们只会令某几个特定的key有注意力,且权重均为1,在计算机视觉任务中用的比较多。它和local-attention 一样,仅选取部分源信息,只是hard-attention对部分源信息的选取方式是不可微的,所以它无法跟随模型得到优化。Hard Attention主要在局部特征区域进行随机crop的过程。

Global Attention vs. Local Attention vs. Hierarchical Attention

Global Attention

一般不特殊说明的话,我们采用的Attention都是Global Attention。根据原始的Attention机制,每个解码时刻,并不限制解码状态的个数,而是可以动态适配编码器长度,从而匹配所有的编码器状态。其实就是考虑所有隐藏状态,即所有Encoder的隐藏状态都作为Key进行加权。

Local Attention

在长文本中我们对整个编码器长度进行对齐匹配,可能会导致注意力不集中的问题,因此我们通过限制注意力机制的范围,令注意力机制更加有效。在LocalAttention中,每个解码器的 h t h_t ht对应一个编码器位置 p t p_t pt,选定区间大小D(一般是根据经验来选的),进而在编码器的 [ p t − D , p t + D ] [p_t-D,p_t+D] [ptD,pt+D]位置使用Attention机制,根据选择的 p t p_t pt不同,又可以把Local Attention分为Local-m和Local-p两种。Local-m:简单设置 p t p_t pt h t h_t ht对应位置: p t = t p_t=t pt=t;Local-p:利用 h t h_t ht预测 p t p_t pt,进而使用高斯分布使得Local Attention的权重以 p t p_t pt呈现峰值形状。

Hierarchical Attention

Hierarchical Attention也可以用来解决长文本(如文档)注意力不集中的问题,与Local Attention不同的是,Local Attention强行限制了注意力机制的范围,忽略剩余位置;

而Hierarchical Attention使用分层思想在所有的状态上都利用了注意力机制。该注意力网络网络可以被看作为两部分,第一部分为”词注意“部分,另一部分为“句注意”部分。整个网络通过将一个句子分割为几部分,对于每部分,都使用双向RNN结合注意力机制将小句子映射为一个向量,然后对于映射得到的一组序列向量,我们再通过一层双向RNN结合注意力机制实现对文本的分类。

Intra Attention(Self Attention) vs. Inter Attention

intra Attention又称Self-Attention。Inter Attention就是Encoder-Decoder Attention。

Self Attention就是Transformer中的Attention。其将一个句子的不同位置相互联系起来以计算该句子的特征表达,相当于把自身编码成一个特征向量。

注意力打分模型

Location(仅对目标位置进行对齐)、Cosine(计算QK的余弦相似度)、加性模型、点积、缩放点积、双线性模型。

在这里插入图片描述
主要是这四种在这里插入图片描述
其中W、U和v是可学习的网络参数,d是输入信息的维度。q是查询向量, x i x_i xi是键向量。

猜你喜欢

转载自blog.csdn.net/m0_47779101/article/details/129191780