发布时间:2024-06-20 18:01
主流的序列转换模型都是基于复杂的循环或者卷积神经网络的,他们都包含一个编码器和一个解码器。做的最好的模型也是通过注意力机制将编码器和解码器连接起来。我们提出了一个简单的网络结构–Transformer,仅依赖于注意力机制,完全放弃递归和卷积。在两个机器翻译任务中的实验表明:这些模型在翻译效果上更好,同时更并行化,训练需要的时间明显更少。我们的模型在 WMT 2014英语转德语翻译任务中达到了28.4 BLEU,比现有的最好的结果高出 2 BLEU。在WMT 2014英语转法语翻译任务中,我们的模型建立了一个新的单模型,在8块GPU上训练了3.5天后取得了到目前为止最好的BLEU–41.8分。这是文献中的最好的训练模型的训练代价的一小部分。我们将Transformer成功的运用在了大但有限的训练数据集上来做英语选区解析,表现了Transformer对其他任务具有良好的泛化能力。
特别的,循环神经网络,长短期记忆网络,门控循环神经网络,作为目前最好的模型,是已经在序列模型和转换问题上建立了稳固地位的,比如:语言模型和机器翻译。但是大量的努力继续推动着循环语言模型和编码器-解码器架构的发展。
循环模型通常沿输入和输出序列的符号位置分解计算,在计算时间内将位置和步数对齐。他们生成一系列的隐藏状态 h t h_t ht,作为上一个隐藏状态 h t − 1 h_{t-1} ht−1和位置 t t t输入 的函数。这种固有的序列特性使训练不能并行进行。这在更长的序列中变得至关重要,因为内存的局限性,限制了跨文本的批处理。通过使用因子分解技术和条件计算,最近的工作在计算效率上已经取得显著性的改善。也提高了后者的模型性能。然而,顺序计算的基本约束仍然存在。
注意力机制已经在很多版本中变成了编译序列模型和转换模型的一个整体部分。允许对依赖项进行建模,而不用考虑它们在输入或输出序列中的距离。然而,除少数情况外,其他所有情况都是将这种注意机制与循环网络结合使用。
在本文中,我们提出了Transformer,这个模型架构避开了循环网络,取而代之的是完全依赖注意力机制,在输入和输出之间绘制一个全局依赖关系。Transformer允许使用更多的并行计算,并且在训练质量上达到了一个新的高度,仅需在8块 P100 GPUs上训练12个小时。
减少按照顺序计算的目标也是Extended Neural GPU[16], ByteNet [18] and ConvS2S [9]网络产生的基础,他们都是用卷积神经网络作为一个基础构造块。并行计算所有输入和输出位置的隐藏表示。在这些模型中,将两个任意输入或输出位置的信号关联起来所需的操作数随着位置之间的距离变长而增加,对于ConvS2S是线性级的,对于ByteNet是对数级的。这让学习远距离位置之间的依赖关系变的更困难。在Transformer中这减小到了一个固定的操作数,尽管是以平均加权注意力位置的分辨力的有效性降低为代价的,我们用3.2节中的多头注意力机制来抵消这种影响。
Self-attention(自注意力)有时又叫做 intra-attention(内注意力)是一个注意力机制,将一个序列的不同位置联系起来,去计算一个序列的表现力。自注意力机制已经很成功的运用在了大量任务中,包括阅读理解,抽象概括,文本填充,和学习任务无关的句子表征 [4, 27, 28, 22]。
端到端的存储网络是基于一个循环注意力机制而不是循环对齐的序列,在简单语言问答和语言模型任务中表现得很好。
然而,Transformer是我们知道的做的最好的,Transformer是第一个转换模型,它完全依赖自注意力机制去计算输入和输出的的表现力,不用使用对齐序列的RNNs或者卷积。接下来,我们将会介绍Transformer,自注意力,讨论它比其它模型好的地方。
最具竞争力的神经序列转换模型有一个编码器-解码器结构。这里编码器用符号表示的输入序列(x1, …, xn)映射到了用连续表示的一个序列z = (z1, …, zn)。给定z,然后,解码器一次生成一个元素的符号输出序列。模型的每一步都是自回归,使用之前生成的符号作为生成下一个符号的输入。
Transformer遵循这个整体架构,使用堆叠的自注意力和point-wise,编码器和解码器使用全连接层,在 Figure 1的左半部分和右半部分分别展示。
Figure 1 : Transformer—模型架构
编码器 :编码器是由N=6的特征层堆叠而成的。每个层有两个子层。第一个子层是一个多头的自注意力机制,第二个是一个简单的, 具有position-wise的全连接前馈网络, 我们在每个子层都使用了残差连接,每个子层然后再做层标准化。也就是这样的,每个子层的输出是LayerNorm(x + Sublayer(x)),在这里边Sublayer(x)是一个函数由sub-layer自己实现(Sublayer(x)其实是图一中的Multi-Head Attention或者Feed forward)。为了方便残差链接,在模型中的所有子层以及embedding layers(嵌入层),产生的输出维度都是 d m o d e l d_{model} dmodel = 512。
解码器 :解码器也是由N=6的特征层堆叠而成的。除了在每个解码器中有两个子层外,解码器插入了第三个子层,它在解码器堆的输出之上执行多头注意力(从图上看其实就是编码器输出的结果和第三子层的结果一起输入解码器的第二个子层)。和编码器类似。我们在每个子层上使用一个残差链接,接着再用一个层标准化。我们也修改了解码器堆中的自注意力子层,为了阻止当前位置关注到后续的位置。这个遮罩和嵌入层输出是有一个位置的偏差,从而确保预测位置 i 时只能依靠已知的位置小于 i 的那些输出。
注意函数可以描述为将一个 query和一组 key-value对映射到一个输出, query, keys, values和输出都是向量。输出是values的加权和。其中,指派给每个value的权重是由query和相应的key的调和函数计算的。
Figure 2 : (左) 点积注意力。(右)由几个注意力层并行运行组成的多头注意力
我们称我们的特殊的注意力为”比例点积注意力“(Figure 2)。输入由维度为 d k d_k dk的queries和 keys组成,values的维度为 d v d_v dv。我们将query和所有的keys计算点积,每一个都除以 d k \\sqrt{d_k} dk , 用softmax函数(作用在上述结果上)获得values的权重。(看公式1)
事实上,我们同时在一组queries上计算注意力,并将其打包在一起给矩阵Q。 keys和values也是打包到一起分别给K和V,我们计算输出矩阵如下: A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) ( 1 ) Attention(Q, K, V ) = softmax(\\frac{QK^T}{\\sqrt{d_k}})\\quad \\quad \\quad \\quad \\quad \\quad(1) Attention(Q,K,V)=softmax(dk QKT)(1)
两个最通用的注意力函数是 additive attention(加性注意力)和点积注意力。点积注意力除了比例因子 1 ( d k ) \\frac{1}{\\sqrt(d_k)} ( dk)1和我们的不同外其他的都相同。加性注意力用一个单隐藏层的前馈网络计算调和函数。然而,这两个理论上在复杂度上是相似的。在实际中,点积注意力更快更省空间,因此它能由高度优化的矩阵相乘的代码实现。
然而对于 d k d_k dk小的values,两种机制表现的相似,对于 d k d_k dk大的values,加性注意力不用缩放,要胜过点积注意力。我们认为对于 d k d_k dk大的values,点积在数值上增长很快,因为它将softmax函数推向了梯度极小的区域。为了抵消这个影响,我们通过乘以 1 d k \\frac{1}{\\sqrt{d_k}} dk 1来缩放点积
而不是用 d m o d e l d_{model} dmodel-维度的 keys, values 和 queries执行一个单个的注意力函数,我们发现用不同的线性投影将queries、keys和values分别线性投影到dk、dk和dv维上h次是有益的。在每一个这些queries, keys 和values的投影版本中,我们接着并行执行注意力函数,生成 d m o d e l d_{model} dmodel-维输出值。把它们Concat在一起,然后再执行一次投影,将结果作为最终的值,就像Figure 2 : 中描绘的那样。
多头注意力能够使模型共同关注来自不同位置不同表征子空间的信息。用一个单注意力头,观察不全。 M u l t i H e a d ( Q , K , V ) = C o n c a t ( h e a d 1 , . . . , h e a d h ) W O w h e r e h e a d i = A t t e n t i o n ( Q W i Q , K W i K , V W i V ) MultiHead(Q, K, V ) = Concat(head_1, ..., head_h)W^O \\\\ \\quad\\quad\\quad\\quad\\quad\\quad\\quad\\quad where \\quad head_i = Attention(QW_i^Q , KW^K_i , VW^V_i ) MultiHead(Q,K,V)=Concat(head1,...,headh)WOwhereheadi=Attention(QWiQ,KWiK,VWiV)
其中参数矩阵 W i Q ∈ R d m o d e l ∗ d k , W i K ∈ R d m o d e l ∗ d k , W i V ∈ R d m o d e l ∗ d k 和 W i O ∈ R h d v ∗ d m o d e l W^Q_i \\in \\mathbb R^{d_{model} * d_k},W^K_i \\in \\mathbb R^{d_{model} * d_k},W^V_i \\in \\mathbb R^{d_{model} * d_k} 和W^O_i \\in \\mathbb R^{hd_v*d_{model}} WiQ∈Rdmodel∗dk,WiK∈Rdmodel∗dk,WiV∈Rdmodel∗dk和WiO∈Rhdv∗dmodel。
在本文中我们使用了 h=8的并行注意力层或者头。对于这中的每一个我们用 d k = d v = d m o d e l / h = 64 d_k=d_v=d_{model}/h=64 dk=dv=dmodel/h=64。由于减小了每个头的维度,总的计算代价和满维的单头注意力相似。
Transformer以三个不同的方式使用了多头注意力:
除了去关注子层,在我们的编码器和解码器中的每一层都包含一个全连接前馈网络。它们被应用到了相同的位置上。这包含了两个线性变换,两线性变换之间用一个ReLU激活函数。
F F N ( x ) = m a x ( 0 , x W 1 + b 1 ) W 2 + b 2 ( 2 ) FFN(x) = max(0, xW_1 + b_1)W_2 + b_2 \\quad\\quad\\quad\\quad\\quad\\quad\\quad(2) FFN(x)=max(0,xW1+b1)W2+b2(2)
虽然线性变换在不同的位置上是相同的,但它们在不同的层之间使用不同的参数。另一种描述方式是核大小为1的两个卷积。输入和输出的维度为 d m o d e l = 512 d_{model}=512 dmodel=512,内层有的维度是 d f f = 2048 d_{ff}=2048 dff=2048.
和其他序列转换模型类似,我们用已学习过的嵌入层将输入tokens和输出tokens转换成 d m o d e l d_{model} dmodel维度的向量。我们也用已学习过的寻常转化和softmax函数将解码器的输出转换为预测下一个token的概率。在我们的模型中,我们在两个嵌入层和pre-softmax线性转换上共享相同的权重矩阵,与[30]类似。在嵌入层,我们用权重乘以 d m o d e l \\sqrt{d_{model}} dmodel 。
由于我们的模型没有包含循环和卷积,为了模型能够利用序列的有序性,我们必须再序列中注入token的相对或者绝对位置信息。为此,我们在编码器和解码器堆的底部将“位置编码”添加到输入嵌入层,位置编码和嵌入层有相同的维度 d m o d e l d_{model} dmodel,因此两个可以相加。位置编码有很多可选方式,比如:可以学习的和固定位置的。在本文中,我们用不同频率的sin和cos函数(属于固定位置的一种位置编码编码方式)。 P E p o s , 2 i = s i n ( p o s / 1000 0 2 i / d m o d e l ) PE_{pos, 2i}=sin(pos/10000^{2i/d_{model}}) PEpos,2i=sin(pos/100002i/dmodel) P E p o s , 2 i + 1 = c o s ( p o s / 1000 0 2 i / d m o d e l ) PE_{pos, 2i+1}=cos(pos/10000^{2i/d_{model}}) PEpos,2i+1=cos(pos/100002i/dmodel)其中,pos是当前位置, i i i是维度。位置编码的每一个维度对应一个正弦波,波长是从2π到10000*2π的几何数列。我们选择这个函数是因为我们认为这个函数通过添加相对位置信息能让模型学起来更容易。因为对于任何固定的偏移量k, P E p o s + k PE_{pos+k} PEpos+k被认为是 P E p o s PE_{pos} PEpos的一个线性函数。
我们也试验了具有位置学习能力的嵌入层。相反,发现两个版本产生的结果很接近(看Table 3的E行)。我们选择正弦版本是因为它可能允许模型推断出比在训练期间遇到的序列长度还长的序列长度。
在这部分,我们对比了自注意力层与循环层和卷积层的很多方面,用于映射用符号( x 1 , . . . , x n x_1, ..., x_n x1,...,xn)表示的一个变长序列到另一个等长序列 ( z 1 , . . . , z n z_1, ..., z_n z1,...,zn),其中 x i , z i ∈ R d x_i, z_i\\in \\mathbb R^d xi,zi∈Rd, 比如在一个经典的序列转换编码器或者解码器中的一个隐藏层。激励我们用自注意力的原因主要有三个:
Table 1: 不同类型层的最大路径长度,每一层的复杂度,和最小的序列操作数。 n n n是序列长度, d d d表征维度, k k k卷积核大小, r r r是受限的自注意力的邻域大小。
层的类型 每层的复杂度 序列的操作数 最大路径长度
如表1,一个自注意力层连接所有位置只用了一个常数O(1)量级的序列可执行操作数。然而一个循环层则需要O(n)的序列操作数。就计算复杂度而言,当序列的长度 n n n比表征维度 d d d小时,自注意层比循环层更快。在机器翻译当中,最好的模型使用最多的句子表征是自注意力。像词条表征,字节对表征。为了提高计算表征力,对于涉及非常长的序列的任务,自注意力限制为只考虑输入序列半径为r的邻域,被放到了各自输出位置的中间。这将把最大路径长度增加到O(n/r)。我们将在未来研究这个方法。
一个核大小为 k k k< n n n的单卷积层不能连接所有的输入输出位置对。因此如果是连续核要求用一个O(n/k)的卷积层堆,或者如果是拓展卷积则用 O ( l o g k ( n ) ) O(log_k(n)) O(logk(n))的堆,用以增加在网络中任意两个位置之间的最长路径长度。卷积层使用一个k因子通常比循环层更贵。然而,Separable convolutions [6],大幅降低了复杂度至O(k · n · d + n · d 2 d^2 d2)。然而,即使k = n,一个可分离卷积的复杂度和由一个自注意力层和一个 point-wise前馈层组成的复杂度一样,我们在我们的模型中加入了可分离卷积的方法。
作为附带好处,自注意力能产生更多翻译模型。我们检查我们模型中的注意力分布,在附录里展示和讨论。不仅做了单注意力头学习执行不同任务,而且很多似乎展示了与句子的语法语义相关的行为。
这部分描述了我们模型的训练组织方式。
我们在标准的 WMT 2014英语转德语数据集上训练,这个数据集包括450万个句子对。句子是用字节对编码的,这个数据集大约共享了37000个tokens的源词汇和目标词汇。对于英语转法语,我们用了特别大的WMT 2014 英语转法语的数据集,数据集包括3500万个句子,将token拆分成了32000个词条。句子对成批次放置在一起,批次大小近似为序列长度。每个训练批次包含一组句子对,包含了大约25000个源tokens和25000个目标tokens。
我们在 8 NVIDIA P100 GPUs上训练模型,我们的基础模型使用的超参数在整篇论文中已经被介绍过了。每个训练step大概需要0.4秒,我们训练基础模型总共用了 100,000 steps或者12 小时。对于我们的大模型(在table 3的底部上),每个step用时1秒。大模型训练了30万steps(3.5天)。
我们用 β 1 = 0.9 , β 2 = 0.98 和 ε = 1 0 − 9 \\beta_1 = 0.9, \\beta_2 = 0.98 和 \\varepsilon = 10^{-9} β1=0.9,β2=0.98和ε=10−9 的Adam优化器。在整个训练的过程中,我们根据下面的公式修改学习率: l r a t e = d m o d e l − 0.5 ∗ m i n ( s t e p n u m − 0.5 , s t e p n u m ∗ w a r m u p _ s t e p s − 0.5 ) ( 3 ) lrate = d^{-0.5}_{model}*min(step_num^{-0.5}, step_num * warmup\\_steps^{-0.5}) \\quad\\quad\\quad\\quad\\quad\\quad\\quad(3) lrate=dmodel−0.5∗min(stepnum−0.5,stepnum∗warmup_steps−0.5)(3)
这相当于在第一个warmup_steps训练步中线性的增加学习率,然后按照步数的平方根的倒数减小。我们用的warmup_steps = 4000。
我们在训练的过程中用了三种正则化方法:
Table 2: Transformer比以前的最好的模型在英语转德语和英语转法语上取得了更好的BLEU得分,且仅花费了以前训练代价的一部分。
在WMT 2014英语转德语翻译任务中,大transformer模型(Transformer (大)在 Table 2)比以前最好的模型 (包括整体上)高了2.0 BLEU,建立了一个新的最好的28.4的BLEU得分。这个模型的配置信息已经放在了Table 3的底部。在 8 P100 GPUs上训练了3.5天。甚至我们的基础模型都比以前的所有模型好,训练代价只是任何一个比赛模型的一部分。
在WMT 2014英语转法语的翻译任务中,我们的大模型取得了 41.0的BLEU得分,胜过了所有已发布的单一模型。比以前最好的模型的训练代价的 1/4还低。 Transformer(大)用 P d r o p = 0.1 P_{drop} = 0.1 Pdrop=0.1的dropout比例在英语转法语上训练,而不是0.3。
对于我们的基础模型,我们用了一个让最后五个检查点取平均的单一模型。每10分钟保存一次检查点。对于大模型,我们取最后20个检查点的平均。我们用了一个束大小为4,长度惩罚系数为 α = 0.6 \\alpha = 0.6 α=0.6的束搜索。这些超参数是在development set上进行实验后选择的。我们在推理期间将最大输出长度设置为输入长度+50,但尽可能提前终止。
Table 2概括了我们的模型,和文献中的其他模型比较了训练质量和训练代价。我们通过乘以训练时间来评估训练模型的浮点计算数。用多GPU,对每个GPU持续的单精度浮点容量的评估。
为了评估 Transformer的不同部分的重要性,用不同的方法改变我们的模型。在development set newstest2013上检验英语转法语的翻译效果。我们用了束搜索,就像上边说的那样,但是没有做检查点取平均。我们将这些结果展示在了Table 3中。
在Table 3的A行,我们改变注意力头的数量,注意力key和 value的维度,保持计算量恒定,如3.2.2部分的介绍。然而单头注意力的BLEU值比最好的设置低了0.9,翻译质量也比多头的低。
Table 3: Transformer架构上的变量。未列出的值与基本模型的值相同,所有的度量是在英语转德语的development set,newstest2013.上进行的。列出来的困惑度是每个词条的,是根据我们的字节对编码的,不应该认为是每个词的困惑度。
Table 4: Transformer在英语选区解析上的泛化能力很好。(结果在WSJ的23部分)
在Table 3 的B行,我们观察到减小注意力key的大小 d k d_k dk会使模型质量变坏,这表明确定调和系数并不容易,而且比点积更复杂的调和函数可能是有益的。我们进一步观察C和D行,正如期望的那样,模型是越大越好,dropout在避免过拟合方面有很大的帮助。在E行,我们用可学习的位置嵌入层取代正弦位置编码。在基础模型中观察到相同的结果。
为了评估 Transformer在其他任务中是否具有泛化能力,我们在英语选区解析上做了实验。这个任务表现出了明显的挑战:输出受到强烈的结构约束,且明显比输入长。而且RNN 序列到序列的模型,在小数据区域不能达到最好的结果。
我们用 d m o d e l d_{model} dmodel = 1024的4层Transformer在Wall Street Journal (WSJ) portion of the Penn Treebank上训练,这个数据集大约有4万个训练序列。我们也用了半监督的设置进行了训练,使用更大的高置信度和BerkleyParser语料库,大约有1700万个句子。我们在 WSJ上用了1.6万个tokens,在半监督上用了3.2万个tokens.
我们在22部分的 development set上做了少量的实验去选择 dropout, attention 和 residual(5.4部分),学习率,和束大小。其他的参数是从英语转德语的基础模型上保留的没有改变。在推理阶段,我们将最大输出长度增加到输入长度+30。我们在WSJ和半监督上用 α = 0.3 \\alpha=0.3 α=0.3束大小为21。
在 Table 4上的结果显示,尽管我们的模型缺乏针对性的微调但结果却令人惊讶的好。产生了比以前所有除了Recurrent Neural Network Grammar的模型都要好的结果。
与RNN序列到序列的模型对比,Transformer超过了BerkeleyParser甚至当训练仅在有4万个句子的 WSJ训练数据集上。
在本篇论文中,我们展示了Transformer,完全基于注意力的序列转换模型,用多头注意力层取代了在编码器解码器架构中最常用的卷积层。
对于翻译任务,Transformer训练速度明显比基于循环或者卷积架构的快。在WMT 2014 English-to-German 和 WMT 2014 English-to-French翻译任务中,我们达到了一个新的高度,在前者的任务当中,我们最好的模型胜过了以前的所有的报道出来的模型。
我们对基于注意力的模型的未来充满了希望,计划将他们用到其他任务当中。我们计划将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.
10
[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 Natural
Language Processing, pages 832–841. ACL, August 2009.
[15] Rafal Jozefowicz, Oriol Vinyals, Mike Schuster, Noam Shazeer, and Yonghui Wu. Exploring
the 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 Conference
on 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 preprint
arXiv: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 annotated
corpus 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. In
Proceedings of the Human Language Technology Conference of the NAACL, Main Conference,
pages 152–159. ACL, June 2006.
11
[27] Ankur Parikh, Oscar Täckström, Dipanjan Das, and Jakob Uszkoreit. A decomposable attention
model. In Empirical Methods in Natural Language Processing, 2016.
[28] Romain Paulus, Caiming Xiong, and Richard Socher. A deep reinforced model for abstractive
summarization. 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 on
Computational 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-experts
layer. 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 memory
networks. 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 neural
networks. 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. In
Advances in Neural Information Processing Systems, 2015.
[38] 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.
[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.