菜鸟笔记
提升您的技术认知

注意力机制最新综述解读

注意力模型(Attention Model,AM)已经成为神经网络中的一个重要概念,并在不同的应用领域进行了充分的研究。这项调查提供了一个结构化和全面的概述关于attention的发展。我们回顾了注意力机制被纳入的不同的神经网络结构,并展示了注意力如何提高神经网络的可解释性。最后,我们讨论了在实际应用中,注意力机制取得的重要影响。我们希望这项调查能够为注意力模型提供一个简明的介绍,并在开发应用方法的同时指导实践者。

 

1. Introduction

注意力模型(AM)最初被用于机器翻译[Bahdanau et al., 2014],现在已成为神经网络领域的一个重要概念。在人工智能(Artificial Intelligence,AI)领域,注意力已成为神经网络结构的重要组成部分,并在自然语言处理、统计学习、语音和计算机等领域有着大量的应用。

Fig.1 Yelp评论情感分类中的注意建模实例题

注意力机制可以利用人类视觉机制进行直观解释。例如,我们的视觉系统倾向于关注图像中辅助判断的部分信息,并忽略掉不相关的信息[Xu et al., 2015]。同样,在涉及语言或视觉的问题中,输入的某些部分可能会比其他部分对决策更有帮助。例如,在翻译和总结任务中,输入序列中只有某些单词可能与预测下一个单词相关。同样,在image-caption问题中,输入图像中只有某些区域可能与生成caption的下一个单词更相关。注意力模型通过允许模型动态地关注有助于执行手头任务的输入的某些部分,将这种相关性概念结合起来。使用注意力模型对Yelp评论进行情绪分类的示例如图1所示[Yang et al., 2016]。在这个例子中,AM了解到在五个句子中,第一句和第三句更相关。此外,这些句子中的“美味 delicious ”和“神奇 amazing”这两个词更有意义地决定了评论的情感。

神经网络中建模注意力的快速发展主要有三个原因。首先,这些模型现在是解决多任务最先进的模型[Young et al., 2018],如机器翻译、问题回答、情绪分析、词性标记、对话系统。其次,除了在主要任务上提高性能外,它们还提供了其他几个优势。它们被广泛用于提高神经网络的可解释性,而神经网络之前常常被视为黑盒模型。这是一个显著的好处,主要是因为人们对影响人类生活的应用程序中的机器学习模型公平性、问责制和透明度越来越感兴趣。第三,它们有助于克服递归神经网络RNN中的一些挑战,例如随着输入长度的增加性能下降,以及输入顺序不合理导致的计算效率低下。因此,在这项工作中,我们的目标是提供一个简短的,全面的注意机制综述。

  • 论文组织结构

我们在第2节中简要解释了Bahdanau等人提出的注意模型[Bahdanau et al.,2014],并在第3节中描述了我们的分类法。然后,我们分别在第4节和第5节中讨论了使用注意模型的神经网络结构以及attention如何促进神经网络的可解释性。最后,我们在第6节中提出了注意力模型的广泛,并在第7节中总结了本文。

  • 相关的综述文献

关于attention model在计算机视觉[Wang and Tax, 2016]和图形[Lee et al., 2018]的应用已经有一些综述。另一个类似的工作是由Galassi等人完成的[Galassi et al.,2019],但是我们进一步综述了可行的分类法、关键网络架构、应用程序、以及注意力模型的可解释性。我们希望我们的贡献不仅能够促进对注意力模型的更广泛理解,而且能够帮助人工智能开发人员和工程师为他们的应用领域确定正确的方法。

2. Attention Model

Fig.2 编码器-解码器体系结构:(a)传统(b)注意模型

sequence-to-sequence模型由编码器-解码器体系结构[Cho et al., 2014b]组成,如图2(a)所示。编码器是一个RNN,它接受Tokens的输入序列(x1,x2,…,xt),其中t是输入序列的长度,并将其编码为固定长度的向量(h1,h2,…,ht)。解码器也是一个RNN,它以一个固定长度的向量ht作为输入,通过tokens-to-tokens生成一个输出序列(y1,y2,…,ytt),其中tt是输出序列的长度。在每个位置t,ht和st分别表示编码器和解码器的隐状态。

  • 传统编码器-解码器的挑战

传统的编码器-解码器框架有两个众所周知的挑战。首先,编码器必须将所有输入信息压缩成一个固定长度的向量ht,然后将其传递给解码器。使用一个固定长度的向量压缩长而详细的输入序列可能会导致信息丢失 [Cho et al., 2014a]。其次,它无法对输入和输出序列之间的对齐进行建模,这是结构化输出任务(如翻译或汇总)的一个重要方面[Young et al., 2018]。从直觉上看,在sequence-to-sequence的任务中,我们期望输出的token受到输入序列的某个部分影响很大。然而,解码器缺乏任何机制在生成每个输出tokens时选择性地关注相关的输入tokens。

  • 关键理念

注意模型旨在通过允许解码器访问整个编码的输入序列(h1,h2,…,ht)来减轻这些挑战。其核心思想是在输入序列上引入注意权重α,以优先考虑存在相关信息的位置集,以生成下一个输出token。

  • Attention的使用

具有注意模型的相应编码器-解码器体系结构如图2(b)所示。网络结构中的注意力模块负责自动学习注意力权重αij,它可以自动捕获hi(编码器隐藏状态,我们称之为候选状态)和sj(解码器隐藏状态,我们称之为查询状态)之间的相关性。然后,这些注意力权重用于构建内容向量C,该向量作为输入传递给解码器。在每个解码位置j,内容向量cj是编码器所有隐藏状态及其相应注意权的加权和。

  • 学习注意力权重

注意力权重是通过在体系结构中加入一个额外的前馈神经网络来学习的。该前馈网络学习一个特殊的注意权αij,作为两种状态h(i)和s(j-1)的函数。简单地说,就是用这两种状态作为神经网络的输入,进而学习αij关于他们的函数。、

3. Taxonomy of Attention

Table.1 每个类别内的注意力类别和类型

我们将注意力分为四大类,并说明每一类中不同类型的注意力,如表1所示。我们要强调的是,这些类别并不相互排斥。注意力模型可以应用于多个类别的组合,如多层次的、self和soft注意力组合[Yang et al., 2016]。因此,我们可以将这些类别视为维度,在将注意力用于感兴趣的应用时,可以考虑这些维度。为了使这一概念易于理解,我们提供了一份关键技术论文列表,并在表2中指定了作者在提出的方法中使用的多种注意类型。

Table.2 注意模型中相关技术方法的关键论文总结

  • Number of sequences

到目前为止,我们只考虑了涉及单个输入和相应输出序列的情况。当候选状态(candidate state)和查询状态(query state)分别属于两个不同的输入和输出序列时,使用这种注意模型的我们称之为区别性distinctive。大多数用于翻译[Bahdanau et al., 2014]、总结[Rush et al., 2015]、图像字幕[Xu et al., 2015]和语音识别[Chan et al., 2016]的注意力模型都属于区别性distinctive的注意力类型。

共同注意模型co-attention同时对多个输入序列进行操作,并共同学习它们的注意力权重,以捕获这些输入之间的交互作用。刘等人 [Lu et al.,2016] 使用共同注意力模型构建了视觉问答系统。作者认为,除了对输入图像进行视觉注意建模外,对问题注意建模也很重要,因为问题文本中的所有单词对问题的答案并不同等重要。此外,基于注意力的图像表示用于引导问题的注意力,反之亦然,这基本上有助于同时检测问题中的关键短语和与答案相关的图像的相应区域。

相反,对于文本分类和推荐等任务,输入是序列,但输出不是序列。在相同的输入序列中,注意力模型可以用于学习输入序列中每个tokens的相关tokens。换句话说,对于这类关注模型,查询和候选状态属于相同的序列。为此,Yang等人[Yang et al. ,2016]提出了自我关注,也就是内在注意力模型。

  • Number of abstraction levels

在最一般的情况下,只为原始输入序列计算注意力权重。这种注意力模型可以称为单一水平single-level。另一方面,注意力可以按顺序应用于输入序列的多个抽象层次。较低抽象级别的输出(内容向量)成为较高抽象级别的查询状态。此外,使用多层次注意力模型可以根据权重是自上而下(从较高抽象级别到较低级别)[Zhao and Zhang, 2018]还是自下而上学习[Yang
et al., 2016]来进一步分类。

我们举例说明了这一类别中的一个关键示例,它在两个不同的抽象级别(即单词级别和句子级别)使用注意力模型来完成文档分类任务[Yang et al., 2016]。该模型被称为“层次注意力模型”(HAM),因为它捕获了文档的自然层次结构,即文档由句子组成,句子由单词组成。多层次的注意力模型允许提取句子中重要的单词和文档中重要的句子,如下所示。它首先建立了一种基于attention的句子表示法,并将第一级attention应用于单词嵌入向量序列。然后,它使用第二级注意来聚合这些句子表示,以形成文档的表示。文档的最终表示形式用作分类任务的特征向量。

Fig.3  Lu等人提出的视觉问答注意模型是一种将共同注意(视觉和文本)与多层次(词级、短语级和问题级)注意相结合的注意模型

请注意,第3.1节所述的co-attention工作[Lu et al., 2016]也属于多层次的范畴,它在三个层次上共同关注图像和问题:单词级别、短语级别和问题级别。这种co-attention和multi-level attention的组合如图3所示。

[Zhao and Zhang et al., 2018]提议使用“attention-via-attention”模型处理问答系统的相关任务,即使用多层次的注意力模型(较低层次的字母和较高层次的单词),但以自上而下的方式学习注意力权重。

  • Number of position

在第三类中,差异来自于计算注意力函数的输入序列的位置。Bahdanau等人引入的注意力模型也被称为软注意力soft attention [Bahdanau et al., 2014]。顾名思义,它使用输入序列所有隐藏状态的加权平均值来构建内容向量。软加权方法的应用使得神经网络易于通过反向传播进行有效的学习,同时也导致了二次计算代价。

Xu等人提出了一个硬注意模型 hard attention [Xu et al., 2015],其中内容向量是根据输入序列中随机抽样的隐藏状态计算出来的。这是通过使用由注意权重参数化的多努利分布来实现的。由于计算成本的降低,硬注意模型是有益的,但是在输入的每一个位置做出一个艰难的决策,使得所得到的框架不可微分,难以优化。因此,为了克服这一局限性,文献中提出了变分学习法和策略梯度法在强化学习中的应用。

在机器翻译任务的背景下,Luong等人提出了两种关注模型,即局部Local关注模型和全局Global关注模型[Luong et al. , 2015]。全局注意力模型与软注意力模型相似。另一方面,局部注意模型介于软注意和硬注意之间。关键思想是首先检测输入序列中的注意点或位置,然后在该位置周围选择一个窗口,以创建局部软注意模型。输入序列中的位置可以设置(单调对齐)或通过预测函数(预测对齐)学习。因此,局部关注的优势在于在软关注、硬关注、计算效率、窗口内可微性之间的参数权衡。

  • Number of representations

一般来说,输入序列的单一特征表示被大多数网络模型使用。但是,在某些情况下,使用输入的一个特征表示可能不足以完成下游任务。在这种情况下,一种方法是通过多个特征表示来捕获输入的不同方面。注意力机制可以用来为这些不同的表示分配重要权重,这些表示可以确定最相关的方面,而忽略输入中的噪声和冗余。我们将此模型称为多表示注意模型,因为它可以确定下游应用程序输入的多个表示的相关性。最终的表达是这些多重特征及其注意模型的权重加权组合。注意力模型的一个好处是通过检查权重,直接评估哪些嵌入是特定下游任务的首选嵌入

Kiela等人在同一输入句的不同单词嵌入上学习注意力模型权重,以改进句子表示[Kiela et al. , 2018]。同样地,Maharjan等人也利用注意力来动态地给词汇、句法、视觉和体裁信息的书籍的不同特征表示赋予权重[Maharjan et al., 2018]。

类似地,在多维注意multi-dimensional中,引入权重来确定输入嵌入向量的各个维度的相关性。直觉地将,计算向量的每个特征的分数可以选择在任何给定内容中最能描述词牌token特定含义的特征。这对于自然语言应用程序尤其有用,因为在自然语言中,单词嵌入会遇到一词多义问题。这一方法在Lin等人中展示了更有效的句子嵌入表示[Lin et al. , 2017],在Shen等人中展示了语言理解问题上[Shen et al. 2018]进行了充分的讨论。

4. Network Architectures with Attention

在本节中,我们描述了与注意力结合使用的三种的神经网络架构:(1)编码器-解码器框架,(2)将注意力扩展到单个输入序列之外的存储网络,以及(3)利用注意力绕过RNN模型的顺序处理

  • Encoder-Decoder

最早使用注意力是作为基于RNN的编码器-解码器框架的一部分来编码长的输入语句[Bahdanau et al., 2014]。因此,注意力在这种体系结构中得到了最广泛的应用。一个有趣的事实是,注意力模型可以采用任何长度的输入表示,并将其减少到一个固定长度的内容向量,用于解码步骤。因此,它允许将输入表示与输出分离。我们可以利用这一优势来引入混合编码器解码器,最流行的是卷积神经网络(CNN)作为编码器,RNN或长短期存储器(LSTM)作为解码器。这种类型的体系结构对于多模式任务特别有用,例如图像和视频标注、可视问答和语音识别。

  • Memory Networks

像问答和聊天机器人这样的应用程序需要能够从事实数据库中的信息中学习。网络的输入是一个知识数据库和一个查询,其中一些事实比其他事实更与查询相关。端到端内存网络[Sukhbaatar et al., 2015]通过使用一组内存块存储事实数据库来实现这一点,并注意内存中每个事实的模型相关性以回答查询。使用注意力还提供了计算优势,使目标连续,并通过反向传播实现端到端训练。端到端存储器网络可以被看作注意力模型的一种推广,它不是只在一个序列上建模,而是在一个大型的序列数据库上建模。

  • Networks without RNNs

RNN结构依赖于编码步骤输入的顺序处理,因为处理无法并行化,这导致计算效率低下[Vaswani et al., 2017]。为了解决这一问题,作者提出了一种Transformer结构,其中编码器和解码器由,带有两个子层的相同层组成:位置前馈网络(FFN)层和multi-head自注意层。

Position-wise FFN: 输入是序列的,它要求模型利用输入的时间信息,但是不使用捕获该位置信息的组件(如,RNN/CNN)。为此,在Transformer的编码阶段使用Position-wise FFN为输入序列的每个标记token生成内容嵌入和位置编码。

Multi-Head Self-Attention: 在每个子层中使用self-attention来关联token及其在相同输入序列中的位置。此外,注意力机制被称为multi-head,因为几个注意力层是平行堆叠的,对相同输入序列进行不同的线性变换。这有助于模型捕获输入的各个方面并提高其表达能力。

Transformer结构实现了显著的并行处理、更短的训练时间和更高的翻译精度,无需任何循环的组件,这是一个显著的好处。然而,位置编码仅弱合并位置信息,可能不适用于对位置变化更敏感的问题。Shen等人利用时间卷积编码位置信息以及Transformer的自我注意机制 [Shen et al., 2018]。

此外,还有更直接的方法来中断输入的顺序处理。Raffel和Ellis提出了前馈注意模型[Raffel and Ellis, 2015],他们使用注意模型来折叠数据的时间维度,并使用FFN而不是RNN来解决顺序数据问题。在这种情况下,注意力模型被用来从可变长度的输入序列中产生一个固定长度的内容向量,它可以作为一个输入,进而输入到FFN。

5. Attention for Interpretability

Fig.4  注意力权重可视化示例

人们对人工智能模型的可解释性产生了极大的兴趣,模型的性能以及透明性和公平性都体现了这一点。然而,神经网络,特别是深度学习,因其缺乏可解释性而受到批评[Guidotti et al., 2018]。

从可解释性的角度来看,注意力机制特别有趣,因为它允许我们直接检查深度学习体系结构的内部工作。假设是注意力权重的大小与一个特定输入区域的相关性密切相关,用于预测一个序列中每个位置的输出。这可以很容易地通过可视化一组输入和输出对的注意权重来实现。Li等认为注意力是解释神经模型内部工作的重要途径之一[Li et al. 2016]。

如图4(a)所示,Bahdanau等人将注意力权重形象化,尽管主语-动词-名词位置在语言之间有所不同,但它清楚地显示了法语和英语中句子的自动对齐[Bahdanau et al., 2014]。特别是注意模型通过将"environnement marin"与"marine environment
"非单调对齐。图4(b)显示了注意力权重可以帮助识别用户的兴趣。用户1似乎更喜欢“卡通”视频,而用户2更喜欢“动物”视频[He et al., 2018]。最后,Xu等人对图像字幕任务中,生成的文本与相关图像区域关联(即具有高关注权重)进行可视化[Xu et al. , 2015],如图4(c)所示。

我们还总结了一些其他有趣的发现,如下所示。De Arteaga等人探讨了职业分类中的性别偏见,并展示了在分类任务中获得更多关注的词汇通常是如何被性别化的[De-Arteaga et al. 2019]。Yang等人注意到,评论内容的好与坏的重要性取决于上下文,从而确定评论的情绪[Yang et al. 2016]。作者考察了这些词的注意权重分布,发现它们的范围从0到1,这意味着模型捕获了不同的上下文,并为这些词分配了上下文相关的权重。Chan等人注意到,在语音识别中,字符输出和音频信号之间的注意能够正确识别音频信号中第一个字符的起始位置,对于声音相似的单词,注意权重相似[Chan et al. 2016]。

作为注意力的另一个有趣的应用,Lee等人[Lee et al.2017]和Liu等人[Liu et al. 2018]提供了一个工具来可视化深层神经网络的注意力权重。目的是解释和干扰注意力权重,以便模拟假设情景并交互观察预测的变化。

6. Applications

注意力模型由于其直观性、通用性和可解释性,已成为研究的一个活跃领域。注意力模型的变体已经被用来处理不同应用领域的独特特征,如总结、阅读理解、语言建模、解析等。我们讨论了三个应用领域的注意力建模:(i)自然语言生成NLG(i i)分类(i i i)推荐系统。

NLG任务包括生成自然语言文本作为输出。一些NLG应用程序从加入注意力模型中获益,包括机器翻译(MT)、问答系统(QAS)和多媒体描述(MD)。机器翻译MT使用算法将文本或语音从一种语言翻译成另一种语言。神经技术中的注意建模使得不同语言的句子能够更好地对齐,这是机器翻译中的一个关键问题。注意模型的优点在翻译较长的句子时也变得更加明显[Bahdanau et al., 2014]。包括Britz等人和Tang等人在内的几项研究表明,使用注意力可以改善MT的性能[Britz et al., 2017] [Tang et al., 2018]。QAS问题利用了注意力:(i)通过关注问题的相关部分来更好地理解问题[Hermann et al., 2015];(i i)使用存储网络来存储大量信息,以帮助找到答案[Sukhbaatar et al., 2015];(i i i)通过使用共同关注来模拟输入中的多种形式来提高性能、无形的QAS任务[Lu et al., 2016]。MD的任务是生成一个自然语言文本描述的多媒体输入序列,可以是语音,图像和视频[Cho et al., 2015]。与QAS类似,这里的注意力执行在语音输入[Chorowski et al., 2015]或输入图像的相关部分[Xu et al., 2015]
中查找相关声音信号的功能,以预测标题中的下一个单词。此外,Li等人利用视频的时间和空间结构,利用多级关注进行视频字幕任务[Li et al. 2017]。较低的抽象级别提取帧内的特定区域,较高的抽象级别选择性地关注帧的小子集。

文件分类:如前面第3节所述,分类问题主要利用自我关注来构建更有效的文件表示。Yang等人使用了多层次的自我关注[Yang et al. 2016],而Lin等人则提出了多维的自我关注[Lin et al.2017],Kiela等人则提出了一个多特征表达的自我关注模型[Kiela et al. 2018]。

情绪分析:同样,在情绪分析任务中,自我关注有助于将注意力集中在决定输入情绪的重要词语上。Wang等人和Ma等人提出的基于方面的情感分类方法将与方面相关的概念的额外知识纳入模型 [Wang et al.2016] and [Ma et al. 2018],并利用关注度来适当权衡概念与内容本身的区别。情感分析应用程序也注意到了多种架构的使用,如记忆网络[Tang et al., 2016]和Transformer [Ambartsoumian and Popowich, 2018] and [Song et al., 2019]。

推荐系统:注意力模型也被广泛应用于推荐系统中,用于用户分析,即将注意力权重分配给用户的交互项目,以更有效地捕捉长期和短期的兴趣。这是直观的,因为用户的所有交互都与物品的建议无关,用户的兴趣在长时间和短时间内都是短暂的,并且是变化的。多篇论文使用自我关注机制来查找用户历史中最相关的物品,以改进物品推荐建议,要么使用协作过滤框架[He et al., 2018;] and [ Shuai Yu, 2019],要么使用编码器-解码器体系结构来进行推荐[Kang and McAuley, 2018;] and [Zhou et al., 2018]。

近年来,生物的注意力机制以新颖的方式被利用,为研究开辟了新的途径,包括更平滑地整合外部知识库、训练前嵌入、多任务学习、无监督的特征集成学习、稀疏性学习、原型学习(即样本选择)。

7.  Conclusion

在本次综述中,我们讨论了文献中注意力模型的不同使用方式,并试图通过讨论注意力分类法、使用注意力的关键神经网络结构以及受到显著影响的应用领域来概述各种技术。我们讨论了注意力在神经网络中的结合如何显著提高性能,通过促进可解释性,提供了对神经网络内部工作的更深入了解,并通过消除输入的顺序处理提高了计算效率。我们希望本次调查能够更好地了解对这一主题进行研究的不同方向,以及在一个领域中开发的技术如何应用到其他领域。