Abstract
1. Instroduction
2. Attention Model
3. Taxonomy of Attention 注意力机制的分类
3.1 Number of sequences 3.2 Number of abstraction levels
3.3 Number of position 3.4 Number of representations
4. Network Architectures with Attention
4.1 Encoder-Decoder 4.2 Memory Networks 4.3 Networks without RNNs
5. Attention for Interpretability
6. Applications
7. Conclusion
作者:Sneha Chaudhari / Gungor Polatkan / Rohan Ramanath / Varun Mithal
发表时间:2019-4-5
论文链接:https://arxiv.org/abs/1904.02874
注意力模型(Attention Model,AM)已经成为神经网络中的一个重要概念,并在不同的应用领域进行了充分的研究。这项调查关于attention的发展提供了一个结构化和全面的概述,主要包括:
1. 我们提出了一种分类法,将现有的技术分为几个连贯的类别;
2. 我们回顾了注意力被纳入的不同的神经结构,并展示了注意力如何提高神经模型的可解释性。
3. 最后,我们讨论了在实际应用中,注意力机制取得的重要影响。
我们希望这项调查能够为注意力模型提供一个简明的介绍,并指导实践者为他们的具体应用开发新的方法。
注意力模型(AM),最初被用于机器翻译 [Bahdanau et al., 2014],目前已成为神经网络领域一个主要概念。在人工智能(AI)领域,注意力已成为神经系统结构的重要组成部分,在自然语言处理、统计学习、语音和计算机视觉等领域都有着大量的应用。
注意力机制可以使用人类生态系统进行直观解释。例如,我们的视觉处理系统倾向于选择性地聚焦于图像的某些部分,而以一种有助于感知的方式忽略其他不相关的信息[Xu et al., 2015]。同样,在涉及语言、语音或视觉的问题中,输入的某些部分比其他部分对决策更有帮助。例如,在翻译和自动文摘中,只有输入序列中特定的某些单词可能对预测下一个单词有帮助。同样,在图像描述中,输入图像的某些区域可能对生成下一个单词更有帮助。注意力机制通过允许模型动态地聚焦于输入的特定部分来提高任务的效率而将这种相关性概念结合起来。图1为使用AM对Yelp评论进行情绪分类的示例[Yang et al., 2016]。在这个例子中,AM学习到在五个句子中,第一句和第三句更相关。
注意力机制AM在神经网络领域的迅速发展主要有三个原因:
首先,这些模型现在是解决多任务最先进的模型[Young et al., 2018],如机器翻译、问题回答、情感分析、词性标记、对话系统。
其次,除了在主要任务上提高性能外,它们还提供了其他几个优势。它们被广泛用于提高神经网络的可解释性,而神经网络之前常常被视为黑盒模型。这是一个显著的好处,因为人们对影响人类生活的应用程序中用到的机器学习模型的公平性、可解释性和透明度越来越感兴趣。
第三,它们有助于克服递归神经网络RNN中的一些挑战,例如随着输入长度的增加性能下降(Section 2),以及对输入的顺序处理导致的计算效率低下(Section 4.3)。因此,在这项工作中,我们的目标是提供一个简短而全面的注意机制的综述。
首先,第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(a)所示, sequence-to-sequence模型由encoder-decoder体系结构组成[Cho et al., 2014b]。编码器encoder是一个RNN结构,它接受tokens的输入序列 {x1,x2,…,xT},其中T是输入序列的长度,并将其编码为固定长度的向量 {h1,h2,…,hT}。解码器decoder也是一个RNN,它以一个固定长度的向量hT作为输入,通过tokens-to-tokens生成一个输出序列 {y1,y2,…,yT'},其中T'是输出序列的长度。在每个位置t,hT和sT分别表示编码器和解码器的隐状态。
传统的encoder-decoder框架有两个众所周知的挑战:
(1)首先,编码器encoder必须将所有输入信息压缩成一个固定长度的向量hT中,然后将其传递给解码器decoder。使用一个固定长度的向量去压缩一个长而复杂的输入序列可能会导致信息丢失 [Cho et al., 2014a]。
(2)其次,它无法对输入和输出序列之间的对齐进行建模,这是结构化输出任务(如翻译或文摘)的一个重要方面[Young et al., 2018]。从直觉上看,在sequence-to-sequence的任务中,我们希望每个输出token受到输入序列的某些特定部分的影响更大。然而,解码器缺乏 选择性地聚焦于产生输出tokens的相关输入tokens的机制。
注意力模型旨在通过允许解码器访问整个编码的输入序列 {h1,h2,…,hT} 来减轻这些挑战。其核心思想是在输入序列上引入注意力权重α,以优先考虑存在相关信息的位置集,以生成下一个输出token。
如图2(b)所示,为具有注意力机制的encoder-decoder体系结构。网络结构中的注意力模块负责自动学习注意力权重αij,它可以自动捕获hi(encoder隐藏状态,我们称之为候选状态)和sj(decoder器隐藏状态,我们称之为查询状态)之间的相关性。然后,这些注意力权重用于构建内容向量c(context vector),该向量作为输入传递给decoder。在每个解码位置j上,内容向量cj是编码器所有隐藏状态hi及其相应注意力权重αij的加权和,即
这个额外的内容向量使decoder可以使用整个输入序列,并聚焦于输入序列的相关位置。
注意力权重是通过在体系结构中加入一个额外的前馈神经网络来学习的。该前馈网络学习一个特殊的注意力权重αij,作为两种状态hi和s(j-1)的函数,hi和s(j-1)作为神经网络的输入。进而,这个前馈神经网络与架构中encoder-decoder一起训练。
我们将注意力分为四大类,并说明每一类中不同类型的注意力,如表1所示。我们要强调的是,这些类别并不相互排斥。注意力模型可以应用于多个类别的组合,如多层次的、self和soft注意力组合[Yang et al., 2016]。因此,我们可以将这些类别视为维度,将注意力应用于感兴趣的具体应用时,可以考虑这些维度。为了使这一概念易于理解,我们提供了一份关键技术论文列表,并在表2中指定了作者在提出的方法中使用的多种注意类型。
迄今为止,我们只考虑了单输入和相应输出序列的情况。这种类型的注意力模型,我们称之为 distinctive模型(区别性),其用于当候选状态(candidate state)和查询状态(query state)分别属于两个不同的输入和输出序列时。大多数用于翻译[Bahdanau et al., 2014]、摘要[Rush et al., 2015]、图像描述[Xu et al., 2015]和语音识别[Chan et al., 2016]的注意力模型都属于distinctive注意力类型。
co-attention模型(共同注意力模型)同时对多个输入序列进行操作,并共同学习它们的注意力权重,以捕获这些输入之间的交互作用。刘等人 [Lu et al.,2016] 使用co-attention模型构建了视觉问答系统。作者认为,除了对输入图像进行视觉注意力建模外,对问题注意力建模也很重要,因为问题文本中的所有单词对问题的答案并不同等重要。此外,基于图像表示的注意力可用于引导问题注意力,反之亦然,这在本质上有助于同时检测问题中的关键短语和与答案相关的图像的相应区域。
相反,对于文本分类和推荐等任务,输入是序列,但输出不是序列。在相同的输入序列中,注意力模型可以用于学习输入序列中每个token的相关tokens。换句话说,对于这类注意力模型,查询和候选状态属于相同的序列。为此,Yang等人[Yang et al. ,2016]提出了 self attention模型,也就是inner attention模型。
在最一般的情况下,注意力权重的计算只是为原始输入序列。这种注意力模型称为single-level。另一方面,注意力可以按顺序应用于输入序列的多个抽象层次。较低抽象级别的 输出(内容向量)成为较高抽象级别的查询状态。此外,multi level attention 模型(多层次注意力模型)可进一步分类,根据权重的学习方式是自上而下(从较高抽象级别到较低级别)[Zhao and Zhang, 2018] 还是自下而上[Yang et al., 2016]。
关于这一类别,我们举一个关键示例,它在两个不同的抽象级别(即单词级别和句子级别)使用注意力模型来完成文档分类任务[Yang et al., 2016]。因为这个模型捕获了文档的自然层次结构,即文档由句子组成,句子由单词组成,所以称其为“层次注意力模型”(Hierarchical Attention Model,HAM)。多层次的注意力允许HAM模型提取句子中的重要单词和文档中的重要句子,如下所示。首先,建立了一种基于句子表示的attention,其将第一级attention应用于 单词嵌入向量(word embedding vectors)序列。然后,它使用第二级attention来聚合这些句子表示,以形成文档表示。(即:将第一级attention应用于 单词向量序列,形成句子表示形式;然后将第二级attention应用于这些句子表示,形成文档表示形式)。文档的最终表示形式用作分类任务的特征向量。
要注意的是,第3.1节所述的co-attention工作[Lu et al., 2016]也属于 multi-level 范畴,它在三个层次上共同关注图像和问题:单词级别、短语级别和问题级别。这种co-attention和multi-level attention的组合如图3所示。
[Zhao and Zhang et al., 2018]提议使用“attention-via-attention”模型,即使用 multi-level 注意力模型(较低层次的字母和较高层次的单词),但以自上而下的方式学习注意力权重。
第三类的区别是计算注意力函数的输入序列的位置。Bahdanau等引入的注意力模型也称为soft attention [Bahdanau et al., 2014]。顾名思义,它使用输入序列所有隐藏状态的加权平均值来构建 context向量。soft 加权方法的应用使得神经网络易于通过反向传播进行有效的学习,同时也导致了翻倍的计算代价。
Xu等人提出了一个 hard attention模型 [Xu et al., 2015],其中 context向量是根据输入序列中随机抽样的隐藏状态计算出来的。这是通过 使用由注意力权重 参数化的多努利分布来实现的。由于计算成本的降低,hard注意模型是有益的,但是在输入的每一个位置做出一个艰难的决策,使得所得到的框架不可微分且难以优化。因此,为了克服这一局限性,文献中提出了强化学习中的变化学习法和策略梯度法。
在机器翻译任务的背景下,Luong等人提出了两种注意力模型,即 local和global注意力模型[Luong et al. , 2015]。global注意力模型与soft注意力模型相似,local 注意模型介于soft注意和hard注意之间。其关键是,首先检测输入序列中的注意力点或位置,然后在该位置周围选择一个窗口,以创建 一个 local soft 注意力模型。输入序列中的位置可以通过设置(单调对齐)或通过预测函数学习(预测对齐)。因此,local模型的优势在于在soft、hard、计算效率、窗口可微性之间提供参数权衡。
一般来说,很多应用中使用了输入序列的单一特征表示。但是,在某些情况下,使用输入的一个特征表示可能不足以完成下游任务。在这种情况下,一种方法是通过多个特征表示来捕获输入的不同方面。注意力机制可以用来为这些不同的表示分配重要性权重,这些表示可以确定最相关的方面而忽略输入中的噪声和冗余。我们将此模型称为multi-representational注意模型,因为它可以为下游应用确定 输入的多个表示 的相关性。最终的表示是这些多重特征表示及其注意力权重的 加权组合。注意力模型的一个好处是通过检查权重,直接评估哪些embeddings(嵌入)是特定下游任务的首选embeddings。
Kiela等人在同一输入句的不同单词嵌入上学习注意力模型权重,以改进句子表示[Kiela et al. , 2018]。同样地,Maharjan等人也利用注意力来动态权衡books的不同特征表示,通过捕捉词汇、句法、视觉和体裁信息[Maharjan et al., 2018]。
类似地,在multi-dimensional注意力中,引入权重来确定输入嵌入向量的各个维度的相关性。凭直觉,计算向量的每个特征的分数可以选择出特征,在任何给定的内容中,这些选择出的特征能对token的特定含义作最好的描述。这对于自然语言应用程序尤其有用,因为在自然语言中,单词嵌入会遇到一词多义问题。这一方法的典型例子是,更有效的句子嵌入表示[Lin et al. , 2017] 和语言理解问题[Shen et al. 2018]。
本节中,我们描述了与注意力结合使用的三种神经网络架构:(1)encoder-decoder结构,(2)将注意力扩展到单个输入序列之外的记忆网络,(3)使用注意力机制绕过 循环模型的顺序处理组件 的结构。
注意力机制的最早使用是作为 基于encoder-decoder框架的RNN 的组成部分,来编码长输入语句[Bahdanau et al., 2014]。因此,注意力在这种体系结构中得到了最广泛的应用。
一个有趣的事实是,注意力模型可以将任何输入表示减少到一个固定长度的内容向量,以用于解码步骤。因此,它允许将输入表示与输出分离。我们可以利用这一优势来引入混合encoder-decoder,最流行的是卷积神经网络(CNN)作为编码器,RNN或长短期存储器(LSTM)作为解码器。这种类型的体系结构对于multi-model任务特别有用,例如图像和视频标注、视觉问答和语音识别。
然而,并不是所有问题(输入与输出都是有序数据)都能通过上述的方式解决,如排序问题和旅行商问题。Pointer Networks(指针网络)[Vinyals et al., 2015]是另外一种模型,有如下两点不同:
(1)输出是离散的,并指向输入序列中的位置,(因此命名为指针网络)。
(2)输出的每一步的目标类数量取决于输入的长度(因此是变量),这用encoder-decoder框架无法实现(其输出词典是先验已知的)。
作者利用注意力权重来为此建模, 在每个输出位置 选择第ith个输入符号作为所选符号的概率。这种方法可以应用于离散优化问题,如差旅销售人员问题和排序问题。
像问答和聊天机器人这样的应用程序,需要具备从事实数据库的信息中学习的能力。网络的输入是一个知识数据库和一个查询,其中一些事实比其他事实与查询更加相关。
End-to-End Memory Networks端到端记忆网络[Sukhbaatar et al., 2015] 通过使用一组记忆块存储事实数据库来实现这一点,使用注意力机制 为记忆中每个事实间的关联进行建模 以回答问题。使用注意力还提供了计算优势,通过使目标连续并通过反向传播实现端到端训练 。端到端记忆网络可以被看作是注意力模型的一种普遍化,它不是只在一个序列上建模,而是在一个大型的序列数据库上建模。
RNN结构依赖于编码步骤输入的顺序处理,因为处理无法并行化,这导致计算效率低下[Vaswani et al., 2017]。为了解决这一问题,作者提出了一种 Transformer结构,其中encoder和decoder由带有两个子层的相同层的堆叠组成:位置前馈网络(FFN)层和multi-head自注意层。【position wise Feed Forward Network(FFN) layer and multi-head self attention layer.】
Position-wise FFN:输入是有顺序的,它要求模型利用输入的时间信息,而不使用捕获该位置信息的组件(如RNN/ CNN)。为此,在Transformer的编码阶段 使用Position-wise FFN 为输入序列的每个标记token生成content embedding和位置编码。
Multi-Head Self-Attention:在每个子层中使用self-attention来关联token及其在相同输入序列中的位置。此外,注意力机制因multi-head而知名,因为几个注意力层是平行堆叠的,对相同输入序列进行不同的线性变换。这有助于模型捕获输入的各个方面并提高其表达能力。
Transformer结构无需任何循环组件,实现了显著的并行处理、更短的训练时间和更高的翻译精度,这是一个显著好处。然而,位置编码仅弱合并位置信息,可能不适用于对位置变化更敏感的问题。Shen等人利用时间卷积来编码位置信息以及Transformer 的自我注意机制 [Shen et al., 2018]。
此外,还有更直接的方法打破输入的顺序处理。Raffel和Ellis提出了 Feed Forward Attention 前馈注意力模型[Raffel and Ellis, 2015],他们使用注意力模型来折叠数据的时间维度,并使用FFN代替RNN来解决序列数据问题。在这种情况下,注意力模型用来从可变长度的输入序列中产生一个固定长度的content向量,这个content向量可以作为一个FFN的输入。
由AI模型的性能以及透明性和公平性的趋势,人们对其可解释性产生了极大的兴趣。然而,神经网络,特别是深度学习,因其缺乏可解释性而受到批评[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]。最后,如图4(c)所示,在图像字幕任务中,Xu等人提供了相关图像区域的可视化列表(如,高注意力权重),这对生成的脚本具有重要影响[Xu et al. , 2015]。
我们也总结了一些其他有趣的发现,如下所示。De Arteaga等人探讨了职业分类中的性别偏见,并展示了在分类任务中获得更多关注的词汇通常是如何被性别化的[De-Arteaga et al. 2019]。Yang等人注意到,为确定评论的情感,单词good和bad的重要性取决于上下文环境[Yang et al. 2016]。作者考察了这些词的注意权重分布,发现它们的范围从0到1,这意味着模型捕获了不同的上下文,并为这些词分配了与上下文相关的权重。Chan等人注意到,在语音识别中,字符输出和音频信号之间的注意力能够正确识别音频信号中第一个字符的起始位置,对于声学相似的单词,注意力权重相似[Chan et al. 2016]。最后,Kiela等发现多表示注意力给Glo Ve, FastText 单词嵌入,尤其是GloVe低频词汇,分配更高的权重[Kiela et al. 2018]。
作为注意力的另一个有趣的应用,Lee等人[Lee et al.2017]和Liu等人[Liu et al. 2018]提供了一个工具来可视化深层神经网络的注意力权重。目的是解释和干扰注意力权重,以便模拟假设情景并交互观察预测的变化。
注意力模型由于其直观性、通用性和可解释性,已成为研究的一个活跃领域。注意力模型的变体已经被用来处理不同应用领域的独特特性,如总结、阅读理解、语言模型、语法分析等。我们讨论了三个应用领域的注意力建模:(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]。
QA问题利用注意力:(i)通过关注问题的相关部分来更好地理解问题[Hermann et al., 2015];(i i)使用记忆网络存储大量信息,以帮助找到答案[Sukhbaatar et al., 2015];(i i i)通过使用co-attention,模拟输入中的多模态,来提高可视化问答任务的性能[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]。
近年来,注意力机制以新颖的方式被利用,为研究开辟了新的途径,包括更平滑地整合外部知识库、预训练嵌入、多任务学习、无监督的表示学习、稀疏性学习、原型学习(即样本选择)。
本综述,我们讨论了文献中注意力模型的不同使用方式,并试图通过讨论注意力分类法、使用注意力的关键神经网络结构以及受到显著影响的应用领域来概述各种技术。我们讨论了注意力在神经网络中的结合如何显著提高性能,通过促进可解释性,提供了对神经网络内部工作的更深入了解,并通过消除输入的顺序处理提高了计算效率。我们希望本次调查能够更好地了解对这一主题进行研究的不同方向,以及在一个领域中开发的技术如何应用到其他领域。