基本是机器翻译,也进行了基本的人工矫正,凑活看吧
原论文:《An Introductory Survey on Attention Mechanisms in NLP Problems》
链接:https://arxiv.org/abs/1811.05544
论文时间:2018年

摘要

起初源于人类直觉,后来适用于机器翻译以进行自动token对齐,注意机制是一种根据每个元素被分配的重要性分数对序列数据进行编码的简单方法,已经获得了广泛的应用,并在NLP的多种领域取得了显著性的改进,其中包括情感分类,文本摘要,问答,依赖解析等。本文通过对近期工作的调查,以及对不同NLP问题中的注意力机制的介绍性的总结,旨在为读者提供这种被广泛使用的方法的基本知识,旨在讨论其对不同任务的不同变种,探索其与机器学习中的其他技术的关联,检查评估其性能的方法。

1. 说明

我们通过一个具体的神经机器翻译的例子来介绍我们的主题。传统方法(Kalchbrenner and Blunsom 2013; Cho et al. 2014)是由编码器-解码器结构形成的,这两个都是递归神经网络首先,将源token的一个输入序列喂给编码器,该编码器最后的隐藏的表示将会被提取出来并用于初始化解码器的隐藏状态,然后目标token将会被一个接一个地生成。尽管与纯统计方法相比具有更高的性能,但基于RNN的架构存在两个严重的缺点首先,RNN是健忘的,这意味着旧信息在经过多个时间步骤传播后会被抛弃;其次,在解码期间没有明确的字对齐,因此焦点被分散在整个序列中。为解决上述问题注意力机制首先引入到神经机器翻译中(Bahdanau, Cho, and Bengio 2014)。它们使用相同的RNN编码器,对于解码期间的每个步骤 jjj,它们计算每个输入token的隐藏表示hiin\pmb h^{in}_{i}hhhiin的注意力分数αji\alpha_{ji}αji,进而获得上下文向量cj\pmb c_{j}cccj(参见图1)
eji=a(hiin,hjout)e_{ji} = a(\pmb h_i^{in}, \pmb h_j^{out})eji=a(hhhiin,hhhjout)
αji=eji∑kejk\alpha_{ji} = \frac{e_{ji}}{\sum_k e_{jk}}αji=kejkeji
cj=∑iαjihiin\pmb c_j = \sum_i \alpha_{ji} \pmb h_i^{in}cccj=iαjihhhiin

这里cj\pmb c_{j}cccj是输入序列中元素的加权平均值,是关于当前元素hjout\pmb h^{out}_{j}hhhjout的编码后的句子表示,a(hiin,hjout)a(\pmb h^{in}_{i}, \pmb h^{out}_{j})a(hhhiin,hhhjout)是衡量两个token之间相似性的对齐函数,稍后将详细讨论。然后将cj\pmb c_{j}cccj与当前隐藏状态hj\pmb h_{j}hhhj和最后一个目标token yj−1\pmb y_{j-1}yyyj1组合以生成当前token yj\pmb y_{j}yyyj
yj=fy(hjout,yj−1,cj)\pmb y_j = f_y(\pmb h_j^{out}, \pmb y_{j-1}, \pmb c_j)yyyj=fy(hhhjout,yyyj1,cccj)
hj+1out=fh(hjout,yj)\pmb h_{j+1}^{out} = f_h(\pmb h_j^{out}, \pmb y_j)hhhj+1out=fh(hhhjout,yyyj)

这里 fyf_{y}fyfhf_{h}fh 代表循环网络中的输出层和隐藏层。对每个标记 yj\pmb y_{j}yyyj 重复该过程,直到输出序列的结尾。通过引入这个额外的编码步骤,可以解决前面提到的问题:RNN的坏记忆不再是问题,因为计算输入序列中的每个元素的注意力得分,因此编码后的表示cj\pmb c_{j}cccj的计算不受序列长度的影响;另一方面,这也可以实现输入序列上的软对齐,因为每个元素将会根据注意力得分而获得突出的显示或向下的加权,并且焦点仅放在序列中的重要部分上,而不会去关注无用或不相关的部分。因此,基于注意力的翻译模型在机器翻译中取得了巨大的成功,之后,注意力机制被广泛地应用在其他NLP任务中。此外,现在已经根据注意力的基本形式提出了很多不同的变体,来处理更复杂的任务。在下面的章节,我们将:

  1. 详细解释基本的注意力形式。(公式)
  2. 根据处理的特殊任务讨论不同的变种。(变种)
  3. 探索注意力与机器学习中的其他概念或技术的关联,例如预训练和 ensemble。(应用)
  4. 检验那些用于评估注意力的有效性的方法。(评价)

2. 公式

我们在前面已经讨论了注意力在神经机器翻译中的应用。为了将其形式化的展现为注意力的基本形式,我们将V={vi}∈Rn×dvV=\{\pmb{v}_{i}\}\in\mathbb{R}^{n\times d_{v}}V={vvvi}Rn×dv定义为一个向量元素序列,并将前面的步骤改写为:
ei=a(u,vi)(computeattentionscores)e_{i}=a(\pmb u,\pmb v_{i})\ \ \ \ (compute attention scores)ei=a(uuu,vvvi)(computeattentionscores)
αi=ei∑jej(normalize)\alpha_{i}=\frac{e_{i}}{\sum_{j}e_{j}}\ \ \ \ (normalize)αi=jejei(normalize)
c=∑iαivi(encode)\pmb c=\sum_{i}\alpha_{i} \pmb v_{i}\ \ \ \ (encode)ccc=iαivvvi(encode)

在第一步中,u∈Rdv\pmb u \in \mathbb{R}^{d_{v}}uuuRdv是一个特定于任务的模式(pattern)向量,它会根据对齐函数a(u,v)a(\pmb u,\pmb v)a(uuu,vvv)的值与序列{vi}\{\pmb v_{i}\}{vvvi}中的每个元素进行匹配,这个函数输出的是一个用于衡量匹配程度的标量ei∈Re_{i}\in\mathbb{R}eiR。在大多数情况下,我们假设du=dv=dd_{u}=d_{v}=ddu=dv=d常用的对齐函数(Luong, Pham, and Manning 2015)有:

乘性:
uTv(dot)\pmb u^{T} \pmb v\ \ \ \ (dot)uuuTvvv(dot)
uTWv(general)\pmb u^{T}W\pmb v\ \ \ \ (general)uuuTWvvv(general)

加性:
w2Ttanh(W1[u;v])\pmb w^{T}_{2}tanh(W_{1}[\pmb u;\pmb v])www2Ttanh(W1[uuu;vvv])

MLP:
σ(w2Ttanh(W1[u;v]+b1)+b2)\sigma(\pmb w^{T}_{2}tanh(W_{1}[\pmb u;\pmb v]+\pmb b_{1})+b_{2})σ(www2Ttanh(W1[uuu;vvv]+bbb1)+b2)

它们都度量了不同表示中的成对相似性(pairwise similarity)。最后一个分数 αi∈R\alpha_i \in \mathbb{R}αiR 是每个元素vi\pmb v_{i}vvvi的归一化权重,它在后面被用于将整个序列编码成一个上下文向量c∈Rdu\pmb c\in\mathbb{R}^{d_{u}}cccRdu,而这个向量随后会被作为一个加性的上下文特征合并到下游任务中。直观地说,与模式u\pmb uuuu匹配更紧密的vi\pmb v_{i}vvvi能够得到更大的权重,因此对最终编码c\pmb cccc的影响更大。在机器翻译中,注意力分数可以自然地解释为目标token与每个源token的对齐度量。理想情况下,在生成目标token yj\pmb y_{j}yyyj时,我们期望最优的对齐源标记( the gold alignment source token(s) )能够获得较高的关注分数,这样编码后的表示cj\pmb c_{j}cccj可以为解码提供密切相关的信息。

为了避免混淆,我们在进一步讨论之前先解释符号和缩写的用法。我们对标量使用小写符号,向量使用小写黑体符号,矩阵使用大写符号,张量使用大写黑体符号。当我们提到注意力分数时,eee 代表原始分数,α\alphaα 代表标准化分数。WWWbbb 在默认情况下是训练过程中要学习的权重和偏差,vi\pmb v_{i}vvvi 在默认情况下是一个通用元素,根据场景,它可以是以下任意一个元素:句子中的嵌入token、token的隐藏表示、文档中的嵌入语句等。为了简单起见,我们偶尔使用 SoftMax 来表示包含求幂、求和以及除法的正则化步骤(the normalization step)。

3. 变种

前面,我们讨论了注意力机制的基本形式。由于其简单性和可解释性,它在各种NLP任务中均获得了广泛的应用。然而,这种关注机制一般不足以完成更复杂的任务。下面是一个简单的例子(Sukhbaatar et al. 2015):

Sam walks into the kitchen. (1)
Sam picks up an apple. (2)
Sam walks into the bedroom. (3)
Sam drops the apple. (4)
Q: Where is the apple?
A: Bedroom

潜在的困难在于,Q和(3)之间没有直接的关系,因此我们需要设计一个更复杂的机制,利用上下文中的潜在线索(在本例中是时间推理)来引导模型注意正确的位置。近年来人们提出了各种不同的注意力的变体,我们将它们归纳为几个最具代表性的类别(见表1):基本注意多维注意层次注意自我注意基于记忆的注意特定于任务的注意。从左到右,对应任务的复杂性越来越高,而且注意力机制会变得更加特定于某个具体的任务。我们将在下面的章节中详细讨论每个类别。

3.1 多维注意

基本形式的注意力机制为序列V={vi}V=\{\pmb v_{i}\}V={vvvi}中的每一项计算一个标量分数αi\alpha_{i}αi。这可以称为一维注意或矢量注意,因为连接的输出分数α=αi\pmb \alpha=\alpha_{i}ααα=αi是矢量α∈Rn\pmb \alpha \in R^{n}αααRn。多维关注的动机很简单:捕获在不同的表示空间中的项(terms)之间的多重交互作用,其构造方式可以很直接,也就是将多个一维表示(representations)堆叠在一起

作为二维注意的一个例子,方面和观点项(aspect and opinion terms)提取(Wang et al. 2017),给出了一个标记的隐藏表示序列V={vi}V=\{\pmb v_{i}\}V={vvvi}、一个方面(aspect)原型向量u\pmb uuuu和一个三维张量W={Wk}∈RK×d×d\pmb W=\{W_{k}\} \in \mathbb{R}^{K\times d\times d}WWW={Wk}RK×d×d,其中每个切片(slice)Wk∈Rd×dW_{k}\in \mathbb{R}^{d\times d}WkRd×d是一个矩阵,它捕获了每个标记与原型之间的组合的一种类型,每个元素vi\pmb v_{i}vvvi的向量注意得分ei\pmb e_{i}eeei(未归一化)如下:
ei=tanh(uTWvi)=concat(tanh(uTWkvi))\pmb e_{i} = tanh(\pmb u^{T} \pmb W \pmb v_{i}) = concat(tanh(\pmb u^{T} W_{k} \pmb v_{i}))eeei=tanh(uuuTWWWvvvi)=concat(tanh(uuuTWkvvvi))

然后通过拼接就能得到整个序列的二维注意表示:E={ei}E=\{\pmb e_{i}\}E={eeei}。作为一个具体的例子,考虑“Fish burger is the best dish”这句话,在这里 Fish burger 是一个 aspect term,因此它将获得关于方面原型 u\pmb uuuu 的高度关注分数,并且可学习的W能够在投射到不同空间之后突出显示 Fish 和 burger。这种多维方法的一个缺点是,强指示元素可以同时捕获多种类型的注意力,从而降低其表示能力。为了弥补这一点,我们可以在二维调度矩阵A上施加一个 Frobenius 范数中的正则化惩罚项(Du et al. 2018; Lin et al. 2017):
∣∣AAT−I∣∣F2||AA^{T} − I||^{2}_{F}AATIF2

来约束每个注意栏(attention column),使其集中在序列中的不同部分。

3.2 分层注意

让我们从文档分类中的一个例子开始讨论分层结构。给出一份简短的文件(Yang et al. 2016):How do I get rid of all the old web searches I have on my web browser? I want to clean up my web browser go to tools →\rarr options Then click ”delete history” and ”clean up temporary internet files.”。任务是将文档分为几个类别之一,在本例中是 Computer 与 Internet。直观地说,我们可以识别出为分类提供线索的单词,因为在与计算机相关的文档中,web browser 这个词经常出现。此外,典型的句子也可能为分类提供潜在的信息,因为首次使用计算机软件的非专业人员倾向于寻求有关 How to get rid of 的指导。如果我们考虑文本数据的嵌套结构:character∈word∈sentence∈documentcharacter \in word \in sentence \in documentcharacterwordsentencedocument,就可以相应地构造一个 Hierarchical Attention,从下到上(即从词级到句级)或从上到下(从词级到字符级)地识别线索或从全局和局部提取重要信息

文档分类采用自下而上的结构(Yang et al. 2016)。两个BiGRUs分别用于生成单词级和句子级上下文表示。然后使用一对分层的注意力层来获得单词级和句子级编码:
hi(t)=BiGRU(vi(t))(12)\pmb h_{i}^{(t)} = BiGRU(\pmb v_{i}^{(t)})\ \ \ \ (12) hhhi(t)=BiGRU(vvvi(t))(12)
vi=∑tsoftmax(uwThi(t))⋅hi(t)(13)\pmb v_{i} = \sum_{t}softmax(\pmb u^{T}_{w} \pmb h_{i}^{(t)})\cdot \pmb h_{i}^{(t)}\ \ \ \ (13)vvvi=tsoftmax(uuuwThhhi(t))hhhi(t)(13)
hi=BiGRU(vi)(14)\pmb h_{i} = BiGRU(\pmb v_{i})\ \ \ \ (14)hhhi=BiGRU(vvvi)(14)
c=∑tsoftmax(usThi)⋅hi(15)\pmb c = \sum_{t}softmax(\pmb u_{s}^{T} \pmb h_{i}) \cdot \pmb h_{i}\ \ \ \ (15)ccc=tsoftmax(uuusThhhi)hhhi(15)

SoftMax 相当于我们之前讨论过的normlization步骤。hi(t)\pmb h_{i}^{(t)}hhhi(t)hi\pmb h_{i}hhhi代表单词和句子的隐藏表示。uwT\pmb u_{w}^{T}uuuwTusT\pmb u_{s}^{T}uuusT是训练过程中需要学习的单词级和句子级模式向量。最后一个句子级的表达 c\pmb cccc 被输入到逻辑回归层中来预测类别。

另一种类型的分层关注采用自上而下的方法,例如语法错误纠正(Ji et al. 2017)。考虑一个损坏的句子:I have no enough previleges。其思想是首先建立一个类似于机器翻译的编码器-解码器体系结构,然后应用单词级注意进行全局语法和流畅性错误更正(I have no enough →\rarr I don’t have enough),还可以选择使用字符级注意进行本地拼写错误更正(previleges →\rarr privileges)。自上而下的技术也被用于相册摘要(album summarization)(Yu, Bansal, and Berg 2017),其中照片级的注意用于从相册中选择适当的照片,单词级的注意力被与用于文本生成的序列模型集成在一起。

3.3 自关注

让我们重新回顾一下构建基本形式的注意力的步骤。给定元素V={vi}V=\{\pmb v_{i}\}V={vvvi}的序列和模式向量u\pmb uuuu,对于每个元素vi\pmb v_{i}vvvi,我们可以计算注意力得分αi=a(u,vi)\alpha_{i}=a(\pmb u,\pmb v_{i})αi=a(uuu,vvvi)。这也可以称为外部注意力,因为这里的注意力是将外部模式u\pmb uuuu与每个元素vi\pmb v_{i}vvvi进行匹配来计算的,并且每个得分eie_{i}ei表示匹配的质量。相反,在自我注意中,外部模式u\pmb uuuu被序列本身的一部分所取代,因此也被称为内部注意。举个例子来说明这一点:Volleyball match is in progress between ladies,这里的 match 是所有其他符号所依赖的句首,理想情况下,我们希望利用自我关注来自动捕获这种内在依赖。或者,我们可以将自我关注理解为对每个元素vi\pmb v_{i}vvvi在V中匹配一个内部模式v′\pmb v'vvv:

ei=a(v′,vi)e_{i}=a(\pmb v',\pmb v_{i})ei=a(vvv,vvvi)

v′\pmb v'vvv的一个典型选择是另一个元素vj\pmb v_{j}vvvj,这是为了计算一个成对的注意力分数,但是为了充分捕捉一个序列中的项之间的复杂交互作用,我们可以进一步扩展这个范围来计算一个序列中每对项之间的注意,也就是说,v′\pmb v'vvv设置为一个序列中的每一个元素vj\pmb v_{j}vvvj,并计算一个相应的分数。据此,我们将前面的公式修改为:
eij=a(vi,vj)e_{ij}=a(\pmb v_{i},\pmb v_{j})eij=a(vvvi,vvvj)
αij=softmax(eij)\alpha_{ij} = softmax(e_{ij})αij=softmax(eij)

目的是捕获序列中项之间的复杂交互和依赖关系。对齐函数aaa的选择实际上与基本注意力的相同,例如单层神经网络:
αij=softmax(tanh(wT[vi;vj]+b))\alpha_{ij} =softmax(tanh(\pmb w^{T}[\pmb v_{i};\pmb v_{j}]+b))αij=softmax(tanh(wwwT[vvvi;vvvj]+b))

通过这种方式,每个token保持与所有其他token相关的分布式关系表示,并且复杂的成对(pairwise)关系可以很容易地在其分配的分数上得到解释。这种模型还可以进一步丰富我们前面所提到的多维关注(Shen et al. 2017)。

自我关注的另一个动机与嵌入这个词有关。具体来说,我们希望利用自我关注模型以一种自适应的方式学习复杂的上下文token表示。我们可以通过词义消歧来说明这一点:

I arrived at the bank after crossing the street.
I arrived at the bank after crossing the river.

在不同的上下文中,单词bank有不同的含义,我们希望我们的模型能够学习上下文token嵌入,这些token嵌入可以在其上下文中捕获语义信息。Transformer(Vaswani et al. 2017)是一个典型的基于关注的机器翻译体系。它是一个具有前馈层和自注意层的连续块的混合神经网络。与之前的自我关注模式类似,新的自我关注编码可以表示为:
A=softmax[(VW1)(VW2T)dout]A=softmax[\frac{(VW_{1})(VW_{2}^{T})}{\sqrt{d_{out}}}]A=softmax[dout

(VW1)(VW2T)]
C=AT(VW3)C=A^{T}(VW_{3})C=AT(VW3)

这里,V={vi}∈Rn×dinV=\{\pmb v_{i}\} \in \mathbb{R}^{n\times d_{in}}V={vvvi}Rn×din表示一个输入序列,W1、W2、W3∈Rdin×doutW_{1}、W_{2}、W_{3}\in \mathbb{R}^{d_{in}\times d_{out}}W1W2W3Rdin×dout是将VVV转换为其查询、键和值表示的需要学习的矩阵。因此,C={ci}∈Rn×doutC=\{\pmb c_{i}\}\in \mathbb{R}^{n\times d_{out}}C={ccci}Rn×dout形成了一个自我关注的tokens编码序列。我们可以期望每个输入token在端到端训练期间通过调整其与周围环境的关系来学习一个深度的上下文感知的结构(a deep context-aware configuration)。我们还应该知道,这种架构排除了所有循环和卷积层,因为在一个自我关注层内的计算是并行的(因此大于RNN)并且参数是高效的(与CNN相比)。为了进一步增强其表现力,人们提出了各种方法。位置编码(Positional encoding)(Vaswani et al. 2017)向模型提供了每个token的附加位置信息,其中的一个示例如下:
PE(pos,2i)=sin(pos/100002i/d)PE(pos,2i) = sin(pos/10000^{2i/d})PE(pos,2i)=sin(pos/100002i/d)
PE(pos,2i+1)=cos(pos/100002i/d)PE(pos, 2i + 1) = cos(pos/10000^{2i/d})PE(pos,2i+1)=cos(pos/100002i/d)

这些信息被作为附加特征加入到句子编码中。为了避免不需要的方向的注意,一个方向性的蒙板(directional maskMMM(Shen et al. 2017),被拿来与在正则化之前的分数表示(score representation)相这个蒙板MMM是一个三角形矩阵,在对应的被禁用的位置上是−∞-\infty,不被禁用则为0
αij=softmax(eij+Mij)α_{ij} =softmax(e_{ij} + M_{ij})αij=softmax(eij+Mij)
其中
Mij={0,i>j−∞,otherwiseM_{ij}=\begin{cases}0,\ \ \ \ \ \ \ i>j\\ -\infty,\ \ otherwise \end{cases}Mij={0,i>j,otherwise

用于 backward disabling。这在训练从左到右的语言模型时很有用,因为未来的上下文不应该被用来提供生成下一个token的线索。其他技术包括相对位置编码(relative position encoding)(Shaw, Uszkoreit, and Vaswani 2018),旨在将成对的距离信息(pairwise distance information)合并到上下文token表示cic_{i}ci中,如下所示:
ci=∑jαij(vj+wij)\pmb c_{i} = \sum_{j}\alpha_{ij}(\pmb v_{j} + \pmb w_{ij})ccci=jαij(vvvj+wwwij)

其中,如果VVV被视为完全连通图,则每个权重wij\pmb w_{ij}wwwij与从vi\pmb v_{i}vvvivj\pmb v_{j}vvvj的有向边相对应。这些权重是在训练期间初始化和学习得到的。除了成对得分(pair-wise score)计算,Lin等人提出了一种基于全连接神经网络的用来获得 self-attention 分数的替代方法:
A=softmax(W2tanh(W1(VT))A = softmax(W_{2}tanh(W_{1}(V^{T}))A=softmax(W2tanh(W1(VT))

其中 AAA 中的每一行表示一种注意力。整个序列编码 CCC 可通过以下方式获得:
C=AVC=AVC=AV

在这种情况下,一个元素所获得的关注取决于它通过全连接与整个序列中的所有元素形成的相关性(the attention that an element receives is determined by its relevance to all elements in the entire sequence via full connection.)。由于 CCC 的维数与输入序列长度无关,因此可以通过使用这种技术从可变长度序列中获得固定长度编码。

3.4 基于记忆(Memory-based)的注意力

为了介绍这种新的注意力类型,我们首先用另一种方式重建一下旧的注意力。给定存储在记忆(memory)中的键值对{(ki,vi)}\{(\pmb k_{i},\pmb v_{i})\}{(kkki,vvvi)}和查询向量q\pmb qqqq的列表,我们将这三个步骤重新定义为:

  1. ei=a(q,ki)e_{i} = a(\pmb q, \pmb k_{i})ei=a(qqq,kkki) (address memory)
  2. αi=exp(ei)∑jexp(ej)\alpha_{i} = \frac{exp(e_{i})}{\sum_{j}exp(e_{j})}αi=jexp(ej)exp(ei) (normalize)
  3. c=∑iαivi\pmb c = \sum_{i} \alpha_{i}\pmb v_{i}ccc=iαivvvi (read contents)

在这里,我们将计算注意力得分重新解释为使用查询 q\pmb qqqq 的软记忆寻址,并根据注意力得分{αi}\{\alpha_{i}\}{αi}编码为从记忆中读取内容(and encoding as reading contents from memory based on attention scores),这构成了基于记忆的注意力的最基本形式。事实上,在很多文献中,“记忆”只是输入序列的同义词。还要注意,如果每对ki\pmb k_{i}kkkivi\pmb v_{i}vvvi都相等,这就蜕化为基本的注意机制。然而,可替代的注意机制 (memory-based) 可以变得更加强大,因为我们加入了额外的功能来实现可重用性和增加灵活性,这两个功能稍后我们将详细讨论。

可重用性 一些问答任务中的一个基本困难是答案与问题间接相关,因此无法通过基本的注意力技巧轻松解决(在本节开始部分演示)。但是,如果我们通过进行可迭代的记忆更新(也称为 multi-hop)来模拟一个时间推理过程,从而将注意力引导到答案的正确位置,就可以实现这一点(Sukhbaatar et al. 2015),其概要如图2所示。直观地说,在每次迭代中,查询都会被更新为新的内容,而更新后的查询则用于检索相关内容。图3给出了一个早期示例上的伪运行(pseudo run),其中,查询(the query)初始化为原始问题,随后通过简单地总结当前查询和内容进行更新(Sukhbaatar et al. 2015):
q(t+1)=q(t)+c(t)\pmb q^{(t+1)} = \pmb q^{(t)} + \pmb c^{(t)}qqq(t+1)=qqq(t)+ccc(t)

更有效的更新方法包括,通过查询和多个时间步骤的内容构建循环网络(Kumar et al. 2016)或者根据内容和位置信息(Graves, Wayne, and Danihelka 2014)诱导输出。结果表明,当给出复杂的时间推理任务(如图3所示)时,基于记忆的注意力模型可以在多次跳(several hops)后成功地找到答案。

灵活性 由于键和值被清晰地表示出来,我们可以在设计单独的键和值嵌入时自由地结合先验知识,从而使它们能够更好地捕获相关信息。具体来说,可以手动设计键嵌入以匹配问题,值嵌入以匹配响应。key-value记忆网络(Miller et al. 2016),是一种窗口级表示法,它将键构造为以实体标记为中心的窗口,而值则是相应的实体,旨在实现更高效和准确的匹配。然后,对于图3中的示例,诸如 apple 和 bedroom 之类的实体是值嵌入,它们周围的标记是键嵌入。

更复杂的架构包括动态记忆网络(Dynamic Memory Network)(Kumar et al. 2016)。整体架构分为四个部分:问题模块、输入模块、情景记忆模块和应答模块,每个模块本身就是一个复杂的神经微架构。这种模块化的设计使得分段的领域知识注入、模块间的有效通信以及超越传统问答的可用于更多任务的泛化成为可能。还有一种类似的架构来处理文本和视觉(textual and visual)问答任务(Xiong, Merity, and Socher 2016),其中视觉(visual)输入被输入到深度卷积网络中,高级特征被提取并处理成注意力网络的输入序列。如果我们进一步将记忆和查询表示扩展到问答之外的领域,基于记忆的注意力技术也被用于方面和观点术语挖掘中(aspect and opinion term mining)(Wang et al. 2017),其中,query被表示为aspect的原型;在推荐系统(Zheng et al. 2018)中,用户被作为记忆元件,事物被作为查询;在主题建模(Zheng et al. 2018)中,从深层网络中提取的潜在主题表示构成记忆。

3.5 Task-specific Attention

在本节中,我们将介绍为特定任务精心设计的注意力的替代用法。虽然不像前面介绍的方法那样可归纳,但它们具有良好的动机,并适合于自己的任务,因此值得一提。 Tan et al. 提出了一种计算抽象文档总结(abstractive document summarization)任务注意力得分的替代方法(Tan, Wan, and Xiao 2017)。新的基于图的注意力的形式与pagerank算法相似(Page et al. 1999)。给定一个文档V={vi}V=\{\pmb v_{i}\}V={vvvi},其中每个vi\pmb v_{i}vvvi表示一个句子,固定的注意力分布α={αi}\pmb \alpha=\{\alpha_{i}\}ααα={αi}满足:
α=λWD−1α+(1−λ)y\pmb \alpha=\lambda WD^{-1} \pmb \alpha+(1-\lambda) \pmb yααα=λWD1ααα+(1λ)yyy

这里,WWW是一个正方形矩阵,其中每个条目 WijW_{ij}Wijvi\pmb v_{i}vvvivj\pmb v_{j}vvvj 之间编码一个乘法组合,DDD是一个对角线标准化矩阵,以确保 WD−1WD^{−1}WD1 的每一列的总和为1。λ\lambdaλy\pmb yyyy分别是阻尼系数和辅助均匀分布。那么α\pmb \alphaααα的解析解为:
α=(1−λ)(I−λWD−1)−1y\pmb \alpha = (1 − \lambda)(I − \lambda WD^{−1})^{−1} \pmb yααα=(1λ)(IλWD1)1yyy

潜在的动机是,如果一个句子与许多重要句子紧密相连,那么它在文档中就很重要

Kim et al.提出了一种结构化的注意力网络,它将注意力机制与概率图模型相结合,在输入序列中引入一系列离散的潜在变量Z={zi}\pmb Z=\{\pmb z_{i}\}ZZZ={zzzi}作为软选择器(Kim et al. 2017)。注意力分布p(Z=z∣V,q)p(\pmb Z = \pmb z|V, \pmb q)p(ZZZ=zzzV,qqq)由条件随机场生成,然后被用于将上下文向量编码为这种概率分布的期望值:
c=Ez∼p(z∣V,q)[f(V,z)]c = E_{z\sim p(z|V,q)}[f(\pmb V, \pmb z)]c=Ezp(zV,q)[f(VVV,zzz)]

式中,f(V,z)f(V, \pmb z)f(V,zzz)是模拟潜在变量和给定输入之间关系的注释(annotated)函数。如果Z\pmb ZZZZ是一个单一的随机变量,并且给定f(V,Z=z)=Vzf(V,\pmb Z=z)=V_{z}f(VZZZ=z)=Vz(即从V中选择第z个元素),那么这相当于基本注意中的软选择。在一般情况下,如果不受此限制,它们将证明其对多个输入选择任务(如句法树选择和子序列选择)的适应性。

在机器翻译中,建议使用局部注意力模型(Luong, Pham, and Manning 2015)来处理长序列翻译,其中全局注意力的计算(即关注每个元素)很昂贵。在解码过程中,首先用一个小神经网络预测出一个指定注意力中心的轴位置 pt∈[0,length(V)]p_{t}\in [0,length(V)]pt[0length(V)],然后在其中心周围应用高斯平滑来产生软对准。

4. 应用

在前一节中,我们已经展示了注意力及其变体已广泛应用于各种NLP任务。在这里,我们将进一步探讨注意力与机器学习中其他抽象概念的联系。正如我们之前讨论过的,注意力可以用于编码一个序列,根据其与给定模式的匹配性提取重要的术语;注意力也可以用于对给定查询进行信息寻址和读取。在这里,我们介绍了另外三个注意的应用:emsemblegatingpre-training

4.1 Attention for Ensemble

如果我们将序列中的每个元素vi\pmb v_ivvvi解释为一个单独的模型,并将标准化分数αi\alpha_iαi解释为它们的加权投票,那么应用注意力机制就可以类似于模型集合。Kieta等人对此进行了探讨。在那里,他们整合了一组单词嵌入来构建一个具有更强表达能力和灵活性的元嵌入(Kiela, Wang, and Cho 2018)。特别的,对于嵌入vi[j]\pmb v_{i}^{[j]}vvvi[j]来说,其注意力分数αi[j]\alpha_{i}^{[j]}αi[j]是通过自注意
αi[j]=softmax(wTvi[j]+b)\alpha_{i}^{[j]} = softmax(\pmb w^{T} \pmb v^{[j]}_{i} + b)αi[j]=softmax(wwwTvvvi[j]+b)

给出的。并且第j个单词的元嵌入v[j]\pmb v^{[j]}vvv[j]
v[j]=∑iαi[j]vi[j]\pmb v^{[j]} = \sum_i \alpha_i^{[j]} \pmb v_i^{[j]}vvv[j]=iαi[j]vvvi[j]

它们表明,根据单词的具体性和频率等特点,某些嵌入比其他嵌入更受欢迎。例如,对具体的词,ImageNet 嵌入(He et al. 2016)比FastText嵌入获得更大的权重(Bojanowski et al. 2016)。

4.2 Attention for Gating

注意的另一个应用是将这种机制与递归网络中的记忆更新(memory updates)相结合传统GRU(Chung等人2014年),隐藏状态的更新方式如下:
h~=tanh(Wvi+ri∘(Uhi−1)+b(h))\tilde{\pmb h}=tanh(W \pmb v_{i} + \pmb r_{i} \circ(U \pmb h_{i-1})+ \pmb b^{(h)})hhh~=tanh(Wvvvi+rrri(Uhhhi1)+bbb(h))
hi=ui∘h~i+(1−ui)∘hi−1\pmb h_{i} = \pmb u_{i}\circ \tilde{\pmb h}_{i}+ (1 − \pmb u_{i}) \circ \pmb h_{i-1}hhhi=uuuihhh~i+(1uuui)hhhi1

其中,ui\pmb u_{i}uuuiri\pmb r_{i}rrri是在训练期间学习的更新和重置门。而在另一个基于注意力的GRU中(Xiong、Merity和Socher 2016),当更新隐藏状态时,ui\pmb u_{i}uuui被第i个元素接收的标量注意力分数αi\alpha_iαi所取代。也就是说,最后一个更新步骤被替换为:
hi=αi∘h~i+(1−αi)∘hi−1\pmb h_{i}=\alpha_i\circ \tilde{\pmb h}_{i}+ (1 − \alpha_i) \circ \pmb h_{i-1}hhhi=αihhh~i+(1αi)hhhi1

注意力得分在外部模块中计算。这种基于注意的选通允许基于以前记忆的全局知识进行上下文感知(context-aware)的更新,并且更容易解释每个元素的重要性。同样,在文本理解中,基于查询Q和文档中每个token vi\pmb v_ivvvi之间的交互构建了基于记忆的注意门 q~i\tilde{\pmb q}_iqqq~i(Dhingra等人2016),迭代更新每个token嵌入:
αi=softmax(QTvi)\alpha_i = softmax(Q^T \pmb v_i)αi=softmax(QTvvvi)
q~i=Qαi\tilde{\pmb q}_i = Q\alpha_iqqq~i=Qαi
v~i=vi∘q~i\tilde{\pmb v}_i = v_i \circ \tilde{\pmb q}_ivvv~i=viqqq~i
vi,Q=GRUv(v~i),GRUQ(Q)\pmb v_i,Q = GRU_v(\tilde{\pmb v}_i),GRU_Q(Q)vvvi,Q=GRUv(vvv~i),GRUQ(Q)

旨在构建深度查询特定的token表示。

4.3 Attention for Pre-training

预训练的单词嵌入对于许多NLP任务至关重要。传统方法,如SkipgramCbowGlove(Mikolov et al. 2013a; Pennington, Socher, and Manning 2014; Mikolov et al. 2013b)利用大文本语料库,根据上下文训练一个无监督预训练模型,对每个token学习一个高维分布式表示。与此相反,最近提出的预训练方法将基于注意的技术与深度神经架构相结合,旨在学习更高质量的token表示,该表示结合了来自token周围环境的句法和语义信息。然后对模型进行微调,以适应具体的有监督任务。BERT(Devlin等人2018)是以Transformer编码器(Vaswani等人2017年)为架构的双向预训练模型,我们在第3.3节中简要讨论了一个具有前馈层和自我关注层的深度混合神经网络。在预训练期间,一个任务是学习双向 masked 语言模型,这意味着一个句子中的一小部分token被 masked,目标是根据上下文预测这些tokens。另一项任务是二元下一句预测(binary next sentence prediction),从语料库中抽取两段文本,并训练模型来预测它们是否是连续的。如第3.3节所述,随着训练的进行,每个token在整个序列中重新分配注意力,并以自适应的方式重建其与其他token的交互,目的是学习基于整个序列的上下文表示。当预训练模型与监督任务集成时,在模型顶部添加一个附加层,并对其进行微调以适应其监督的下游任务新的模型在各种NLP任务上取得了突破性的成果,其重点是在大文本语料库上对深层混合结构进行预训练,然后在微调方面尽可能少地做些努力。其他基于注意力的预训练模型包括OpenAI GPT,它使用一个Transformer解码器(带反向禁用屏蔽)来预训练一个基于不同任务集的从左到右的深层语言模型。

5. 评估

与普遍使用注意力的情况相比,只有少数人试图给出一个严格的数学理由来解释为什么它能在各种情况下工作。然而,有几项工作试图建立评估其表现的标准,无论是定性的还是定量的,特定于任务的还是一般性的,在此我们对这些方法做一个简短的总结。

5.1 定量的

注意力的定量评价进一步分为内在评价还是外在评价,这是根据注意力的作用是在其自身还是在其下游监督任务。

内在评价方法在机器翻译(Luong、Pham和Manning 2015)中被提出,其中注意力类似于单词对齐,注意力的表现可以通过将注意力分布与最优对齐数据( the gold alignment data)进行比较而直接得到,并使用对齐误差率(AER)进行量化。同样,Liu等人提出了一种人工构造“最优注意向量”的方法(Liu等人2017年),首先在句子中识别标记的关键词,然后进行后处理(post-processing)程序,如平滑和规范化,这种方法给出了大量标记良好的数据。例如,Mohamad fired Anwar, his former protege, in 1998,四个黑体字的标记为论点词,每个标记的注意力得分为0.25(0.25×4=1),然后可以选择在每个参与的标记周围应用平滑。虽然固有的评估方法能够精确地测量性能,但它们往往局限于特定的任务,并且严重依赖于标记数据的丰富性。

另一方面,外部评估方法(图4)更为普遍,并获得了更广泛地使用。通过比较下游任务中不同模型的总体性能,可以很容易地说明这一点。然而,结果可能是误导性的,因为这些改进是否应该归因于注意力还无法确定。

5.2 定性的

定性注意力评价是目前应用最广泛的评价技术,因为它简单易行,便于可视化(图5)。具体来说,在整个句子中构建一个热图,其强度与每个元素接收到的标准化注意力得分成比例。直觉上,注意力应该集中在相应任务的关键词上。然而,这种方法在可视化方面的表现要比在分析方面出色。

6. 结论与展望

本文通过对近年来注意力机制的调查,从注意力机制的形成、变化、应用和评价等方面进行了综述。与它在各种NLP任务中的广泛应用相比,探索其数学合理性的尝试仍然很少。近年来,探索其在嵌入预训练中的应用,取得了巨大的成功,可能成为未来研究的一个方向。


参考文献

Bahdanau, D.; Cho, K.; and Bengio, Y. 2014. Neural machine translation by jointly learning to align and translate. arXiv preprint arXiv:1409.0473.
Bojanowski, P.; Grave, E.; Joulin, A.; and Mikolov, T. 2016. Enriching word vectors with subword information. arXiv preprint arXiv:1607.04606.
Cho, K.; Van Merrie ̈nboer, B.; Bahdanau, D.; and Bengio, Y. 2014. On the properties of neural machine translation: Encoder-decoder approaches. arXiv preprint arXiv:1409.1259.
Chung, J.; Gulcehre, C.; Cho, K.; and Bengio, Y. 2014. Empirical evaluation of gated recurrent neural networks on sequence modeling. arXiv preprint arXiv:1412.3555.
Devlin, J.; Chang, M.-W.; Lee, K.; and Toutanova, K. 2018. Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.
Dhingra, B.; Liu, H.; Yang, Z.; Cohen, W. W.; and Salakhutdinov, R. 2016. Gated-attention readers for text comprehension. arXiv preprint arXiv:1606.01549.
Du, J.; Han, J.; Way, A.; and Wan, D. 2018. Multi-level structured self-attentions for distantly supervised relation extraction. arXiv preprint arXiv:1809.00699.
Graves, A.; Wayne, G.; and Danihelka, I. 2014. Neural turing machines. arXiv preprint arXiv:1410.5401.
He, K.; Zhang, X.; Ren, S.; and Sun, J. 2016. Deep residual learning for image recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition, 770–778.
Ji, J.; Wang, Q.; Toutanova, K.; Gong, Y.; Truong, S.; and Gao, J. 2017. A nested attention neural hybrid model for grammatical error correction. arXiv preprint arXiv:1707.02026.
Kalchbrenner, N., and Blunsom, P. 2013. Recurrent continuous translation models. In Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing, 1700–1709.
Kiela, D.; Wang, C.; and Cho, K. 2018. Dynamic metaembeddings for improved sentence representations. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, 1466–1477.
Kim, Y.; Denton, C.; Hoang, L.; and Rush, A. M. 2017. Structured attention networks. arXiv preprint arXiv:1702.00887.
Kumar, A.; Irsoy, O.; Ondruska, P.; Iyyer, M.; Bradbury, J.; Gulrajani, I.; Zhong, V.; Paulus, R.; and Socher, R. 2016. Ask me anything: Dynamic memory networks for natural language processing. In International Conference on Machine Learning, 1378–1387.
Lin, Z.; Feng, M.; Santos, C. N. d.; Yu, M.; Xiang, B.; Zhou, B.; and Bengio, Y. 2017. A structured self-attentive sentence embedding. arXiv preprint arXiv:1703.03130.
Liu, S.; Chen, Y.; Liu, K.; and Zhao, J. 2017. Exploiting argument information to improve event detection via supervised attention mechanisms. In Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), volume 1, 1789–1798.
Luong, M.-T.; Pham, H.; and Manning, C. D. 2015. Effective approaches to attention-based neural machine translation. arXiv preprint arXiv:1508.04025.
Mikolov, T.; Chen, K.; Corrado, G.; and Dean, J. 2013a. Efficient estimation of word representations in vector space. arXiv preprint arXiv:1301.3781.
Mikolov, T.; Sutskever, I.; Chen, K.; Corrado, G. S.; and Dean, J. 2013b. Distributed representations of words and phrases and their compositionality. In Advances in neural information processing systems, 3111–3119.
Miller, A.; Fisch, A.; Dodge, J.; Karimi, A.-H.; Bordes, A.; and Weston, J. 2016. Key-value memory networks for directly reading documents. arXiv preprint arXiv:1606.03126.
Page, L.; Brin, S.; Motwani, R.; and Winograd, T. 1999. The pagerank citation ranking: Bringing order to the web. Technical report, Stanford InfoLab.
Pennington, J.; Socher, R.; and Manning, C. 2014. Glove: Global vectors for word representation. In Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP), 1532–1543.
Shaw, P.; Uszkoreit, J.; and Vaswani, A. 2018. attention with relative position representations. preprint arXiv:1803.02155.
Shen, T.; Zhou, T.; Long, G.; Jiang, J.; Pan, S.; and Zhang, C. 2017. Disan: Directional self-attention network for rnn/cnn-free language understanding. arXiv preprint arXiv:1709.04696.
Sukhbaatar, S.; Weston, J.; Fergus, R.; et al. 2015. End-to-end memory networks. In Advances in neural information processing systems, 2440–2448.
Tan, J.; Wan, X.; and Xiao, J. 2017. Abstractive document summarization with a graph-based attentional neural model. In Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), volume 1, 1171–1181.
Vaswani, A.; Shazeer, N.; Parmar, N.; Uszkoreit, J.; Jones, L.; Gomez, A. N.; Kaiser, Ł.; and Polosukhin, I. 2017. Attention is all you need. In Advances in Neural Information Processing Systems, 5998–6008.
Wang, W.; Pan, S. J.; Dahlmeier, D.; and Xiao, X. 2017. Coupled multi-layer attentions for co-extraction of aspect and opinion terms. In AAAI, 3316–3322.
Xiong, C.; Merity, S.; and Socher, R. 2016. Dynamic memory networks for visual and textual question answering. In International conference on machine learning, 2397–2406.
Yang, Z.; Yang, D.; Dyer, C.; He, X.; Smola, A.; and Hovy, E. 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.
Yu, L.; Bansal, M.; and Berg, T. L. 2017. Hierarchically attentive rnn for album summarization and storytelling. arXiv preprint arXiv:1708.02977.
Zeng, J.; Li, J.; Song, Y.; Gao, C.; Lyu, M. R.; and King, I. 2018. Topic memory networks for short text classification.
Zheng, L.; Lu, C.-T.; He, L.; Xie, S.; Noroozi, V.; Huang, H.; and Yu, P. S. 2018. Mars: Memory attention-aware recommender system. arXiv preprint arXiv:1805.07037.

注意力机制在NLP问题中的介绍与调查-论文翻译相关推荐

  1. 深度学习与自然语言处理教程(6) - 神经机器翻译、seq2seq与注意力机制(NLP通关指南·完结)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/36 本文地址:https://www.showmeai.tech/article-d ...

  2. 自适应注意力机制在Image Caption中的应用

    在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点,时刻紧跟 AI 前沿成果. 点击本文底部的「阅读原文」即刻加入社区 ...

  3. 详解自注意力机制及其在LSTM中的应用

    详解自注意力机制及其在LSTM中的应用 注意力机制(Attention Mechanism)最早出现在上世纪90年代,应用于计算机视觉领域.2014年,谷歌Mnih V等人[1] 在图像分类中将注意力 ...

  4. 注意力机制在活体检测中的应用

    1.注意力机制 意力模型(Attention Model)被广泛使用在自然语言处理.图像识别及语音识别等各种不同类型的深度学习任务中.注意力机制的概念来源于人体的视觉观察系统,针对一幅图像,大脑很快速 ...

  5. 注意力机制在推荐模型中的应用——AFM、DIN、DIEN

    "注意力机制"来源于人类最自然的选择性注意的习惯.最典型的例子是用户在浏览网页时,会选择性地注意页面的特定区域,忽视其他区域.正是基于这样的现象,在建模过程中考虑注意力机制对预测结 ...

  6. 注意力机制在推荐模型中的应用——DIN

    DIN 模型的应用场景是阿里最典型的电商广告推荐, DIN 模型本质上是一个点击率预估模型. Base Model 下图是 DIN 的基础模型 Base Model.我们可以看到,Base Model ...

  7. transformer 中的注意力机制和胶囊网络中的动态路由:它们在本质上或许具有相似性

    https://mp.weixin.qq.com/s/RUf0igO2FShhq3c8WIgxYQ

  8. 时序动作定位|使用 ‘注意力机制’ 的弱监督时序动作定位顶会论文理解笔记(Weakly-Supervised Temporal Action Localization)

    目录 Weakly Supervised Action Localization by Sparse Temporal Pooling Network(CVPR 2018) W-TALC: Weakl ...

  9. 注意力机制、bmm运算

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Encoder编码器-Decoder解码器框架 + Atten ...

最新文章

  1. 为NLP从业者/研究生/研究员专门定制的全网唯一高端NLP训练营
  2. 梯度提升决策树GBDT及其优秀改进XGBoost的浅析
  3. java内存 phd文件抓取_您可以从IBM PHD Java堆转储中提取字符串的值吗?
  4. 如何基于 K8s 构建下一代 DevOps 平台?
  5. 骆驼路线的主/从故障转移
  6. 信息学奥赛一本通(2046:【例5.15】替换字母)
  7. java链表的用法_数据结构(java语言描述)链表的使用
  8. CCNA路由协议总结之IGRP
  9. 动态规划实战7 leetcode-221. Maximal Square
  10. 计算机更新bios,win7bios升级教程_win7电脑主板bios升级的方法
  11. 基于JSP的旅游网站论文
  12. 经典laravel后台管理系统
  13. Django的了解及应用途径
  14. 硬盘检测工具MHDD图文教程
  15. (二)OpenCV-Python学习—对比度增强
  16. python判断字符串是否包含英文字母
  17. 【MyBatis】多表查询
  18. JLINK仿真器来仿真调试mini2440
  19. quartus II 18.1 下载
  20. d3.js 实现企业图谱(基于vue)

热门文章

  1. 在不损坏硬盘数据情况下,MBR格式转GPT格式,手动创建EFI和MSR分区,安装WIN10/WIN8.1...
  2. 高通平台修改msm8916_defconfig
  3. 用狼的处世哲学做SOHO 一
  4. 解决SSH连接超时的2个配置方法
  5. tensorflow 如何计算向量余弦相似 cosine similarity
  6. 使用钉钉自定义机器人发信息
  7. Redis详情教学加源码,欢迎大家来下载
  8. 弗洛伊德算法(求每一对顶点间的最短路径)
  9. IDEA 自定义代码模板
  10. 请教dalao,为什么运行时二三步会合并到一起?