注意力机制最新综述解读(last revised 12 Jul 2021)
[参考翻译]沈子恒的博客-CSDN博客_注意力机制
1.介绍
注意力模型(AM)最早应用于机器翻译[1],现在神经网络领域应用广泛。注意力机制可以根据人的视觉机制进行解释,比如说驾车经过路口时驾驶员通常会更加关注路边的行人和其他车辆驾驶情况,而注意力机制能在计算中实现类似的效果。总地来说,注意力机制能动态地调整输入内容的权重,从而更加关注有助于完成当前任务的数据。
注意力机制有三大优势:1)解决多任务任务最先进方法,如机器翻译、问题回答、情绪分析、词性标记、对话系统;2)提高神经网络可解释性;3)克服循环网络中随输入增加带来的性能下降。
2.注意力基础
3.注意力模型
图2(a)为sequence-to-sequence模型,由编码器-解码器组成,编码器是一个RNN,他接受由tokens { x 1 , x 2 , . . . . , x T } \{x_{1},x_{2},....,x_{T}\} {x1,x2,....,xT}组成的输入序列,t为输入序列长度,并编码为长度为t的向量 { h 1 , h 2 , . . . . , h T } \{h_{1},h_{2},....,h_{T}\} {h1,h2,....,hT}。解码器也是一个RNN,通过tokens-to-tokens[2]生成一个输出序列 { y 1 , y 2 , . . . . , y T ′ } \{y_{1},y_{2},....,y_{T'}\} {y1,y2,....,yT′}, T ′ T' T′ 是输出序列的长度。在每个时间 t t t , h t h_{t} ht 和 s t s_{t} st 分别表示编码器和解码器的隐藏层表示。
传统编码器-解码器模型挑战:
1)在编码器阶段,将输入信息压缩成固定长度的向量必然带来内容缺失
2)输入和输出序列之间没有对齐
从直觉上,我们希望输出的token受输入序列某个部分影响很大,但解码器并不能选择性的关注某部分序列。
关键理念:
注意力机制目的是为了有选择地调用 { h 1 , h 2 , . . . . , h T } \{h_{1},h_{2},....,h_{T}\} {h1,h2,....,hT},选择的实现则在于引入注意权重 $\alpha $ ,通过计算加权和生成下一个输出 c c c .
Attention 使用:
图 2 (b)展示了具有注意力机制的编码器-解码器模型。图中的半圆矩形为注意力模块,负责自主学习注意力权重
α
i
j
\alpha_{ij}
αij ,他可以自动捕获
h
i
h_{i}
hi (编码器隐藏状态,又称为候选状态)和
s
j
s_{j}
sj (解码器隐藏状态,又称查询状态)之间的相关性。然后根据以下公式生成
c
j
c_{j}
cj :
c
j
=
∑
i
=
1
T
α
i
j
h
i
c_{j}=\sum_{i=1}^{T}\alpha _{ij}h_{i}
cj=i=1∑Tαijhi
在每个解码位置
j
j
j ,内容向量
c
j
c_{j}
cj 是编码器所有隐藏状态及其相应注意权的加权和。
注意力权重$\alpha $ 学习:
注意力权重通过在结构中加入一个额外的前馈神经网络来学习。前馈神经网络以 h i h_{i} hi 和 s j − 1 s_{j-1} sj−1 两种状态为神输入,并借助两种状态构成的函数种学习特定的 α i j \alpha _{ij} αij ,这函数称为对齐函数alignment function(表 1 中)。对齐函数能对 h i h_{i} hi 和 s j − 1 s_{j-1} sj−1的相关程度进行评分 e i j e_{ij} eij .将对齐函数生成的相关度评分 e i j e_{ij} eij 输入分类函数(表 1 中)生成注意力权重 α i j \alpha _{ij} αij
x = { x 1 , . . . , x T } x=\{x_{1},...,x_{T}\} x={x1,...,xT}:输入序列, T T T:输入序列长度, h i h_{i} hi:编码器隐藏层状态, c c c : 语境(Context)向量, α i j \alpha _{ij} αij:对输入的注意权重, s j s_{j} sj : 解码其隐藏状态, y j y_{j} yj:输出token, f , g f,g f,g:非线性函数, a a a:对齐函数, p p p:分类函数
广义注意力模型A:
图 2(b) 所示的注意力模型也可以看作是键序列 𝐾 到注意力分布
α
\alpha
α 的映射,映射由查询
q
q
q 决定。其中键K是编码器隐藏状态
h
i
h_{i}
hi,查询q是单个解码器隐藏状态
s
j
−
1
s_{j-1}
sj−1。这里的注意力分布
α
i
j
\alpha _{ij}
αij 会强调与
q
q
q 主要任务相关的 K。然后𝑒 = 𝑎(𝐾, 𝑞) ,𝛼 = 𝑝(𝑒)。在一些案例中还会用到输入值 𝑉 。键 K 和值 V 通常具有一对一的映射,有时候并不将K 和V区分开来(𝑘𝑖 = 𝑣𝑖 = ℎ𝑖),一些现有文献使用此术语表示相同输入数据的不同表示。因此,广义注意力模型𝐴由(K,V)和 q 一起构成:
A
(
q
,
K
,
V
)
=
∑
i
p
(
a
(
k
i
,
q
)
)
∗
v
i
A(q,K,V)=\sum_{i}p(a(k_{i},q))*v_{i}
A(q,K,V)=i∑p(a(ki,q))∗vi
之后我们会讨论一些在文献中常用的对齐函数和分类函数,更详细内容可以参考[3]
对齐函数 a a a(表 2) :
1)将查询 q 与 键 K 进行比较。
比较简单的有余弦相似度(cosine similarity)和点积(dot product)
scaled dot product:对K 和 q 的向量长度进行归一化处理,使其具有相同的向量长度。
General :在点积的基础上引入可学习的变换矩阵 W,将查询映射到键的向量空间。
Biased general:引入偏差项 b 来学习某些键 K 的全局重要性,而这些键 K 与查询无关。
Activated general:添加了非线性激活层,例如双曲正切hyperbolic tangent、整流器线性单元rectifier linear unit或缩放的指数线性单元scaled exponential linear unit。、
generalized kernel:最近,[4]表明可以使用generalized kernel函数而不是更常用的点积来匹配键和查询。
2)将查询 q 与 键 K 进行联合表示
concat:直接将q和K两个向量进行连接
Additive:将 q 和 K 对算法的贡献分开而提高计算时间,这允许先计算所有 K 带来的贡献,避免每个 q 的重新计算。
deep:与使用单个神经层的Additive alignment相比,deep alignment使用多个神经层。
3)针对特定用例设计
Location-based:忽略 K 只依赖 q 。使用 K 的位置而不 K 是本身,所以说忽略K。
feature-based:从图像或者时许中提取特征作为对齐函数的输入。
**分类函数 p p p **:
分布函数将对齐函数分数映射到注意力权重。最常用的分类函数是logistic sigmoid 和 softmax。这些函数确保注意力权重被限制在 [0,1] 中并且总和为 1。因此可以把权重理解为元素的相关概率。
softmax:使用 softmax 的生成密集分类。这种密集是浪费的,使模型难以解释,并将概率质量分配给许多不合理的输出。
sparsemax和sparse entmax:生成稀疏分类,将非零概率元素并入适合的分类。
sigmoid:使用两项元素乘法生成注意力权重。其中 G(.) 是 q 与所有键之间的外部 L1 距离的否定
t
a
n
h
(
q
k
i
T
d
k
)
和
s
i
g
m
o
i
d
(
G
(
q
k
i
T
)
d
k
)
tanh(\frac{qk_{i}^{T}}{\sqrt{d_{k}}}) 和 sigmoid(\frac{G(qk_{i}^{T})}{\sqrt{d_{k}}})
tanh(dkqkiT)和sigmoid(dkG(qkiT))
第一项控制向量的加减,传统的分类函数只做加法。第二项可以解释为一种门控机制,删除(通过使他们的贡献为零)跟查询 q 无关的tokens。
注意力建模技术
4.注意力模型分类
这些算法相互之间并不排斥。注意力模型可以由多种算法的组合形成,如 multi-level, self 和 soft attention组成的注意力模型[5]。因此我们可以将这些类别视为维度,在应用时根据应用场景进行选用,在表 4 中列出了一些案例中使用的类别及具体算法。表 3 列出这些算法的简要描述。
4.1.Number of sequences
在此之前我们都只考单个输入、输出序列的情况。但实际上模型的输入输出十分多变,下面会具体讨论。
distinctive:键 K 和查询 q 状态分别属于两个不同的输入和输出序列。大多数用于翻译[Bahdanau et al., 2014]、总结[Rush et al., 2015]、图像字幕[Xu et al., 2015]和语音识别[Chan et al., 2016]的注意力模型。
co-attention:对多个输入序列进行操作,获取这些序列之间的相互关系。[Lu et al.,2016] 使用共同注意力模型构建了视觉问答系统。
self:学习输入序列内部的相互关系,因此这类注意力模型又称为内在inner关注。注意力可用于学习输入序列内部的相关tokens,在同一个输入序列学习每个token。换句话说,这种类型的注意力模型的 键 K 和查询 q 状态属于同一序列。这种模型常应用于文本分类和推荐等任务。为了更好地理解这一点,让我们考虑一个输入的单词序列 { w 1 , w 2 , w 3 , w 4 , w 5 } \{w_{1},w_{2},w_{3},w_{4},w_{5}\} {w1,w2,w3,w4,w5},使得𝑤𝑖是序列中单词的向量表示。 如果我们将此输入序列提供给自注意力层,则输出是另一个序列 { y 1 , y 2 , y 3 , y 4 , y 5 } \{y_{1},y_{2},y_{3},y_{4},y_{5}\} {y1,y2,y3,y4,y5},使得 y i = ∑ j a i j w j y_{i} = \sum_{j}a_{ij}w_{j} yi=∑jaijwj。 这里的注意力权重旨在捕捉同一序列中的两个单词是如何相关的,其中相关性的概念取决于主要任务。
4.2.Number of abstraction levels
single-level:注意力权重只在原始输入上计算一次。
multi-level:对输入进行多层抽象表示。
较低抽象级别的输出(上下文向量)成为较高抽象级别的查询状态。当输入为文本和图像是分层效果更好。层次越多计算花销越大。我们举例说明了这一类别中的一个关键示例,它在两个不同的抽象级别(即单词级别和句子级别)使用注意力模型来完成文档分类任务[Yang et al., 2016]。该模型被称为“层次注意力模型”(HAM),因为它捕获了文档的自然层次结构,即文档由句子组成,句子由单词组成。
多层次的注意力模型允许提取句子中重要的单词和文档中重要的句子,如图 4所示。首先他会建议一种基于注意力的句子表示方式,这能体现句子的重要程度。在第一层中识别重要的单词,在第二层聚合这些单词,最后通过第二层结果计算出分类任务的特征向量。
4.3.Number of positions
第三种类型的不同之处在于输入序列用于计算的位置。
soft/global:使用所有输入序列的隐藏状态的加权平均生成内容向量context vector。这种算法使神经网络能使用反向传播进行高效学习,但也带来二次计算的成本提高。
hard:在输入序列的隐藏状态中随机抽样生成内容向量,这是用一个以注意力权重为参数的多努利分布来完成的。hard注意模型减少了计算花销,但对输入序列采用这种方法会导致生成的框架不可微分且难以优化。文献中已经提出了强化学习中的变分学习Variational learning方法和策略梯度policy gradient方法来克服这一限制。
local:local注意模型介于soft注意和hard注意之间。此方法的关键在于先检测输入序列中的注意点或者位置,然后再这位置选择一个窗口(范围),创建local注意模型。输入序列的位置可以自行设置(单调对其)也可以通过预测函数(预测对齐)学习。因此,局部关注的优势在于在软关注、硬关注、计算效率、窗口内可微性之间的参数权衡。
4.4.Number of representations
大多数网络模型都使用输入序列的单一特征表示,但在某些情况下一个特征并不能完成任务。
multi-representational:多个特征表示来展现输入信息的不同方面。注意力机制可以用来表示这些特征的重要程度,忽略输入中的噪声冗余。
Kiela等人在同一输入句的不同单词嵌入上学习注意力模型权重,以改进句子表示[Kiela et al. , 2018]。同样地,Maharjan等人也利用注意力来动态地给词汇、句法、视觉和体裁信息的书籍的不同特征表示赋予权重[Maharjan et al., 2018]。
multi-dimensional:引入权重来确定输入嵌入向量的各个维度的相关性。计算每个特征的分数用于选择最合适的特征表示token的特定含义。
这对于自然语言应用程序尤其有用,因为在自然语言中,单词嵌入会遇到一词多义问题。这一方法在Lin等人中展示了更有效的句子嵌入表示[Lin et al. , 2017],在Shen等人中展示了语言理解问题上[Shen et al. 2018]进行了充分的讨论。
5.注意力网络结构
本节将介绍几种热门的与注意力结合使用的神经架构:(1)Encoder-Decoder框架,(2) Transformer,它使用注意规避了循环模型的顺序处理过程,(3)Memory 网络,将注意力扩展到单个输入序列之外,以及(4)Graph Attention网络(GAT)。然而AM是一门热门的研究课题,神经架构的类型正在快速增长。
5.1.Encoder-Decoder
最早使用注意力的是基于RNN的编码器-解码器框架,注意力作为RNN的一部分来编码长输入语句 [Bahdanau et al., 2014]。因此,注意力在这种体系结构中得到了最广泛的应用。一个有趣的事实是,注意力模型的编码器可以使用用任何长度的输入表示,并将其减少到一个固定长度的内容向量,用于解码步骤。因此,它允许使用不同的编码器和解码器。我们可以利用这一优势来引入混合编码器解码器,最流行的是卷积神经网络(CNN)作为编码器,RNN或长短期存储器(LSTM)作为解码器。这种类型的体系结构对于多模式任务特别有用,例如图像和视频标注、可视问答和语音识别。
优化:
然而不是所有输入和输出都是连续的,因此不是所有问题都能用上述框架解决。Pointer 网络[Vinyals et al. 2015]有两个特别的点:1)输出是离散的,且指向输入序列中的位置(因此得名指针网络);2)输出的类别数量取决于输入的长度(因此是变量)。传统的编码器-解码器结构输出是先验的(常量),因此这个任务并不能使用此框架完成。作者把注意力权重当做’把第i个输入符号当做输出符号的概率‘来完成任务。这种方法可以应用于离散优化问题,例如旅行推销员问题和排序 [Vinyals et al. 2015]。
5.2.Transformer(跨模态)
如今的结构需要在编码阶段按顺序地处理输入序列,不能并行处理导致了计算效率低下。为了解决这个问题,[Vaswani et al. 2017]提出了 Transformer 结构。这种结构能完全消除顺序处理和循环链接。它仅依靠自我注意机制来捕获输入和输出之间的全局依赖关系。这种结构实现了显着的并行处理、更短的训练时间和更高的机器翻译准确性,无需任何循环组件。
图 5 展示了 Transformer 结构。 Transformer 主要依靠self注意机制,它将 tokens 和 tokens在同一输入序列中的位置联系起来。作者为 self 注意力机制提出了一种新的点积( dot product)对齐函数(第三节)。此外,注意力被称为 multi-head ,因为多个注意力层是平行堆叠的,对同一输入具有不同的线性变换。换句话说, multi-head 机制不是一次计算出注意力,而是将输入分成固定大小的片段,然后并行计算每个片段上的缩放点积注意力。
独立的注意力输出被链接成预期维度。主要架构由 6 个相同的’编码器和解码器层‘组成,’编码器和解码器层‘中有两种不同的子层:逐点 Feed Forward 网络层和 multi-head self 注意力层。逐点 FFN 意味着相同的线性变换独立地应用于序列中的每个位置,增加了并行处理。解码器与编码器类似,除了解码器包含两个multi-head注意力子模块而不是一个。第一个multi-head注意力子模块被屏蔽以防止位置关注未来。这种架构的另一个特点是使用位置编码(positional encoding)。使用位置编码是因为输入是顺序的,这要求模型利用输入的时间信息(顺序信息),但某些组件( RNN / CNN)不能捕获这种位置信息。考虑到这一点,Transformer 中的编码器阶段为输入序列的每个token生成内容嵌入(embedding)和位置编码(content positional encoding)。最后,归一化(normalization)和残差连接(residual connections)是用于帮助模型训练更快、更准确的机制。
Transformer 具有以下特点:1)捕获输入和输出之间的全局(长时间)依赖,用于并行处理;2)支持并行处理;3)需要最小的归纳性偏差(先验知识);4)对大型序列和数据集的可扩展性;5)允许使用类似的处理块对多种模式(文本、图像、语音)进行领域无关的处理。因此Transformer 结构在自然语言处理(NLP)、计算机视觉和跨模态任务成为最先进的主流方法。此外,在 Transformer 之后,人们越来越关注在各种应用中使用注意力模型,这使得这种架构成为注意力的重要里程碑。我们分别在 6.1、6.2 和 6.3 节中描述了 Transformer 的一些关键变体及其在 NLP、计算机视觉和跨模态任务中的应用。
优化:
尽管 Transformer 对比基于 RNN 的顺序模型已经有很大提升,但他仍有一定的局限性:1)输入文本必须分成固定数量的段;2)参数复杂性高,导致计算成本和资源增加;3)由于最小的归纳偏差,需要大量的训练数据;4)难以解释自注意力机制学习了什么以及输入 tokens 对预测的贡献是什么。因此,已经建立了多个方向对 Transformer 进行改进。
一个方向是研究分析 Transformer 结构中的 multi-head self 注意力的可解释性。如[Clark et al.2019] 对Bidirectional Encoder Representations(BERT)进行研究,确定了特定的头部与特定的关系很好地对应,例如动词的直接宾语、名词的限定词、介词的宾语等; [Voita et al. 2019]评估编码器注意力头对模型整体性能的贡献,并发现:1)删除大部分头部不影响性能;2)关键头部在模型中具特别的和语言上可解释的功能。[Kobayashi et al. 2020] 发现与之前的研究相反,BERT 对特殊标记的关注度很低,并且可以从 Transformer 的注意力机制中提取词对齐。[Michel et al. 2019]发现许多注意力层合并到单个注意力头而不影响性能,提高其效率,并提出了一种新的剪枝技术。
另外一个方向是改进隐藏状态表示(context),使其self-attention中使用更久、更有效和更灵活。[Sukhbaatar et al. 2019a]的Transformer-XL,它通过采用新的位置编码和重用片段之间的隐藏状态,解决了上下文碎片化的问题。在片段之间重新使用隐藏状态。 [Sukhbaatar et al. 2019a] 提出了一种新颖的自我注意机制,可以学习其最佳注意力跨度。 这允许扩展 Transformer 中使用的context大小,同时保持计算成本。
最后一个方向是减少计算时间和内存消耗。Sparse Transformers [Child et al. 2019], Reformers [Kitaev et al. 2020] 和 Performers [Choromanski et al. 2021]是最近实现这一目标的一些方法。
5.3.Memory 网络
问答 (QA) 和聊天机器人等应用程序需要能够从事实数据库中的信息中学习。网络的输入是一个知识数据库和一个查询,知识数据库中的一些事实比其他事实与查询更相关。在这种情况下,需要一个外部存储器来存储事实的知识数据库,而注意力主要任务是有选择地关注相关事实。这可以理解为注意力模型的泛化。这种网络不是使用单一序列进行建模,而是是有一个大型序列(事实)数据库进行建模。我们列出的三种文献中方法,它们将外部记忆组件与注意力结合起来,用于回答问题, End-to-End Memory 网络 [Sukhbaatar et al. 2015], Dynamic Memory 网络 [Kumar et al. 2016], 和 Neural Turing Machines [Graves et al. 2014b].
我们可以 我们可以认为记忆网络一般有三个组成部分:1)读取原始数据库,并将其转化为分布式表示;2)存储特殊向量列表,由读取数据库后处理生成;3)利用记忆内容依次执行任务。
5.4.Graph Attention网络
图结构数据形式出现在社交网络、引文网络、蛋白质-蛋白质相互作用、化学信息学等应用领域。任意图具有不同数量的邻居,因此与序列和图像相比,使用它们要困难得多。事实上,可以将序列和图像视为具有高度刚性和规则连接模式的特殊形式的图(序列中的每个元素都连接到两个相邻的元素; 图像中的每个像素都连接到其八个相邻像素)。为了将使用图像的卷积层推广到使用图的卷积层,需要做以下创新:1)计算和存储效率–模型不应该需要多于O(V+E)的时间和内存;2)固定的参数数量;3)本地化 - 模型应该能够在本地节点独立工作,以实现并行计算和可扩展性;4)能够指定不同邻居的重要性,而不是平等对待所有邻居或基于某些结构属性(例如节点度);5)适用于任意的图结构。
图卷积网络(GCN)通过结合局部图结构和节点级特征在节点分类任务上表现出良好的性能。然而,如图 7 所示,GCN 根据节点度得出边的非参数权重。[Velickovic et al.2018] 提出了图注意网络 (GAT),它对邻居的节点特征采用 self 注意力机制,以便更重要的节点获得更高的权重。因为 self 注意力机制能并行操作,GAT的计算效率很高。不需要特征分解或密集型矩阵运算。此外,GAT 允许通过注意力权重为同一邻域的节点分配不同的重要性。最后,注意力机制以共享的方式应用于图中的所有边,因此它不依赖于对全局图结构的前期访问。
在现实世界应用中通常使用异构图,而异构图不能直接使用同构的方法,因此有许多研究人员专门针对异构图进行进一步的研究,如 [Wang et al. 2019b] 。
6. 应用
由于注意力模型具有的直观性、通用性和可解释性,使其广泛应用于许多领域。在某些应用中,注意力模型能显著提高其性能,而在其他应用中,它们有助于学习更好地表示文档、图像和图形等实体。在一些领域内,注意力机制成为最主流的技术,如机器翻译、问答和使用 BERT 预训练嵌入。
注意力模型的应用领域广泛,我们选择5个应用领域进行介绍:自然语言处理(NLP)、计算机视觉(CV)、多模态任务、推荐系统和基于图的系统。
6.1.自然语言处理(NLP)
在NLP中,注意力机制有助于找到输入序列中的重点部分、对齐输入和输出序列和捕获长序列中的大范围依赖。比如在机器翻译中,注意力机制能更好地对齐不同语言中的句子,捕捉因语言而异的主谓名词位置。注意力机制能很好地解决长句子的翻译问题,[Britz et al. 2017] 和 [Tang et al. 2018] 使用注意力在翻译长句子上实现了优异的效果。 [Zhang et al. 2020] 提出的 GRU-gated 注意力模型能更好地区分相同内容。
问答问题使用注意力机制去找到问题中的关键部分 [Hermann et al. 2015] 和使用 Memory 网络存储大量信息用于寻找答案 [Sukhbaatar et al. 2015]。 [Rush et al. 2015]使用 soft 注意力机制在抽象出句子的摘要上作出巨大的提升。 [Xu et al. 2020] 使用基于 Transformer 的 self 注意力模型来增强抽象摘要中的复制功能。
在情绪分析任务中,self 注意力能找句子中体现情绪的单词。[Wang et al. 2020c], [Wang et al. 2016] 和 [Ma et al. 2018] 使用基于 aspect 的句子分类,并使用注意力适当地权衡除内容本身之外的内容。情绪分析应用也使用其他的结构,如 Memory 网络 [Tang et al. 2016]和 Transformer [Ambartsoumian and Popowich 2018].
文本分类和文本表示也广泛使用注意力模型,在第四节中就提到使用 self 注意力模型建立更有效的句子和文本表示。.[Yang et al. 2016]使用 multi-level self 注意力模型,[Lin et al. 2017]提出 multi-dimensional 注意力模型和[Kiela et al. 2018]提出 multi-representational self 注意力模型。
随着 Pre-Trained 语言模型的出现,NLP 的许多应用都发生了彻底的变革。 Pre-Trained 语言模型的优势在于以下几点:1)他们在大型语料库中训练,能学习大部分语言的表示,捕捉语言的许多特征,如长期依赖关系、层次关系和情感;2)他们很容易根据 NLP 任务进行微调,避免重新训练模型;3)易于拓展。其中 基于Transformer 的 Pre-Trained 语言模型特别受欢迎,这又分为三种类型:1)Transformer 及其变体,例如 Transformer-XL [Dai et al. 2019],BART [Lewis et al. 2020];2)来自 Bidirectional Encoder Representations from Transformers (BERT) [Devlin 等人。 2019] 及其变体,例如 RoBERTa [Liu et al. 2019], ALBERT [Lan et al. 2020];3)Generative Pre-trained Transformer (GPT) 及其变体,如GPT-2 [Radford et al. 2018], GPT-3 [Brown et al. 2020]. XLNet+BERT and Transformer-XL [Yang et al. 2019].
6.2.计算机视觉(CV)
视觉注意力Visual attention在CV领域变得十分热门,它能找到图像中的关键区域,并能捕获图像各个部分之间的远程依赖关系。 [Mnih et al. 2014]在图像分类任务上使用了注意i机制,并提出了视觉注意力这一术语。在这里,作者使用注意力选出关键的区域,并以此降低计算花销。
视觉注意力还应用在物体检测,因为它可以帮助定位和识别图像中的对象。在[Ba et al. 2014]中使用注意力机制完成多物体检查。[Gregor et al. 2015] 中的 Deep Recurrent Attentive Writer (DRAW)实现图像生成,与以前的工作的主要区别在于它以逐步的方式生成图像,而不是一次通过。 [Zhang et al. 2019a] 中的 Self-Attention Generative Adversarial Networks (SAGANs),self-attention 模块通过有效地建模跨图像区域的长距离、多级依赖关系来辅助卷积。
CNNs从2012以来就是视觉任务的主流模型,但现在在视觉任务中使用 Transformers 已成为一个新的研究方向。这个方向第一个关键研究是 [Dosovitskiy et al. 2021]中的Vision Transformer (ViT)进行图像分类,它的性能优于可比较的最先进的 CNN,计算资源减少了四倍。另一项工作是 [Touvron et al. 2021] 使用基于Transformers的新提取方法实现大规模的图像分类。后面还有y [Carion et al. 2020]的Detection Transformer (DETR)、 [Zhu et al. 2021]减少训练时间。最后 Transformers 还应用与图像生成 [Parmar et al. 2018] [Chen et al. 2020]
6.3.多模态任务
注意力机制能帮助了解不同模态之间的关系。多媒体描述Multimedia Description的任务是根据多媒体(如图片和视频)输入序列生成自然语言文本描述。
语音识别Speech Recognition,在[Chan et al. 2016]声称如果没有注意力机,该模型就会过拟合。[Chorowski et al. 2015]的作者也提到语音识别比NLP和CV任务含有更多的噪音、缺乏清晰结构和有多个相似语音片段。这需要借助注意力机制才能解决问题。[Qin and Qu 2020] 提出了一种视觉检查编码器表示的新方法,以便它们可以用于理解注意力机制如何用于语音识别任务。
人际交流理解Human Communication Comprehension同样需要借助注意系统,相关研究有 [Zadeh et al. 2018] 。
同样,Transformers 也被广泛用于视觉语言任务,以学习可以有效编码跨模态关系的通用表示。 该领域中使用的两种主要类型的 Transformer 是:single and multi stream [Khan et al. 2021]和ViLBERT [Lu et al. 2019] and LXMERT [Tan and Bansal 2019]
6.4.推荐系统
注意力广泛使用与推荐系统中的用户分析,利用知识图、社交网络等辅助信息学习用户(item)的表示。用户分析的目的是根据用户短期或长期的兴趣为用户交互的内容分配合适的权重。注意力机制根据用户的历史信息用于查找用最相关的内容,以改进协同过滤中的推荐 [He et al. 2018; Shuai Yu 2019] [Kang and McAuley 2018; Qiannan et al. 2019; Ying et al. 2018b; Zhou et al. 2018]。
[Zhu et al. 2020] 使用注意力解决跨域推荐问题。[Deng et al. 2020] 使用 HAN 学习更有效的 item 表示来解决论文评分推荐问题。[Wu et al. 2019] 使用三层 HAN 从评论中学习用户和 item 表示。
注意力也有助于更有效地利用推荐系统中的辅助信息。, [Wang et al. 2019a]的Knowledge Graph Attention Network (KGAT)、[Wu et al. 2020]使用 HAN 来关注影响用户对图片推荐偏好 和 [Xiao et al. 2021] social recommendation model。
6.5.基于图的系统
现实世界中许多重要的数据都以图表或网络的形式出现,如社会关系网络,知识图谱、蛋白质相互作用网络和万维网。注意力已被用于突出与主要任务更相关的图元素(节点、边、子图)[Lee et al. 2019]。注意力已被用于许多使用图形结构数据的机器学习任务,包括 1))Node Classification [Cui et al. 2020; Velickovic et al. 2018], 2) Link Prediction [Zhao et al. 2017], 3) Graph Classification [Lee et al. 2018], 和4)Graph to Sequence Generation [Beck et al. 2018; Zheng et al. 2020]
7.注意力的可解释性
人们对 AI 模型的可解释性越来越感兴趣。然而,神经网络,尤其是深度学习架构因缺乏可解释性而受到批评 [Guidotti et al. 2018].使用注意力进行建模能增加模型的可解释性,因为它允许我们直接检查深度学习架构的内部工作。因为注意力权重就代表了特定输入区域或序列中的特定位置的重要程度。 [Li et al. 2016] 坚持将注意力作为解释神经模型内部运作的重要方法之一。
如图 8 (a)所示,[Rush et al. 2015]展示了注意力模型能专注于输入序列中的关键词,同时为摘要任务生成输出。sp;如图 8 (a)) 显示了注意力权重可以帮助识别用户的兴趣。 用户 1 似乎更喜欢“卡通”视频,而用户 2 更喜欢“动物”视频 [He et al. 2018].如图 8 (c)展示了根据图片生成文本信息,其中通过找到图像的关键区域生成对应的文本信息[Xu et al. 2015]
还有很多关于注意力权重可视化的研究:[De-Arteaga et al. 2019]、 [Yang et al. 2016] 、 [Chan et al. 2016] 、 [Kiela et al. 2018] 、[Lee et al. 2017] 和 [Liu et al. 2018] 。
尽管注意力机制被广泛用于阐明神经网络的内部工作,但使用注意力权重来解释模型仍然是一个活跃的研究领域。有一些研究认为注意力机制不能提高模型的可解释性,如使用注意力权重不能解释 行为/决策模型的生成过程[Jain and Wallace 2019], [Serrano and Smith 2019]。注意权重通常与典型的特征重要性分析不相关 [Jain and Wallace 2019]。注意力权重充其量是输入序列特定区域相对重要性的噪声预测因子,不应被视为模型决策的理由[Serrano and Smith 2019]。
8.总结
在本次综述中,我们讨论了文献中注意力模型的不同使用方式,并试图通过讨论注意力分类法、使用注意力的关键神经网络结构以及受到显著影响的应用领域来概述各种技术。我们讨论了注意力在神经网络中的结合如何显著提高性能,通过促进可解释性,提供了对神经网络内部工作的更深入了解,并通过消除输入的顺序处理提高了计算效率。我们希望本次调查能够更好地了解对这一主题进行研究的不同方向,以及在一个领域中开发的技术如何应用到其他领域。
参考文献
[1]CHOROWSKI J, BAHDANAU D, SERDYUK D, et al. Attention-Based Models for Speech Recognition[C]//29th Annual Conference on Neural Information Processing Systems (NIPS). Montreal, CANADA,2015
[2]Tokens-to-Token ViT: Training Vision Transformers from Scratch on ImageNet
[3]Andrea Galassi, Marco Lippi, and Paolo Torroni. 2020. Attention in Natural Language Processing. IEEE Transactions on Neural Networks and Learning Systems (2020), 1–18.
[4]Krzysztof Marcin Choromanski, Valerii Likhosherstov, David Dohan, Xingyou Song, Andreea Gane, Tamas Sarlos, Peter Hawkins, Jared Quincy Davis, Afroz Mohiuddin, Lukasz Kaiser, David Benjamin Belanger, Lucy J Colwell, and Adrian Weller. 2021. Rethinking Attention with Performers. In International Conference on Learning Representations.
[5]Zichao Yang, Diyi Yang, Chris Dyer, Xiaodong He, Alex Smola, and Eduard Hovy. 2016. Hierarchical Attention Networks for Document Classification. In Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 1480–1489.
ations.
[5]Zichao Yang, Diyi Yang, Chris Dyer, Xiaodong He, Alex Smola, and Eduard Hovy. 2016. Hierarchical Attention Networks for Document Classification. In Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 1480–1489.