attention is all you need

attention is all you need 学习笔记

摘要

主导序列转导模型基于复杂的递归或卷积神经网络,该神经网络包括编码器和解码器。性能最好的模型还通过注意力机制将编码器和解码器连接起来。我们提出了一种新的简单的网络体系结构Transformer,它完全基于注意力机制,完全不需要重复和卷积。在两个机器翻译任务上的实验表明,这些模型在质量上更优越,同时具有更高的并行化能力,所需的训练时间显著减少。我们的模型在WMT 2014英译德翻译任务中获得了28.4%的BLEU成绩,比现有的最好成绩(包括语料库)提高了2%以上。在WMT 2014英法翻译任务上,我们的模型在8个GPU上进行了3.5天的培训后,建立了新的单一模型最先进的BLEU得分41.0,这只是文献中最好的模型的培训成本的一小部分。

1.介绍

循环神经网络、长短期记忆 和门控循环神经网络,已被牢固地确立为序列建模和转导问题(如语言建模和机器翻译)的最先进方法。

循环模型通常沿输入和输出序列的符号位置考虑计算。将位置与计算时间的步骤对齐,它们生成一系列隐藏状态 ht,作为先前隐藏状态 ht-1 和位置 t 的输入的函数。这种固有的顺序性质排除了训练示例中的并行化,这在更长的序列长度下变得至关重要,因为内存限制限制了示例之间的批处理。最近的工作通过因式分解技巧和条件计算显着提高了计算效率,同时还提高了后者的模型性能。然而,顺序计算的基本约束仍然存在。

注意机制已成为各种任务中引人注目的序列建模和转导模型的组成部分,允许对依赖项进行建模,而无需考虑它们在输入或输出序列中的距离 。然而,除了少数情况,这种注意力机制与循环网络是可以结合使用的。

作者提出了 Transformer,这是一种避免重复的模型架构,而是完全依赖注意力机制来绘制输入和输出之间的全局依赖关系。在八个 P100 GPU 上经过短短 12 小时的训练后,Transformer 可以实现更多的并行化,并且可以在翻译质量方面达到新的水平。

2.背景

减少顺序计算的目标也构成了扩展神经 GPU、ByteNet 和 ConvS2S 的基础,所有这些都使用卷积神经网络作为基本构建块,并行计算所有输入的隐藏表示和输出位置。在这些模型中,关联来自两个任意输入或输出位置的信号所需的操作数量随着位置之间的距离而增长,这对于 ConvS2S 呈线性增长,而对于 ByteNet 则呈对数增长。这使得学习远距离位置之间的依赖关系变得更加困难。在 Transformer 中,这被减少到恒定数量的操作,尽管由于平均注意力加权位置而降低了有效分辨率,我们使用多头注意力来抵消这种影响。

自注意力,有时称为内部注意力,是一种将单个序列的不同位置关联起来以计算序列表示的注意力机制。自注意力已成功用于各种任务,包括阅读理解、抽象摘要、文本蕴涵和学习任务无关的句子表示。

端到端记忆网络基于循环注意机制而不是序列对齐循环,并且已被证明在简单语言问答和语言建模任务中表现良好。Transformer 是第一个完全依赖自注意力来计算其输入和输出表示而不使用序列对齐 RNN 或卷积的转换模型。

3.模型架构

大多数竞争性神经序列转导模型具有编码器-解码器结构 。这里,编码器将符号表示的输入序列 (x1, …, xn) 映射到连续表示的序列 z = (z1, …, zn)。给定 z,解码器然后一次生成一个元素的符号输出序列 (y1, …, ym)。在每个步骤中,模型都是自回归的 ,在生成下一个时将先前生成的符号用作附加输入。 Transformer 遵循这种整体架构,对编码器和解码器使用堆叠的自注意力和逐点的全连接层。

3.1 编码器和解码器堆栈

编码器:编码器由一堆N个相同的层组成(N=6),每一层有两个子层。第一个是多头注意力机制,第二个是一个简单的、按位置的全连接前馈网络。然后在每一对的每个子层周围采用残差连接,然后进行归一化。即每个子层的输出是LayerNorm(x + Sublayer(x)),其中Sublayer(x)是子层自己使用的函数。为了促进这些残差连接,模型中的所有子层以及嵌入层都会产生维度 dmodel = 512 的输出。

解码器:解码器也由一堆 N = 6 个相同的层组成。除了每个编码器层中的两个子层之外,解码器还插入了第三个子层,该子层对编码器堆栈的输出执行多头注意力。与编码器类似,作者在每个子层周围使用残差连接,然后进行层归一化。这种屏蔽与输出嵌入偏移一个位置的事实相结合,确保对位置i的预测只能依赖于小于i的位置处的已知输出。

3.2 Attention

注意力函数可以被描述为将一个查询和一组键-值对映射到输出,其中查询、键、值和输出都是向量。输出计算为值的加权和,其中分配给每个值的权重由查询与相应键的兼容性函数计算。

3.2.1 缩放点积注意力

作者将他们的特别注意力机制称为“Scaled Dot-Product Attention”,输入由维度 dk 的查询和键以及维度 dv 的值组成。作者用所有的键值来计算查询的点积,将每个除以 √dk,并应用 softmax 函数来获得值的权重。
在这里插入图片描述

在实践中,我们同时计算一组查询的注意力函数,并打包到矩阵 Q 中。键和值也打包到矩阵 K 和 V 中。我们将输出矩阵计算为:
在这里插入图片描述

最常用的两个注意力机制函数是加法注意力机制函数和点乘(乘法)注意力机制函数。而点乘注意力函数跟作者的算法完全一致,只是比例因子为 1√dk。加性注意使用具有单个隐藏层的前馈网络计算兼容性函数。虽然两者在理论上的复杂性相似,但点积注意力在实践中更快且更节省空间,因为它可以使用高度优化的矩阵乘法代码来实现。

虽然对于较小的 dk 值,这两种机制的性能相似,但加法注意力优于点积注意力,而无需对较大的 dk 值进行缩放。作者怀疑对于较大的 dk 值,点积的幅度会变大,从而将 softmax 函数推入具有极小梯度的区域 。为了抵消这种影响,他们将点积缩放 到1√dk。

3.2.2 多头注意力

与使用 d-model 维度的键、值和查询执行单个注意函数不同,作者发现将查询、键和值分别线性投影到 dk、dk 和 dv 维度上的不同学习线性投影是有益的。然后,在每个查询、键和值的投影版本上,我们并行执行注意功能,产生 dv 维输出值。这些被连接并再次投影,产生最终值。多头注意力允许模型共同关注来自不同位置的不同表示子空间的信息。对于单个注意力头,平均化会抑制这种情况。

3.2.3 注意力机制在模型中的应用

Transformer 以三种不同的方式使用多头注意力:

  • 在“编码器-解码器注意力”层中,查询来自前一个解码器层,记忆键和值来自编码器的输出。这允许解码器中的每个位置参与输入序列中的所有位置。这模仿了序列到序列模型中典型的编码器-解码器注意机制。
  • 编码器包含自注意力层。在自注意力层中,所有的键、值和查询都来自同一个地方,在这种情况下,它们是编码器中前一层的输出。编码器中的每个位置都可以关注编码器上一层中的所有位置。
  • 类似地,解码器中的自注意力层允许解码器中的每个位置关注解码器中直到并包括该位置的所有位置。我们需要防止解码器中的信息向左流动,以保持自回归特性。我们通过屏蔽掉(设置为 -∞)softmax 输入中与非法连接相对应的所有值来实现缩放点积注意力的内部。

3.3 位置前馈网络

除了注意力子层之外,我们的编码器和解码器中的每一层都包含一个完全连接的前馈网络,该网络分别且相同地应用于每个位置。这包括两个线性变换,中间有一个 ReLU 激活函数。虽然线性变换在不同位置上是相同的,但它们在层与层之间使用不同的参数。另一种描述方式是内核大小为 1 的两个卷积。输入和输出的维数为 d-model = 512,内层的维数为 f = 2048。

3.4 嵌入和 Softmax

与其他序列转导模型类似,作者使用学习嵌入将输入标记和输出标记转换为维度 dmodel 的向量。他们还使用通常的学习线性变换和 softmax 函数将解码器输出转换为预测的下一个令牌概率。在他们的模型中,两个嵌入层和 pre-softmax 线性变换之间共享相同的权重矩阵,在嵌入层中,作者将这些权重乘以 √dmodel。

3.5 位置编码

由于模型不包含递归和卷积,为了让模型利用序列的顺序,我们必须注入一些关于标记在序列中的相对或绝对位置的信息。为此,作者在编码器和解码器堆栈底部的输入嵌入中添加了“位置编码”。位置编码与嵌入具有相同的维度 d-model,因此可以将两者相加。位置编码有很多选择(比如学习的和固定的)。

4.为什么要自注意力

在本节中,作者将自注意力层的各个方面与循环层和卷积层进行比较,这些层通常用于将一个可变长度的符号表示序列 (x1, …, xn) 映射到另一个等长序列 (z1, … ., zn), 与 xi, zi ∈ Rd, 如典型序列转导编码器或解码器中的隐藏层。为了激发我们使用自我关注,作者考虑了三个必要条件:一是每层的总计算复杂度。另一个是可以并行化的计算量,通过所需的最小顺序操作数来衡量。第三个是网络中远程依赖关系之间的路径长度。

学习长程依赖是许多序列转导任务中的关键挑战。影响学习这种依赖性的能力的一个关键因素是前向和后向信号必须在网络中遍历的路径长度。输入和输出序列中任意位置组合之间的这些路径越短,就越容易学习远程依赖。因此,作者还比较了由不同层类型组成的网络中任意两个输入和输出位置之间的最大路径长度。

自注意力层将所有位置与恒定数量的顺序执行操作连接起来,而循环层需要 O(n) 顺序操作。在计算复杂度方面,当序列长度 n 小于表示维数 d 时,self-attention 层比循环层更快,这通常是机器翻译中最先进模型使用的句子表示的情况,例如 word-piece 和 byte-pair 表示。为了提高涉及非常长序列的任务的计算性能,可以将自注意力限制为仅考虑输入序列中以相应输出位置为中心的大小为 r 的邻域。但是这会将最大路径长度增加到 O(n/r),作者提到计划在未来的工作中进一步研究这种方法。

内核宽度 k < n 的单个卷积层不会连接所有输入和输出位置对。这样做需要在连续内核的情况下堆叠 O(n/k) 卷积层,或者在扩张卷积的情况下需要 O(logk(n)) ,从而在网络中增加任意两个位置之间最长路径的长度。卷积层通常比循环层更复杂,高出 k 倍。然而,可分离卷积 将复杂度大大降低到 O(k · n · d + n · d2)。然而,即使 k = n,可分离卷积的复杂度也等于自注意力层和逐点前馈层的组合,这是作者在模型中采用的方法。

5.训练

5.1 训练数据和批处理

作者在由大约 450 万个句子对组成的标准 WMT 2014 英语-德语数据集上进行了训练。句子使用字节对编码进行编码,该编码具有大约37000 个标记的共享源目标词汇表。对于英语-法语,作者使用了更大的 WMT 2014 英语-法语数据集,该数据集由 3600 万个句子组成,并将标记拆分为 32000 个单词词表 。句子对按近似的序列长度分批在一起。每个训练批次包含一组句子对,其中包含大约 25000 个源标记和 25000 个目标标记。

5.2 硬件和训练时间

作者在一台配备 8 个 NVIDIA P100 GPU 的机器上训练的模型。使用整篇论文中描述的超参数的基础模型,每个训练步骤大约需要 0.4 秒。作者对基础模型进行了总共 100,000 步或 12 小时的训练。对于他们的大型模型,(在表 3 的最后一行进行了描述),步进时间为 1.0 秒。大型模型训练了 300,000 步(3.5 天)。
在这里插入图片描述

5.3 优化

作者使用了 Adam 优化器,β1 = 0.9,β2 = 0.98 和 = 10−9。根据公式,我们在训练过程中改变学习率:
在这里插入图片描述

这对应于在第一个 warmup_steps 训练步骤中线性增加学习率,然后根据步数的平方根倒数按比例减少学习率。作者使用warmup_steps = 4000。

5.4 正则化

作者在训练期间采用了三种正则化方法:Residual Dropout、Label Smoothing(还有一个没说)

6.结果

6.1 机器翻译

在 WMT 2014 英德翻译任务中,大的 Transformer 模型比之前报道的最好的模型(包括 ensembles)高出 2.0BLEU 以上,建立了一个新的 state-of-the-艺术 BLEU 得分为 28.4。该模型的配置列于表 3 的最后一行。在8个 P100 GPU 上训练耗时 3.5 天。甚至他们的基础模型也超过了所有以前发布的模型和集成,其训练成本只是任何竞争模型的一小部分。

在 WMT 2014 英法翻译任务中,作者的大模型达到 41.0 的 BLEU 分数,优于之前发布的所有单一模型,其训练成本不到之前最先进技术的 1/4模型。为英语到法语训练的 Transformer(大)模型使用的辍学率 Pdrop = 0.1,而不是 0.3。

对于基本模型,作者使用通过平均最后 5 个检查点获得的单个模型,这些检查点以 10 分钟的间隔写入。对于大型模型,他们平均了最后 20 个检查点。他们使用束搜索,束大小为 4,长度惩罚 α = 0.6 [31]。这些超参数是在对开发集进行实验后选择的。作者将推理期间的最大输出长度设置为输入长度 + 50,但尽可能提前终止。

表 2 总结了作者的结果,并将他们的翻译质量和培训成本与文献中的其他模型架构进行了比较。作者通过将训练时间、使用的 GPU 数量以及每个 GPU 的持续单精度浮点容量的估计值相乘来估计用于训练模型的浮点运算的数量。
在这里插入图片描述

6.2 模型变化

为了评估 Transformer 不同组件的重要性,作者以不同的方式改变了我们的基础模型,测量了开发集 newstest2013 上英德翻译性能的变化。我们使用了上一节中描述的波束搜索,但没有检查点平均数。

作者改变注意力头的数量以及注意力键和值维度,保持计算量不变,如第 3.2.2 节所述。虽然单头注意力比最佳设置差 0.9 BLEU,但质量也会因多头过多而下降。

7.总结

在这项工作中,作者提出了 Transformer,这是第一个完全基于注意力的序列转导模型,用多头自注意力取代了编码器-解码器架构中最常用的循环层。对于翻译任务,Transformer 的训练速度明显快于基于循环或卷积层的架构。在 WMT 2014 英语到德语和 WMT 2014 英语到法语的翻译任务上,作者都达到了新的水平。在前一项任务中,他们最好的模型甚至优于所有先前报道的集成。作者对基于注意力的模型的未来感到兴奋,并计划将它们应用于其他任务。作者计划将 Transformer 扩展到涉及文本以外的输入和输出模式的问题,并研究局部的受限注意力机制,以有效处理图像、音频和视频等大型输入和输出。减少生成的顺序是我们的另一个研究目标。
道的集成。作者对基于注意力的模型的未来感到兴奋,并计划将它们应用于其他任务。作者计划将 Transformer 扩展到涉及文本以外的输入和输出模式的问题,并研究局部的受限注意力机制,以有效处理图像、音频和视频等大型输入和输出。减少生成的顺序是我们的另一个研究目标。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值