Source-linked AI summary
Attention Is All You Need
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin
TL;DR
序列转换模型依赖串行的循环或卷积计算,限制了训练期间的并行化。本文提出仅基于注意力的 Transformer,在 WMT 2014 的两项任务上取得 state-of-the-art 翻译质量,同时显著缩短训练时间。
问题
循环序列模型中的串行计算限制了训练样本内的并行化,尤其是在序列较长时。
方法
Transformer 用 multi-headed self-attention 替代循环层,以计算序列表示并捕获全局依赖关系。
结果
在 WMT 2014 English-to-German 任务上取得 28.4 BLEU,刷新了当时的 state of the art;在 English-to-French 任务上同样取得 state-of-the-art 结果。
要点与局限
对于翻译任务,Transformer 的训练速度显著快于循环或卷积架构,同时保持 state-of-the-art 质量。
Abstract
from arXiv · showhide
The dominant sequence transduction models are based on complex recurrent or convolutional neural networks in an encoder-decoder configuration. The best performing models also connect the encoder and decoder through an attention mechanism. We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely. Experiments on two machine translation tasks show these models to be superior in quality while being more parallelizable and requiring significantly less time to train. Our model achieves 28.4 BLEU on the WMT 2014 English-to-German translation task, improving over the existing best results, including ensembles by over 2 BLEU. On the WMT 2014 English-to-French translation task, our model establishes a new single-model state-of-the-art BLEU score of 41.8 after training for 3.5 days on eight GPUs, a small fraction of the training costs of the best models from the literature. We show that the Transformer generalizes well to other tasks by applying it successfully to English constituency parsing both with large and limited training data.
1 引言
Transformer 仅依靠 attention 取代循环序列建模,解决循环计算难以并行的问题,同时捕获全局输入—输出依赖。仅需在八块 P100 GPU 上训练十二小时,便可实现更高的并行度和新的翻译 state-of-the-art 性能。
- 1 引言: 循环和门控架构已成为序列建模与序列转换的 state-of-the-art 方法,应用于语言建模和机器翻译等任务 [7] [2] [5]。后续工作继续改进循环语言模型和 encoder-decoder 架构 [38] [24] [15]。
- 1 引言: 循环模型沿序列位置分解计算,使每个隐藏状态依赖前一状态,从而阻碍训练样本内部的并行化。对于更长的序列,这一限制更加突出,因为内存约束限制了跨样本的批处理。
- 1 引言: Transformer 摒弃循环,仅依靠 attention 捕获输入与输出之间的全局依赖。无论依赖在输入序列还是输出序列中相距多远,attention 机制都能对其进行建模 [2, 19]。
- 1 引言: Transformer 实现了显著更高的并行度,仅需在八块 P100 GPU 上训练十二小时,便达到新的翻译 state-of-the-art 性能。其设计是用 attention 取代循环组件,而不是将 attention 与循环网络结合。
2 背景
既有方法通过卷积或循环式 attention 机制减少序列计算,而 self-attention 已在多项语言任务中取得成功。Transformer 被提出为首个仅使用 self-attention、且不依赖与序列位置对齐的循环或卷积的 transduction 模型。
- 卷积模型: Extended Neural GPU 、ByteNet [18] 和 ConvS2S [9] 使用卷积并行计算所有输入和输出隐表示,同时减少序列计算。对于 ConvS2S,关联任意位置所需的操作量随距离线性增长;对于 ByteNet,则随距离对数增长。
- Self-attention: Self-attention 关联同一序列中的各个位置,以计算该序列的表示,并已在阅读理解、摘要生成、文本蕴含和句子表示学习任务中取得成功 [4] [28] [22]。
- 相关 attention 模型: 端到端 memory networks 使用循环式 attention 替代与序列位置对齐的循环结构,并在简单语言问答和语言建模任务中表现良好 。
- 创新性: Transformer 被描述为首个完全依赖 self-attention、且不使用与序列位置对齐的 RNNs 或卷积的 transduction 模型。论文阐述了 self-attention 及其相较于 [17] [18] 和 [9] 等模型的优势。
3 模型架构 · 3.1 编码器与解码器堆栈 · 3.2 Attention
Transformer用堆叠的self-attention和逐位置全连接层,取代编码器与解码器堆栈中的循环或卷积序列转换。其attention机制采用scaled dot product、多个并行head和masking,以支持自回归解码。
- 3 模型架构: Transformer在编码器和解码器中均使用堆叠的self-attention与逐位置全连接层,遵循编码器-解码器架构 [5] [2]。编码器将输入符号映射为连续表示,而自回归解码器则按序生成输出符号 [10]。
- 3.1 编码器与解码器堆栈: 编码器包含 N = 6 个相同层,每层将multi-head self-attention与逐位置feed-forward network、残差连接和层归一化结合起来 [11] [1]。每个子层使用 LayerNorm(x + Sublayer(x))。
- 3.1 编码器与解码器堆栈: 解码器包含 N = 6 层,具有encoder-decoder attention、残差连接、层归一化和masked self-attention,后者阻止访问后续位置。masking通过阻断非法的未来位置连接,保持自回归生成。
- 3.2 Attention: Scaled Dot-Product Attention计算query-key点积,将其除以 √dk,应用softmax权重,并对value进行加权求和。对于较大的 dk,缩放可以抵消较大的点积,避免softmax进入梯度极小的区域。
- 3.2.2 Multi-Head Attention: Multi-head attention将query、key和value投影到多个可学习的低维子空间中,并行处理这些子空间,拼接输出后再次进行投影。这样模型便能联合关注不同的表示子空间和位置,避免单个head的平均化局限。
- 3.2.2 Multi-Head Attention: 模型使用 h = 8 个attention head,其中 dk = dv = dmodel/h = 64,使总计算成本与全维度single-head attention大致相当。每个head的降维抵消了并行运行多个head的成本。
- 3.2.3 模型中的Attention应用: Attention分别应用为覆盖所有输入位置的encoder-decoder attention、覆盖前一层的encoder self-attention,以及覆盖截至当前位置各位置的decoder self-attention。Decoder self-attention通过将非法连接的softmax输入设为 −∞来屏蔽这些连接,从而保持从左到右的信息流。
3.3 逐位置前馈网络
每个 encoder 和 decoder layer 都在 attention 旁加入 position-wise feed-forward network。该网络依次进行两次 linear transformation,中间使用 ReLU;不同位置共享参数,而不同 layer 使用不同参数。
- 3.3 逐位置前馈网络: 每个 encoder 和 decoder layer 都包含一个 position-wise feed-forward network,并在每个位置分别以相同方式应用。该网络由两次 linear transformation 构成,中间使用 ReLU activation。
- 3.3 逐位置前馈网络: 该 feed-forward network 在不同位置使用相同的 linear-transformation parameters,但不同 layer 使用不同 parameters。也可以将其描述为 kernel size 为 1 的两次 convolution。
- 3.3 逐位置前馈网络: 模型对 input 和 output representations 使用 d_model = 512,对 feed-forward network 的 inner layer 使用 d_ff = 2048。
3.4 Embedding 与 Softmax
Transformer 使用学习得到的 token embedding,以及结合 Softmax 的学习型线性变换来生成下一个 token 的概率。它在两个 embedding 层和 pre-softmax 变换之间共享同一个权重矩阵,并将 embedding 权重缩放为 √dmodel。
- 3.4 Embedding 与 Softmax: 学习得到的 embedding 将输入和输出 token 映射为 dmodel 维向量,而学习型线性变换与 Softmax 生成预测的下一个 token 的概率。这些组件遵循标准的序列转换设置。
- 3.4 Embedding 与 Softmax: 模型在两个 embedding 层和 pre-softmax 线性变换之间共享同一个权重矩阵,沿用 [30] 的做法。
- 3.4 Embedding 与 Softmax: 使用 embedding 层权重前,将其乘以 √dmodel。
3.5 位置编码
由于 Transformer 不含循环和卷积结构,因此在 encoder 和 decoder 的输入嵌入中加入位置编码,以表示 token 顺序。论文采用正弦编码,其相对位置结构可能有助于 attention,并支持外推到超出训练长度的序列。
- 3.5 位置编码: 正弦位置编码将顺序信息加入 encoder 和 decoder 的输入嵌入,并使用与嵌入相同的维度,因此可以直接相加。由于模型既不含循环结构,也不含卷积结构,因此必须使用这些编码。
- 3.5 位置编码: 每个编码维度都是一个正弦函数,其波长按几何级数从 2π 递增至 10000 · 2π。该设计的假设是:对于固定的 k,PEpos+k 可以由 PEpos 线性表示,因此能够通过相对位置帮助模型学习 attention。
- 3.5 位置编码: 学习的位置嵌入 [9] 与正弦编码产生了几乎相同的结果,但考虑到可能需要外推序列长度,最终选择了正弦版本。该比较结果见 Table 3 的第 (E) 行。
4 为什么采用 Self-Attention
本节通过将 Self-Attention 与 recurrent 和 convolutional layers 在计算复杂度、并行化能力以及长程依赖路径长度方面进行比较,说明采用 Self-Attention 的动机。Self-Attention 具有恒定的 sequential depth;对于典型句长,其复杂度更有利;其 attention patterns 还可能具备可解释性。
- 该比较从每层计算复杂度、可并行计算量以及学习长程依赖所需的路径长度三个方面评估各类 layers 。更短的路径有助于学习长程依赖。
- Self-Attention 通过恒定数量的 sequential operations 连接所有输入—输出位置,而 recurrent layers 则需要 O(n) 次 sequential operations。
- 当序列长度 n 小于表示维度 d 时,Self-Attention 比 recurrent layers 更快;对于基于 word-piece 和 byte-pair 的句子表示,通常会出现这种情况。对于超长序列,将 attention 限制在大小为 r 的邻域内可以提升计算性能,但会增加最大路径长度。
- Convolutional layers 需要 O(n/k) 个 contiguous-kernel layers 或 O(logk(n)) 个 dilated-convolution layers 才能连接所有位置,而且通常比 recurrent layers 更昂贵,开销约为其 k 倍。可分离卷积能够降低 convolutional complexity。
- Attention distributions 可能提升可解释性,因为不同 heads 会学习不同任务,并且通常呈现句法或语义行为。本节指出,这些 patterns 将在附录中展示和讨论。
5 训练
Transformer 使用 Adam、warmup-and-decay 学习率调度和正则化,在 WMT 2014 翻译数据集上进行训练。训练使用 8 块 NVIDIA P100 GPU,配置从 12 小时到 3.5 天不等,同时以更低训练成本取得了优于此前 state-of-the-art 模型的 BLEU 分数。
- 训练使用了约 4.5 million 个英德句对,共享一个包含 37,000 个 token 的 byte-pair 词表;英法任务使用了 36 million 个英语—法语句子,以及包含 32,000 个 token 的 word-piece 词表。句对按照近似序列长度进行批处理。
- 在一台配备 8 NVIDIA P100 GPUs 的机器上,base 模型训练 100,000 步耗时 12 小时,而 big 模型训练 300,000 步耗时 3.5 天。base 模型每步约耗时 0.4 秒;big 模型每步耗时 1.0 秒。
- 优化采用 Adam,β1 = 0.9、β2 = 0.98、ϵ = 10^-9;学习率先在 4,000 个 warmup 步内逐步升高,随后按平方根倒数衰减。
- 在 WMT 2014 英译德和英译法测试集上,Transformer 取得了优于此前 state-of-the-art 模型的 BLEU 分数,而训练成本仅为其一小部分。
- 正则化包括 base 模型中 Pdrop = 0.1 的 residual dropout 和 embedding-position dropout,以及 ϵls = 0.1 的 label smoothing;尽管 perplexity 变差,accuracy 和 BLEU 仍得到提升。
6 结果
Transformer 以显著更低的训练成本取得当前最佳翻译结果,其组件研究也确定了重要的架构与正则化选择。此外,它在英语成分句法分析上具有良好的泛化能力,表现优于此前系统,但 Recurrent Neural Network Grammar 除外。
- 翻译结果: WMT 2014 English-to-German 上的 28.4 BLEU 比此前报告的最佳模型(包括 ensembles)高出 more than 2.0 BLEU。训练在 8 个 P100 GPUs 上耗时 3.5 天。
- 翻译结果: WMT 2014 English-to-French 上的 41.0 BLEU 超过此前发表的所有单模型,且训练成本不到此前当前最佳水平的四分之一。English-to-French big model 使用 dropout rate Pdrop = 0.1。
- 消融研究: 在 English-to-German 开发集上,attention heads 过少或过多都会降低质量,较小的 key dimensions 会造成损失,而更大的模型和 dropout 则能提升性能。Single-head attention 比最佳设置低 0.9 BLEU;learned positional embeddings 与 sinusoidal encodings [9] 的表现几乎相同。
- 英语成分句法分析: 在英语成分句法分析上,Transformer 的表现优于此前报告的所有模型,但 Recurrent Neural Network Grammar [8] 除外。仅使用 40K-sentence WSJ training set 训练时,它也超过了 Berkeley-Parser 。
7 结论
Transformer 是一种完全基于多头自注意力的序列转导模型,取代了循环式 encoder-decoder 层。其训练速度快于循环或卷积架构,并在 WMT 2014 的两项翻译任务上取得 state-of-the-art 结果。
- 该模型是首个完全基于注意力的序列转导架构,以多头自注意力取代循环层。
- Transformer 在 WMT 2014 English-to-German 和 English-to-French 任务上取得 state-of-the-art 结果,并在 English-to-German 任务上超过此前报告的所有集成模型。其训练速度也显著快于基于循环层或卷积层的架构。
- 未来工作将把基于注意力的模型扩展到文本之外,为大规模输入和输出开发受限注意力,并使生成过程减少顺序性。拟采用的模态包括图像、音频和视频。
Attention可视化
Attention可视化表明,encoder self-attention heads学会了与长距离依赖、指代消解和句子结构相关的不同模式。
- Attention可视化: 第5层的encoder self-attention heads会跟踪长距离依赖,其中许多head关注连接‘making’与‘more difficult’的依赖关系。该可视化展示了单词‘making’的attention,不同颜色表示不同的head。
- Attention可视化: 第5层的两个attention heads似乎参与了指代消解,并对单词‘its’产生了尤其尖锐的attention。该图展示了head 5的完整attention,以及head 5和head 6从‘its’出发的孤立attention。
- Attention可视化: 许多attention heads表现出与句子结构相关的行为,不同head显然学会了不同任务。这些示例来自6层encoder中第5层的两个self-attention heads。