代码地址:
还没来得及写,到时写好会放在这里。代码会匹配上中文解释。
摘要
目前占主导的序列转换模型主要是复杂的循环神经网络或卷积神经网络,它包括了一个编码器(encoder)和一个解码器(decoder)。最好的执行模型是通过注意力机制连接编码器(encoder)和解码器(decoder)。我们提出了一个新的并且简单的网络结构Transformer,它主要基于注意力机制,完全消除了循环和卷积神经网络。在两个机器翻译任务的实验表明,这些模型在质量上更加优越,同时更具并行性和需要训练的时间明显减少。我们的模型在WMT 2014英译德任务中达到28.4 BLEU,改进了现有的最好结果,包括超过ensembles算法2BLEU。在WMT 2014英法翻译任务中,在8个gpu训练了3.5天后,我们的模型建立了一个新的单模型最先进的BELU的分数为41.8分,这是文献中最佳模型培训成本的一小部分。通过将Transformer成功地应用于训练数据量大且有限的英语选区分析,我们证明了Transformer可以很好地推广到其他任务中。
1 介绍
尤其是RNN,LSTM,GRU,在序列模型和转换问题(如语言模型和机器翻译)上已经坚决确定了是最先进的技能方法。从那以后,人们不断地在努力突破循环语言模型和编码器-解码器架构的边界。
递归模型通常沿着输入和输出序列的符号位置进行因子计算。将位置与计算时间的步长对齐,它们会生成一系列隐藏层,作为前一个隐藏状态的函数,以及位置的输入t。这种固有的顺序性排除了训练示例中的并行化,这在较长的序列长度下变得至关重要,因为内存约束限制了跨示例的批处理。最近的工作通过因子分解技巧和条件计算在计算效率上取得了显著的改进,同时也提高了后者的模型性能。然而,序列计算过程的基本限制仍然存在。
注意力机制已经成为各种个样的任务中必须引入序列模型和转换模型的一部分,允许对依赖进行建模而不用考虑它们在输入或输出序列中的距离。然而,在少数情况下外的所有情况,这种注意力机制结合循环神经网络一起使用。
在本次工作中,我们提出了Transformer,一个完全避免重复出现的模型架构并且完全依赖于注意力机制来绘制输入和输出之间的全局依赖关系。用8个P00的GPU训练了小12个小时后,Transformer可以实现更大的并行化和让翻译质量能够达到最先进的水平。
2 背景
减少序列计算的目的而且为扩展神经网络的GPU和ByteNet还有ConvS2S奠定了基础,所有都是用卷积神经网络来作为基本的构造块(block),并行计算所有输入和输出的位置隐含的表示。在这些模型中,将来自两个任意输入或输出的位置的信号关联起来并且所需的操作数量随着位置之间的距离而增加,CONVS2为线性,ByteNet为对数的。这样会造成学习位置距离较远的依赖关系更加困难。在Transformer中,将减少到一个固定的操作数,即使这是以平均注意力的权重位置去减少有效的分辨率为代价的,我们用多头注意力来抵消这部分的影响。
自注意力,有时候叫内部注意力,是一种注意力机制,为了计算序列的表示,将单个序列的不同位置联系起来。自注意力已经成功地应用在多个任务中,包含阅读理解,抽象摘要(将seq2seq模型应用在abstractive summarization任务上比较早期的论文),文本蕴涵(指两个文本片段有指向关系)和学习任务无关的句子表征。
端到端的记忆网络基于循环注意力机制,而不是顺序一致的循环,并且在简单的语言问答和语言模型任务中表现良好。
然而,据我们所知,Transformer是第一个完全依赖自注意力去计算表示输入和输出的转换模型而不使用序列对齐的循环神经网络和卷积神经网络。
以下章节,我们会描述Transformer,和以下论文一样说明自注意力的原因和讨论我们模型的优势
论文:
1:Łukasz Kaiser and Ilya Sutskever. Neural GPUs learn algorithms. In International Conference on Learning Representations (ICLR), 2016.,Nal Kalchbrenner, Lasse Espeholt
2:Aaron van den Oord, Alex Graves, and Koray Kavukcuoglu. Neural machine translation in linear time. arXiv preprint arXiv:1610.10099v2,2017.
3:Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin. Convolutional sequence to sequence learning. arXiv preprint arXiv:1705.03122v2, 2017.
3 模型架构
大多数很好的神经序列转换模型都有一个编码器-解码器(encoder-decoder)的结构。这里,编码器将符号表示的输入序()列映射到连续表示序列Z=()。给定Z,解码器然后在一个时间生成一个元素符号输出序列()。模型在每一步都是自回归(auto-regressive),当生成下一步时,就会消费以前生成的符号作为额外的输入。
Transformer遵循这些整体架构,为编码器和解码器使用堆叠的自注意力(self-attention)逐点到全连接层,分别如图1的左右两部分中。
3.1编码器和解码器堆栈(Encoder and Decoder Stacks)
编码器(Encoder):
编码器是由N=6个完全相同的堆栈组成。每个层有两个子层。第一种是多头自注意力结构,第二种是简单的位置全连接前馈网络。我们在每两个子层使用了残差连接,然后进行层归一化。也就是说,每个子层的输出是层归一化(LayerNorm(x + Sublayer(x))),其中Sublayer(x)是子层自己实现的函数。为了方便这些残差网络,模型中所有的子层和嵌入层一样都产生维度输出。
解码器(Decoder):
解码器仍然是由N=6个完全相同的堆栈组成。每个层有两个子层。除了每个编码层的两个子层外,解码器插入了第3个子层,该子层对编码器堆栈的输出执行多头注意力。像编码器一样,我们对每个子层使用残差连接,然后进行层归一化。我们也修改了解码器堆栈中的自注意力的子层,以防止位置对后续位置的影响。这是掩蔽(masking),结合输出嵌入偏移一个位置的事实,确保位置i的预测只能依赖于位置小于i的已知输出。
3.2 注意力(Attention)
一个注意力函数可以描述 查询(query)和一组键值对(key-value)的映射输出,其中,查询(query)、键(key)、值(values)和输出都是向量。输出是作为值的加权总和计算的,分配给每个值(values)的权重是查询(query)相应的键(key)的兼容函数计算的。
图2:左边的结构是按比例缩放的点积注意力(Scaled Dot-Product Attention)。右边是多头注意力(Multi-Head Attention)由多个并行运行注意力层组成。
3.2.1 按比例缩放的点积注意力(Scaled Dot-Product Attention)
我们给我们特别的注意力机制叫"按比例缩放的点积注意力(Scaled Dot-Product Attention)"(图2)。输入是由维度的查询(queries)键(keys)和维度的值(values)构成。我们计算了查询(query)和所有的键(keys)的点积,每一个除以,并且运用softmax函数去获取值(values)的权重。
在实际操作中,我们同时计算一组查询(queries)注意力函数并且打包到矩阵中。键(keys)和值(values)也同时一起打包到矩阵和中。我们计算输出的矩阵为:
两个常用的注意力函数是加法注意力(additive attention)和点积注意力(dot-product (multi-plicative))。点积注意力(Dot-product attention)是和我们的算法完全相同的,除了的缩放因子。加法注意力(Additive attention)使用了带有一个隐藏层的前馈网络计算兼容性函数(compatibility function)。虽然两者在理论上的复杂度相似,但是点积注意力(dot-product attention)在实践中是非常快和省空间的,因为它可以使用高度优化矩阵乘法的代码来实现。
对于较小的情况下,两种机制的表现类似,在比较大时,不需要缩放的加法注意力(additive attention)优于点积注意力(dot product attention)。我们猜想的值比较大时,点积增长的级别是巨大的,从而将softmax函数推入到具有极小梯度的区域。为了抵消这种影响,我们点积乘。
3.2.2 多头注意力(Multi-Head Attention)
我们发现分别用次不同的查询(queries)、键(keys)和值(values)学习了和维度上的线性预测是有利的,而不是用-维度的键(keys)来执行单一注意力函数。对于每一个查询(queries),键(keys),值(values)的预测版本,我们并行地执行attention函数,产生输出值。这些被连接起来并再次预测,最终得到在图2所示的值。
多头注意力允许模型能够同时注意到在不同的位置不同的子空间的信息。如果只有一个注意力的头,就会求平均值来抑制这点。
预测是参数矩阵和
在这项工作中,我们采用了h = 8个平行注意层或头。对于每一项我们使用由于每个头的维度减小了,与计算相关的总成本和满维度的单头注意力相似。
3.2.3 注意力在我们模型中的应用(Applications of Attention in our Model)
Transformer以三种不同的方式使用多头注意力:
第一种方式:在“编码器-解码器的注意力”层中,查询(queries)来自于之前的解码器层,记忆的键(keys)和值(values)来自于编码器的输出。这会使解码器中的所有位置都可以获取到输入序列的所有位置。这个模仿了序列到序列模型中典型的编码器-解码器注意力机制,例如以下论文:
Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural machine translation by jointly learning to align and translate. CoRR, abs/1409.0473, 2014.
Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin. Convolu-tional sequence to sequence learning. arXiv preprint arXiv:1705.03122v2, 2017.
Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, et al. Google’s neural machine translation system: Bridging the gap between human and machine translation. arXiv preprint arXiv:1609.08144, 2016.
第二种方式:编码器包含自注意力层。在自注意力层中,所有的键(keys)、值(values)、查询(queries)来自同一个地方,在本案例中,是编码器上一层的输出。在每一个编码器的位置中可以注意到编码器的上一层的所有的位置。
第三种方式:类似的,解码器中的自注意力层允许解码器中的每个位置去注意到解码层中的所有位置和该位置。我们需要防止信息在解码器中向左流动,以保持自回归特性。我们通过隐藏(mask)softmax的输入的所有值和不同连接的值在内部使用缩放点积注意力。参见图2。
3.3 位置全连接前馈网络(Position-wise Feed-Forward Networks)
除了子层的注意力,我们的编码器和解码器的每一层都包含一个完全连接前馈网络,该网络分别和相同地应用于每个位置。这包括两个线性转换,中间有一个ReLU激活函数。
虽然在不同的位置上线性转换是相同的,但它们在不同的层中使用不同的参数。另外一种描述是这是带有两个核大小为1卷积。输入和输出的维度是和内层的维度是。
3.4 嵌入和Softmax(Embeddings and Softmax)
和其他的序列转换模型类似,我们用学习过的的嵌入(embeddings)去将输入的标记(tokens)和输出的标记(tokens)转换为向量维度。我们通常使用学习过的线性转换和softmax函数去将解码器的输出转换为预测下一个标记(token)的概率。在我们的模型中,我们在两个嵌入层(embedding layers)和pre-softmax线性转换之间分享相同的权重矩阵,类似于下面的论文。在嵌入层中(embedding layers)我们将这些权重乘以
Version:0.9StartHTML:0000000105EndHTML:0000000520StartFragment:0000000141EndFragment:0000000480Ofifir Press and Lior Wolf. Using the output embedding to improve language models. arXiv Version:0.9StartHTML:0000000105EndHTML:0000000463StartFragment:0000000141EndFragment:0000000423preprint arXiv:1608.05859, 2016.
3.5 位置编码(Positional Encoding)
因为我们的模型中不包含递归和卷积,为了使模型能够利用序列的顺序,我们必须注入一些关于表1的相对或绝对位置的信息。表1:不同层的类型的最大路径长度每层(per-layer)复杂度和最小顺序操作数。n是序列的长度,d是维度的表示,k是卷积核的大小和r是附近限制自注意力的大小。
序列中的标记(tokens)。为此,我们将“位置编码(positional encodings)”添加到编码器和解码器堆栈底部的输入嵌入(embeddings)中。位置编码(positional encodings)有一个和嵌入(embeddings)相同维度的,因此可以将两者相加。位置编码(positional encodings)有很多选择,有学习的和固定的。
在本次任务中,我们使用了不同的频率的正弦(sine)和余弦(cosine)函数:
其中是位置,是维度。也就是说,位置编码(positional encoding)的每一个维度都对应一个正弦曲线。波长从到的一个几何级数。我们选择这个函数是因为我们假设这可以让模型更加容易学习去得到相对位置的关系,因为对于任意固定偏移量,可以表示为的线性函数 。
我们还尝试去使用学习过的位置嵌入(positional embeddings),发现两个版本产生了几乎相同的结果(见表3行(E))。我们选择了正弦曲线的版本,因为这会让模型推断序列比训练中遇到的序列更长的序列长度。
4 为什么要自注意力(Why Self-Attention)
在这个章节,我们比较了自注意力层各方面与递归和卷积层进行比较。递归和卷积层通常用于将一个变量长度的符号表示序列映射到另一个等长序列和,例如典型序列转换编码器或解码器中的隐藏层。激励我们使用自注意力,我们考虑三个需求。
一个是每一层的总计算复杂度。另一个是可以并行化的计算量,由所需的最小顺序操作数来衡量。
第三个是网络中远程依赖关系之间的路径长度。在很多序列转换的任务中,学习远程依赖(长依赖)是一个关键挑战。影响学习这种依赖关系的能力的一个关键因素是信号在网络中必须穿越的前向和后向路径的长度。输入和输出序列中任意位置组合之间的路径越短,学习长期依赖(长依赖)关系就越容易。因此,我们也比较了由不同层类型组成的网络中任意两个输入和输出位置之间的最大路径长度。
如表1所示,一个自注意力层(self-attention layer)用固定数量的顺序执行操作连接所有位置,而循环层需要个顺序操作。在计算复杂度方面,当序列长度小于表示维数时,自注意力层(self-attention layers)比 递归网络层快,这是最常见的情况,在最先进的机器翻译模型中使用的句子表征,例如字块(ord-piece)和字节对(byte-pair)表示。提高涉及非常长的序列的任务的计算性能,自注意力(self-attention)可以被限制为只考虑输入序列中以各自输出位置为中心的大小为的邻域。这将增加最大路径长度到。我们计划在未来的工作中进一步研究这种方法。
核宽度为的单个卷积层并不连接所有的输入和输出位置对。在相邻核的情况下,这样做需要个卷积层,或者个卷积层,增加网络中任意两个位置之间的最长路径长度。卷积层通常比递归层贵倍。而可分离卷积则大大降低了卷积的复杂度,达到。然而, 即使有,可分离卷积的复杂性也等于自注意力层(self-attention layer)和位置全连接前馈网络层(point-wise feed-forward layer)的结合,这是我们在模型中采用的方法。
作为附带利益,自注意力(self-attention)可以产生更多可解释的模型。我们检查了我们模型中的注意力分布,并在附录中展示和讨论了一些例子。不仅个别注意离头清楚地学会了执行不同的任务,许多注意力头似乎表现出与句子的句法和语义结构有关的行为。
5 训练(Training)
这张节描述了我们模型的训练方法。
5.1 训练数据和批处理(Training Data and Batching)
我们使用由450万对句子组成的WMT2014英德标准数据集进行训练。使用字节对编码对句子进行编码,该编码具有大约37000个标记(tokens)的共享源-目标词汇表。对于英法两种语言,我们使用了更大的WMT 2014英法数据集,其中包含3600万个句子,并将标记(tokens)拆分为32000个单词块词汇。句子对按照近似的序列长度进行分组处理。每个训练批包含一组句子对,其中包含大约25000个源标记(tokens)和25000个目标标记(tokens)。
5.2 硬件和时间(Hardware and Schedule)
我们在一台机器带有8个英伟达P100显卡的机器上训练我们的模型。对于使用本文中描述的超参数的基本模型,每个训练步骤大约需要0.4秒。我们对基本模型进行了总共10万步或12小时的训练。对于我们的大型模型(如表3所示),步长为1.0秒。这些大型模型被训练了30万步(3.5天)。
5.3 优化器(Optimizer)
我们对 ,和使用了Adam优化器。根据公式,我们在训练过程中改变学习率:
这对应于第一个预热步骤(warmup_steps)和训练步骤(training)去学习率线性增加,然后与步骤数的平方根倒数成比例减少。我们使用。
5.4 正则化(Regularization)
在训练过程中,我们使用了三种正则化方法(但是这里只有两种):
残差信息漏失(Residual Dropout) 我们将信息漏失(dropout)应用到每个子层的输出,然后将其添加到子层的输入并进行正则化。此外,我们在编码器和解码器堆栈中对嵌入(embeddings)和位置编码的和应用了dropout。对于基础模型,我们使用。表2:在2014年英语-德语和英语-法语的最新测试中,Transformer比以前的最先进的模型取得了更好的BLEU分数,而训练成本仅为一小部分。
标签平滑(Label Smoothing) 在训练过程中,我们对值进行标签平滑处理。这会有更大的困惑,因为模型不确定学会了什么,但提高了准确性和BLEU得分。
6 结果(Results)
6.1 机器翻译(Machine Translation)
在WMT 2014英语到德语的翻译任务中,大Transformer模型(表2中的transformer (big))比之前报道的最好的模型(包括合集)高出2.0 BLEU以上,建立了新的最先进的BLEU评分28.4。该模型的配置列于表3的底部。对8个P100显卡的训练花了3.5天。甚至我们的基础模型超过了所有以前发表的模型和集合,而训练成本只是任何竞争模型的一小部分。在WMT 2014英法翻译任务中,我们的大模型获得了41.0的BLEU分数,超过了之前发布的所有单个模型,而训练成本不到之前最先进的模型的1/4。Transformer(大)模型的英语-法语训练的dropout率,而不是0.3。
对于基本模型,我们使用了通过平均最后5个检查点(checkpoints)获得的单个模型,这些检查点每10分钟编写一次。对于大型模型,我们计算了最后20个检查点(checkpoints)的平均值。我们使用波束大小(beam size)为4和长度惩罚为的波束搜索(beam search)。这些超参数是在开发的时候经过实验后选定的。我们在推理期间将最大输出长度设置为输入长度+ 50,但在可能的情况下尽早终止。
表2总结了我们的结果,并将我们的翻译质量和培训成本与文献中的其他模型架构进行了比较。我们通过将训练时间、使用的GPU数量和每个GPU的持续单精度浮点容量相乘,来估计用于训练一个模型的浮点运算的数量。
6.2 模型的变化(Model Variations)
为了评估Transformer不同组件的重要性,我们以不同的方式改变了我们的基本模型,并在开发的数据集(newstest2013)上测量了英语到德语翻译的性能变化。我们使用了前一节所描述的波束搜索(beam search),但没有使用检查点平均。我们在表3中展示了这些结果。
在表3行(A)中,我们改变注意力头(attention heads)的数量以及注意键(attention key)和值(value)维度,保持计算量不变,如章节3.2.2所述。虽然单头注意力比最好的设置差0.9BLEU,但过多的头也会降低质量。
表3:Transformer架构的变化。未列出的值与基本模型的值相同。所有指标都在英德翻译开发数据集(newstest2013)。根据我们的字节对编码,列出的困惑是逐个词块(per-wordpiece)的,不应该与逐个词(per-word)困惑进行比较。
表4:Transformer很好地概括了英语选区解析(结果见WSJ数据集第23节)
在表3行(B)中,我们观察到降低注意力键(attention key)大小会影响模型质量。这表明确定兼容性并不容易,一个比点积更复杂的兼容性函数可能是有益的。我们在(C)和(D)行进一步观察到,正如预期的那样,更大的模型更好,并且dropout在避免过度拟合方面非常有帮助。在行(E)中,我们用学习过的位置嵌入替换正弦位置编码,并观察到与基模型几乎相同的结果。
6.3 英语选区解析(English Constituency Parsing)
为了评估Transformer是否可以推广到其他任务,我们对英语分组解析进行了实验。项任务提出了具体的挑战:产出受到强烈的结构性限制,而且明显长于输入。此外,循环神经网络(RNN)和序列到序列模型(sequence-to-sequence models)还不能在小数据区获得最先进的结果。
我们在语料库(Penn Treebank)上的数据集(Wall Street Journal (WSJ))部分训练了一个的4层transformer,大约训练了40K个句子。我们还在半监督环境中训练它,使用包含大约17M个句子的更大的高置信度和语料库(BerkleyParser)。我们在数据集(WSJ)的设置中使用了16K个标示(tokens)词汇表,在半监督设置中使用了32K个标示(tokens)词汇表。
我们只进行了少量的实验来选择dropout,注意力(attention)和残差(residual)(第5.4节),在第22节开发数据集上的学习速率和束大小(beam size),所有其他参数从英语到德语的基础翻译模型保持不变。在推理过程中,我们将最大输出长度增加到输入长度+300。我们使用beam size 为21和的光束大小(beam size)的数据集(WSJ)和半监督设置。
我们在表4中的结果表明,尽管缺乏特定任务的调优,我们的模型在上表现得非常好,产生的结果比所有以前出现过的模型(除了循环神经网络语法)更好。
与循环神经网络(Rnn)和序列到序列模型(sequence-to-sequence models)相比,Transformer的性能优于Berkeley-Parser(句法分析模型),即使只使用数据集(WSJ)的40K句训练集进行训练。
7 结论(Conclusion)
在本工作中,我们提出了Transformer,这是第一个完全基于注意力的序列转换模型,用多头自注意力(multi-headed self-attention)架构替换了编码器-解码器架构中最常用的循环层。对于翻译任务,Transformer的训练速度比基于循环或卷积层的体系结构快得多。在WMT 2014英语到德语和WMT 2014英语到法语的翻译任务中,我们都达到了一个新的水平。在前一项任务中,我们的最佳模型甚至优于之前所有的报告。
我们对基于注意力的模型的未来感到兴奋,并计划将其应用到其他任务中。我们计划将Transformer扩展到涉及文本以外的输入和输出模式的问题,并研究局部受限的注意力机制,以有效地处理图像、音频和视频等大型输入和输出。减少产生顺序是我们的另一个研究目标。
我们用来训练和评估模型的代码在 https://github.com/tensorflow/tensor2tensor。
感谢 我们感谢Nal Kalchbrenner和Stephan Gouws丰富的评论、更正和启发。
参考文献
[1] Jimmy Lei Ba, Jamie Ryan Kiros, and Geoffrey E Hinton. Layer normalization. arXiv preprint arXiv:1607.06450, 2016.
[2] Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural machine translation by jointly learning to align and translate. CoRR, abs/1409.0473, 2014.
[3] Denny Britz, Anna Goldie, Minh-Thang Luong, and Quoc V. Le. Massive exploration of neural machine translation architectures. CoRR, abs/1703.03906, 2017.
[4] Jianpeng Cheng, Li Dong, and Mirella Lapata. Long short-term memory-networks for machine reading. arXiv preprint arXiv:1601.06733, 2016.
[5] Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Fethi Bougares, Holger Schwenk, and Yoshua Bengio. Learning phrase representations using rnn encoder-decoder for statistical machine translation. CoRR, abs/1406.1078, 2014.
[6] Francois Chollet. Xception: Deep learning with depthwise separable convolutions. arXiv preprint arXiv:1610.02357, 2016.
[7] Junyoung Chung, Çaglar Gülçehre, Kyunghyun Cho, and Yoshua Bengio. Empirical evaluation of gated recurrent neural networks on sequence modeling. CoRR, abs/1412.3555, 2014.
[8] Chris Dyer, Adhiguna Kuncoro, Miguel Ballesteros, and Noah A. Smith. Recurrent neural network grammars. In Proc. of NAACL, 2016.
[9] Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin. Convolutional sequence to sequence learning. arXiv preprint arXiv:1705.03122v2, 2017.
[10] Alex Graves. Generating sequences with recurrent neural networks. arXiv preprint arXiv:1308.0850, 2013.
[11] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 770–778, 2016.
[12] Sepp Hochreiter, Yoshua Bengio, Paolo Frasconi, and Jürgen Schmidhuber. Gradient flow in recurrent nets: the difficulty of learning long-term dependencies, 2001.
[13] Sepp Hochreiter and Jürgen Schmidhuber. Long short-term memory. Neural computation,9(8):1735–1780, 1997.
[14] Zhongqiang Huang and Mary Harper. Self-training PCFG grammars with latent annotations across languages. In Proceedings of the 2009 Conference on Empirical Methods in NaturalLanguage Processing, pages 832–841. ACL, August 2009.
[15] Rafal Jozefowicz, Oriol Vinyals, Mike Schuster, Noam Shazeer, and Yonghui Wu. Exploringthe limits of language modeling. arXiv preprint arXiv:1602.02410, 2016.
[16] Łukasz Kaiser and Samy Bengio. Can active memory replace attention? In Advances in Neural Information Processing Systems, (NIPS), 2016.
[17] Łukasz Kaiser and Ilya Sutskever. Neural GPUs learn algorithms. In International Conferenceon Learning Representations (ICLR), 2016.
[18] Nal Kalchbrenner, Lasse Espeholt, Karen Simonyan, Aaron van den Oord, Alex Graves, and Koray Kavukcuoglu. Neural machine translation in linear time. arXiv preprint arXiv:1610.10099v2,2017.
[19] Yoon Kim, Carl Denton, Luong Hoang, and Alexander M. Rush. Structured attention networks.In International Conference on Learning Representations, 2017.
[20] Diederik Kingma and Jimmy Ba. Adam: A method for stochastic optimization. In ICLR, 2015.
[21] Oleksii Kuchaiev and Boris Ginsburg. Factorization tricks for LSTM networks. arXiv preprintarXiv:1703.10722, 2017.
[22] Zhouhan Lin, Minwei Feng, Cicero Nogueira dos Santos, Mo Yu, Bing Xiang, Bowen Zhou, and Yoshua Bengio. A structured self-attentive sentence embedding. arXiv preprint arXiv:1703.03130, 2017.
[23] Minh-Thang Luong, Quoc V. Le, Ilya Sutskever, Oriol Vinyals, and Lukasz Kaiser. Multi-task sequence to sequence learning. arXiv preprint arXiv:1511.06114, 2015.
[24] Minh-Thang Luong, Hieu Pham, and Christopher D Manning. Effective approaches to attentionbased neural machine translation. arXiv preprint arXiv:1508.04025, 2015.
[25] Mitchell P Marcus, Mary Ann Marcinkiewicz, and Beatrice Santorini. Building a large annotatedcorpus of english: The penn treebank. Computational linguistics, 19(2):313–330, 1993.
[26] David McClosky, Eugene Charniak, and Mark Johnson. Effective self-training for parsing. InProceedings of the Human Language Technology Conference of the NAACL, Main Conference, pages 152–159. ACL, June 2006.
[27] Ankur Parikh, Oscar Täckström, Dipanjan Das, and Jakob Uszkoreit. A decomposable attentionmodel. In Empirical Methods in Natural Language Processing, 2016.
[28] Romain Paulus, Caiming Xiong, and Richard Socher. A deep reinforced model for abstractivesummarization. arXiv preprint arXiv:1705.04304, 2017.
[29] Slav Petrov, Leon Barrett, Romain Thibaux, and Dan Klein. Learning accurate, compact,and interpretable tree annotation. In Proceedings of the 21st International Conference onComputational Linguistics and 44th Annual Meeting of the ACL, pages 433–440. ACL, July 2006.
[30] Ofir Press and Lior Wolf. Using the output embedding to improve language models. arXiv preprint arXiv:1608.05859, 2016.
[31] Rico Sennrich, Barry Haddow, and Alexandra Birch. Neural machine translation of rare words with subword units. arXiv preprint arXiv:1508.07909, 2015.
[32] Noam Shazeer, Azalia Mirhoseini, Krzysztof Maziarz, Andy Davis, Quoc Le, Geoffrey Hinton,and Jeff Dean. Outrageously large neural networks: The sparsely-gated mixture-of-expertslayer. arXiv preprint arXiv:1701.06538, 2017.
[33] Nitish Srivastava, Geoffrey E Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdinov. Dropout: a simple way to prevent neural networks from overfitting. Journal of Machine Learning Research, 15(1):1929–1958, 2014.
[34] Sainbayar Sukhbaatar, Arthur Szlam, Jason Weston, and Rob Fergus. End-to-end memorynetworks. In C. Cortes, N. D. Lawrence, D. D. Lee, M. Sugiyama, and R. Garnett, editors,Advances in Neural Information Processing Systems 28, pages 2440–2448. Curran Associates,Inc., 2015.
[35] Ilya Sutskever, Oriol Vinyals, and Quoc VV Le. Sequence to sequence learning with neuralnetworks. In Advances in Neural Information Processing Systems, pages 3104–3112, 2014.
[36] Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens, and Zbigniew Wojna.Rethinking the inception architecture for computer vision. CoRR, abs/1512.00567, 2015.
[37] Vinyals & Kaiser, Koo, Petrov, Sutskever, and Hinton. Grammar as a foreign language. InAdvances in Neural Information Processing Systems, 2015.
[38] Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V Le, Mohammad Norouzi, WolfgangMacherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, et al. Google’s neural machinetranslation system: Bridging the gap between human and machine translation. arXiv preprint arXiv:1609.08144, 2016.
[39] Jie Zhou, Ying Cao, Xuguang Wang, Peng Li, and Wei Xu. Deep recurrent models with fast-forward connections for neural machine translation. CoRR, abs/1606.04199, 2016.
[40] Muhua Zhu, Yue Zhang, Wenliang Chen, Min Zhang, and Jingbo Zhu. Fast and accurate shift-reduce constituent parsing. In Proceedings of the 51st Annual Meeting of the ACL (Volume 1: Long Papers), pages 434–443. ACL, August 2013.
注意力可视化(Attention Visualizations)
图3:在第6层的第5层中,编码器的远程依赖的注意机制的一个例子。许多注意力集中在动词making的远程依赖关系上,完成词组making…更加困难”。这里只展示了“making”这个词。不同的颜色代表不同的头。最好的彩色观看。
图4:两个注意力头(attention heads),也在第5层和第6层,显然解决了复杂的部分。上图:注意力头5。底部:将注意力从“its”这个单词中分离出来。注意,对这个词的关注非常强烈。
图5:许多注意力头(attention heads)表现出的行为似乎与句子的结构有关。我们在上面给出了两个这样的例子,来自6层的编码器自我注意(self-attention)的两个不同的头。这些头显然学会了执行不同的任务。