Transformer论文阅读笔记
Attention Is All Your Need
一、摘要
主流的序列转导模型均基于包含编码器与解码器的复杂循环神经网络或卷积神经网络,性能最优的模型还会通过注意力机制连接编码器与解码器。本文提出一种全新的简洁网络架构——Transformer,该架构完全基于注意力机制,彻底摒弃了循环结构与卷积操作。在两项机器翻译任务上的实验表明,该模型不仅质量更优,还具备更强的并行性,且训练时间显著缩短。例如,在WMT 2014英德翻译任务中,论文的模型取得了28.4的BELU值,相较于包括集成模型在内的现有最佳结果,提升了超过2个BLEU值。此外,通过将Transformer成功应用于大样本和有限样本下的英语组块分析任务,作者验证了该模型在其他任务上的良好泛化能力。
二、引言
循环神经网络已被确立为序列建模和转导问题中的主流方法。此后,众多研究持续突破循环语言模型与编码器-解码器架构的性能边界。
循环模型的计算通常沿输入和输出序列的符号位置展开。通过将序列位置与计算时间步对齐,模型会生成一系列隐藏状态 \(h_t\) ,其值由前一时刻的隐藏状态 \(h_{t-1}\) 和当前位置 \(t\) 的输入共同决定。这种固有的序列计算特性,使得训练样本内部无法实现并行化;而当序列长度较长时,这一问题会变得尤为关键,因为内存限制会制约样本间的批处理效率。尽管近期研究通过因式分解技巧和条件计算在计算效率上取得了显著提升(后者还同时改善了模型性能),但序列计算的根本性约束仍未解决。
注意力机制已成为各类任务中高性能序列建模与转导模型的核心组成部分,它能够建模输入或输出序列中任意距离的依赖关系。然而,除少数例外情况,这类注意力机制大多需与循环网络结合使用。
论文提出了一种全新的模型架构Transformer,该架构摒弃了循环结构,完全依赖注意力机制来捕捉输入与输出之间的全局依赖关系。Transformer具备极强的并行计算能力,仅需在8块P100 GPU上训练12小时,便能在翻译质量上达到新的技术水平。
三、相关背景
降低序列计算复杂度的目标,同样是扩展神经 GPU、字节网络(ByteNet)和卷积序列到序列模型(ConvS2S)的核心设计理念(这些模型的设计都是为了降低序列计算复杂度,但是在降低的效果上并不如Transformer),这些模型均以卷积神经网络为基本构建模块,能够对所有输入和输出位置的隐藏表示进行并行计算。在这类模型中,关联任意两个输入或输出位置信号所需的运算量,会随位置间距的增大而增加:ConvS2S呈线性增长,ByteNet则呈对数增长。这一特性使得模型难以学习远距离位置之间的依赖关系。而对于Transformer,该计算量(关联任意两个输入或输出位置信号所需的运算量)被简化为常数级别,虽然通过对注意力机制加权后的位置进行平均会导致有效分辨率降低(因为在自注意力机制中,输出位置的表示是混合所有的位置信息得到的(加权),本质上是对所有位置信息的平滑处理,会导致有效分辨率降低,而Transformer采用了多头注意力机制,不同头聚焦不同类型的依赖,最后将所有头的结果拼接起来,这样每个位置的表示会包含多个维度的信息,避免了单头注意力的过度平滑,相当于恢复了分辨率),但是可以通过4.2节介绍的多头注意力机制来抵消这一影响。
自注意力机制,有时也称为内部注意力,是一种通过关联单个序列中不同位置来计算该序列表示的注意力机制。它已成功应用于多种任务,包括阅读理解、抽象摘要、文本蕴含推理以及任务无关的句子表示学习。
在论文提出Transformer之前,虽然已经有端到端记忆网络基于循环注意力机制而非序列对齐的循环结构(已经被证实在简单语言问答和语言建模任务中表现优异),但Transformer与之并不一样,Transformer是首个完全依赖自注意力机制来计算输入和输出表示的转导模型,它不再使用序列对齐的循环神经网络或卷积操作。后续,将详细描述Transformer的结构,阐述采用自注意力机制的核心动机。
四、模型架构
大多数高性能神经序列转导模型均采用编码器-解码器结构。在该结构中,编码器将输入符号表示序列 \((x_1,...,x_n)\) 映射为连续表示序列 \(z=(z1,...,z_n)\) ;解码器则基于该连续表示序列 \(Z\) ,逐元素生成输出符号序列 \(y_1,...,y_n\) 。模型在每一步生成时均具有自回归特性,即生成下一个元素时,会将之前已生成的符号作为额外输入(这是编码器-解码器的特性,而注意力机制是利用全局信息生成当前位置信息)。
Transformer沿用了这一整体架构,其编码器和解码器均由堆叠的自注意力层与逐点全连接层构成,分别对应下图的左半部分和右半部分。

4.1 编码器与解码器堆叠结构
4.1.1 编码器
编码器由 \(N=6\) 个完全相同的层堆叠而成,每层包含两个子层:第一个子层是多头自注意力机制,第二个子层是简单的逐位置全连接前馈网络。作者在每个子层周围均引入了残差连接,并在残差连接后执行层归一化。具体来说,每个子层的输出可表示为: \(LayerNorm(x+Sublayer(x))\) ,其中 \(Sublayer(x)\) 代表该子层自身实现的映射函数。为了适配残差连接(要求输入输出维度一致),模型中所有子层以及嵌入层的输出维度均设为 \(d_{model}=512\) (Transformer的编码器输入是序列,比如我 爱 你
4.1.2 解码器
解码器同样由 \(N=6\) 个完全相同的层堆叠而成。除了包含编码器每层的两个子层外,解码器还新增了第三个子层:编码器-解码器注意力层,该子层通过多头注意力机制对编码器堆叠的输出进行信息交互。与编码器类似,解码器的每个子层周围也采用了残差连接加层归一化的结构。此外,作者对解码器堆叠中的自注意力子层进行了修改,通过掩码操作阻止当前位置关注后续位置的信息。这种掩码机制,结合输出嵌入偏移一个位置的设计,确保了对第t个位置的预测仅依赖于第t个位置之前的已知输出,即小于t位置的输出(这样设计的原因是训练阶段采用了教师强制的机制,会在Outputs处输入比真实标签小一位的输入,比如真实标签是I Love You
4.2 注意力机制
注意力函数可描述为:将一个查询向量(Q)和一组键值对映射为输出向量(K、V),其中查询向量、键向量、值向量及输出向量均为向量形式。输出向量通过对所有值向量进行加权求和得到,而每个值向量对应的权重,由查询向量与该值向量对应的键向量通过兼容性函数计算得出。
接下来,简单介绍下注意力机制的计算过程(以“
Inputs处输入的序列为“
4.2.1 缩放点积注意力
作者将本文提出的特定注意力机制命名为 “缩放点积注意力”(Scaled Dot-Product Attention,如下图)。其输入包含维度为 \(d_k\) 的查询向量和键向量,以及维度为 \(d_v\) 的值向量。计算过程为:先计算查询向量与所有键向量的点积,再将每个点积结果除以 \(d_k\) ,最后通过Softmax函数得到值向量对应的注意力权重。

在实际应用中,会同时对一组查询向量进行注意力计算,将这些查询向量整合为矩阵Q,键向量和值向量也分别整合为矩阵K和V。输出矩阵的计算公式如下:
目前最常用的两种注意力函数分别是加法注意力和点积注意力。点积注意力与本文算法的唯一区别在于,前者没有 \(\frac{1}{\sqrt{d_k}}\) 这一缩放因子。加法注意力通过含单个隐藏层的前馈网络计算兼容性函数,尽管两者的理论复杂度相近,但点积注意力在实际应用中速度更快、空间效率更高,因为它可借助高度优化的矩阵乘法代码实现。
当 \(d_k\) 较小时,两种机制的性能表现相近;但当 \(d_k\) 较大时,未进行缩放的点积注意力性能会劣于加法注意力。作者推测,这是因为当 \(d_k\) 较大时,点积结果的数值规模会显著增大,导致Softmax函数进入梯度极小的区域(梯度消失)。
4.2.2 多头注意力机制
不同于使用 \(d_{model}\) 维的键、值和查询向量执行单一注意力函数,作者发现:通过不同的、可学习的线性投影,将查询、键和值分别进行h次线性变换,映射到 \(d_k\) 、 \(d_k\) 和 \(d_v\) 维度,会带来显著收益。之后,作者在每组投影后的查询、键和值上并行执行注意力函数,得到 \(d_v\) 维的输出向量。将这些输出向量拼接后,再进行一次线性投影,最终得到多头注意力的输出结果,具体流程如下图所示。

多头注意力机制能让模型联合关注不同位置、不同表示子空间中的信息。而单头注意力机制会因加权平均操作,无法实现这一效果。
其数学表达式如下:
其中,投影操作所使用的参数矩阵分别为: \(W_i^Q\in R^{d_{model}×d_k}\) (查询向量投影矩阵)、 \(W_i^K\in R^{d_{model}×d_k}\) (键向量投影矩阵)、 \(W_i^V\in R^{d_{model}×d_v}\) (值向量投影矩阵),以及 \(W_i^O\in R^{hd_v×d_{model}}\) (最终拼接后的投影矩阵)。
在本文的实验中,作者采用h=8个并行的注意力层(即8个注意力头)。每个注意力头的参数设置为 \(d_k=d_v=d_{model}/h=64\) 。由于每个注意力头的维度被缩减,多头注意力机制的总计算量与全维度的单头注意力机制相近。
4.2.3 注意力机制在模型中的应用
Transformer通过三种不同方式使用多头注意力机制:
编码器-解码器注意力层:查询来自解码器的前一层输出,记忆键和记忆值来自编码器的最终输出。这使得解码器中的每个位置都能关注输入序列的所有位置,模拟了序列到序列模型中典型的编码器-解码器注意力机制。
编码器中的自注意力层:编码器包含自注意力层,该层的键、值和查询均来自同一来源,即编码器前一层的输出。编码器中的每个位置都能关注编码器前一层的所有位置,从而捕捉输入序列内部的全局依赖关系。
解码器中的自注意力层:类似地,解码器中的自注意力层允许解码器的每个位置关注自身及之前的所有位置(即不超过当前位置的所有位置)。为了保留自回归特性,需要阻止解码器中 “向左的信息流动”(即当前位置无法获取后续位置的信息)。这一需求通过在缩放点积注意力内部执行掩码操作实现:将Softmax输入中所有对应 “非法连接”(即指向后续位置的连接)的值设为−∞。
4.3 逐位置前馈网络
除注意力子层外,编码器与解码器的每一层均包含一个全连接前馈网络,该网络会对序列中的每个位置进行独立且相同的运算。此网络由两次线性变换构成,中间接入ReLU激活函数,其数学表达式如下:
尽管不同位置的线性变换操作是完全相同的,但网络参数会在不同层之间独立设置(即每层的 \(W_1\) 、 \(b_1\) 、 \(W_2\) 、 \(b_2\) 均不共享)。该网络的另一种等价描述是:两个核尺寸为1的卷积层。网络的输入与输出维度均为 \(d_{model}=512\) ,隐藏层的维度则设为 \(d_{ff}=2048\) (在编码器的多头注意力机制输出 \(L×d_{model}\) 之后,将 \(L×d_{model}\) 的每个位置的512维向量通过 \(W_1\) 、 \(b_1\) 进行映射得到 \(L×2048\) 的中间矩阵,之后对2048维向量逐元素进行ReLU激活,再利用 \(W_2\) 、 \(b_2\) 进行第二次线性变换,尤其注意前馈网络不会把不同位置的向量混合计算)。
4.4 嵌入层与Softmax函数
与其他序列转导模型类似,作者采用可学习的嵌入层,将输入标记与输出标记分别转换为维度为 \(d_{model}\) 的向量。同时,使用常规的可学习线性变换与Softmax函数,将解码器的输出转化为下一个标记的预测概率分布(正如前面所说,嵌入层是一个用于将序列中索引转换为对应向量的矩阵,假如词表数量为 \(V\) ,那嵌入层权重矩阵为 \(V×d_{model}\) ,序列根据索引取出对应向量,而Softmax函数前的线性变换层的逻辑是将 \(d_{model}\) 维的特征再转换回对应词表,之后再通过对每一行进行Softmax归一化,得到该序列对应词表的概率,所以Softmax函数前的线性变换层的大小为 \(d_{model}×V\) )。
在本模型中,作者让两个嵌入层(输入嵌入层与输出嵌入层)和Softmax函数前的线性变换层共享同一权重矩阵(虽然看着嵌入层权重矩阵和Softmax函数前的线性变换层权重矩阵维度不同,但是两者是转置的关系,嵌入层将词表索引转化为特征,而Softmax函数前的线性变换层权重矩阵是将特征转化为词表),这一设计与文献的方案一致。此外,在嵌入层的计算中,会将共享权重矩阵与嵌入向量的乘积结果乘以 \(\sqrt{d_{model}}\) 进行缩放(目的是平衡嵌入向量的方差,避免因权重初始化值过小导致特征表达不足)。
4.5 位置编码
由于模型既不包含循环结构,也不包含卷积结构,为了让模型能够利用序列的顺序信息,必须向编码器与解码器堆叠结构底层的输入嵌入向量中,注入与序列中标记的相对位置或绝对位置相关的信息。为此,作者在编码器和解码器的输入嵌入向量上叠加位置编码。位置编码的维度与嵌入向量的维度保持一致(均为 \(d_{model}\) ),这样两者才能进行相加运算。位置编码的设计方案有多种,可分为可学习型与固定型两类。
在本文的研究中,作者采用了不同频率的正弦和余弦函数来构造位置编码,公式如下:
其中, pos代表标记在序列中的位置,i代表位置编码的维度索引。也就是说,位置编码的每一个维度都对应一个正弦曲线。这些曲线的波长构成一个等比数列,取值范围从2π到10000⋅2π。选择该函数的原因在于:作者推测,这种设计能够让模型更轻松地学习基于相对位置的注意力机制。因为对于任意固定的位置偏移量k,位置pos+k对应的位置编码 \(PE_{pos+k}\) ,都可以表示为当前位置编码 \(PE_{pos}\) 的一个线性函数。
作者同时尝试了使用可学习的位置嵌入作为替代方案,实验结果显示,这两种方案产生的效果几乎完全一致。最终选择正弦余弦型位置编码的原因在于,该方案可能使模型具备外推能力,能够处理长度超过训练过程中所遇到的序列。
接下来介绍下位置编码的过程,作者采用了两个不同频率的正弦和余弦函数,分别用于奇数偶数维度( \(PE_{(pos,2i)}\) 用于序列中的偶数维度, \(PE_{(pos,2i+1)}\) 用于序列中的奇数维度),假设序列长度为2,则序号分别为0、1,对于序号0,利用 \(PE_{(pos,2i)}\) 计算( \(pos\) 等于序号),同理,对于序号1,利用 \(PE_{(pos,2i+1)}\) 计算( \(pos\) 等于序号)。
5、为什么选择自注意力机制
在本节中,我们将自注意力层的多个特性,与循环层和卷积层进行对比。这三类层常用于将一个长度可变的符号表示序列 \((x_1,...,x_n)\) 映射为另一个等长序列 \((z_1,...,z_n)\) (其中 \(x_i,z_i\in R^d\) ),例如典型序列转导模型编码器或解码器中的隐藏层。为论证自注意力机制的选用依据,设定了三项评估准则。
第一项准则是每层的总计算复杂度;第二项是可并行化的计算量,该指标由完成计算所需的最小串行操作步数衡量;第三项准则是网络中长距离依赖对应的路径长度。学习长距离依赖关系是诸多序列转导任务的核心挑战,而影响模型学习此类依赖能力的关键因素,在于前向和反向信号在网络中传播时需要经过的路径长度。输入序列与输出序列中任意位置组合之间的路径越短,模型就越容易学习长距离依赖关系。因此,作者还对比了由不同类型网络层构成的模型中,任意两个输入输出位置之间的最大路径长度。
如下表所示,自注意力层仅需恒定数量的串行操作,即可实现所有位置之间的连接;而循环层则需要 \(O(n)\) 量级的串行操作。在计算复杂度方面,当序列长度n小于表示维度d时,自注意力层的运算速度快于循环层。在机器翻译领域的主流模型中,这种长度关系十分常见,例如基于词片段表示和字节对表示的句子编码,其序列长度通常小于特征维度。针对超长序列相关任务的计算性能优化需求,可以对自注意力机制加以限制,使其仅关注输入序列中以对应输出位置为中心、尺寸为 \(r^*\) 的局部邻域。这种限制会将最大路径长度增加至 \(O(n/r)\) ,作者计划在未来的研究中进一步探究该优化方案。
核宽度为 \(k<n\) 的单个卷积层,无法直接实现所有输入输出位置对之间的连接。若要达成这一目标,使用连续卷积核时需要堆叠 \(O(n/k)\) 个卷积层;而使用空洞卷积时则需要堆叠 \(O(log_k(n))\) 个卷积层,这两种方式都会增加网络中任意两个位置之间的最长路径长度。卷积层的计算开销通常是循环层的k倍。不过,深度可分离卷积能够显著降低计算复杂度,将其降至 \(O(k\cdot n\cdot d+n\cdot d^2)\) 。但即便将卷积核宽度设为k=n,深度可分离卷积的复杂度仍与自注意力层 + 逐点前馈网络的组合方案相当,而后者正是作者模型所采用的架构。
自注意力机制还能带来一项附加优势:提升模型的可解释性。对模型的注意力分布进行了可视化分析,并在附录中展示和讨论了相关示例。实验结果表明,不同的注意力头不仅能够明确地学习执行不同的任务,而且许多注意力头的行为表现还与句子的句法结构和语义结构存在关联。
六、训练
本节介绍模型所采用的训练方案
6.1 训练数据与批处理
基于标准的WMT 2014英德翻译数据集开展训练,该数据集包含约450万句平行语料。采用字节对编码对句子进行编码,源语言与目标语言共用一个规模约为37000个标记的词表。
针对英法翻译任务,使用了规模更大的WMT 2014英法翻译数据集,其包含3600万句平行语料;同时采用词片段编码对标记进行切分,构建了一个规模为32000个标记的词表。
训练过程中,按照近似序列长度对平行语料进行分组,构成训练批次。每个训练批次内的平行语料,其源语言标记总数与目标语言标记总数均约为25000个。
这里需要简单解释下为什么要按近似序列长度对平行语料进行分组,因为Transformer的训练采用了Adam训练器,类似于SGD,也有批次训练的概念,但是并不像SGD那样,强制限制N条样本,而是限制语言标记总数,比如I Love you,对应就是3个标记总数。而在按照语言标记总数分组时,是要对不同长度的语料进行padding,如果每句话的标记总数差距太大,需要padding次数过多,导致padding冗余,所以要按照近似序列长度进行分组,这是提升训练效率的常用策略。
6.2 硬件配置与训练时长
在单台配备8块NVIDIA P100显卡的设备上完成了模型训练。对于采用本文所述超参数的基础版模型,每个训练步耗时约0.4秒,总计训练100,000步,训练时长约12小时。对于大型版模型(详见下表,最后一行),每个训练步耗时1.0秒,总计训练300,000步,训练时长约3.5天。

6.3 优化器
我们采用Adam 优化器进行模型训练,其超参数设置为 \(\beta_1=0.9\) 、 \(\beta_2=0.98\) 以及 \(\epsilon=10^{-9}\) 。
在训练过程中,通过如下公式对学习率进行动态调整:
该学习率调整策略的具体逻辑为:
- 在训练的前 \(warmup\_steps\) (预热步数)个训练步内,学习率随训练步数的增加线性上升;
- 当训练步数超过预热步数后,学习率随训练步数的增加按步数的平方根倒数比例下降。
本实验中,设置的预热步数 \(warmup\_steps=4000\) 。
6.4 正则化
在训练过程中,采用了三种正则化方法:
6.4.1 残差连接Dropout
在每个子层的输出上施加Dropout操作(Dropout操作在Transformer中是将子层输出的特征矩阵中的某些元素置零,每个元素置零的概率为 \(P_{drop}=0.1\) ),具体时机为子层输出与子层输入相加、并执行归一化操作
之前。此外,在编码器和解码器堆叠结构中,还对嵌入向量与位置编码的求和结果施加了Dropout操作。对于基础版模型,设置的Dropout概率为 \(P_{drop}=0.1\) 。
6.4.2 标签平滑
训练阶段,使用了平滑系数为 \(\epsilon_{ls}=0.1\) 的标签平滑策略。该策略会导致模型的困惑度指标上升,因为模型在训练过程中会被引导着输出更不确定的概率分布,但与此同时,模型的准确率与BLEU评分会得到显著提升。
七、实验结果
7.1 机器翻译任务
在WMT 2014英德翻译任务上,大型Transformer模型的表现超越了此前所有已报道的最优模型(包括模型集成方案),BLEU评分提升超过2.0分,创下了28.4分的全新最优成绩。该模型的具体配置详见下表最后一行,其训练过程在8块P100 GPU上耗时3.5天。值得注意的是,即便基础版模型,也优于所有此前发表的模型及集成方案,且训练成本仅为同类竞争模型的极小一部分。

在WMT 2014英法翻译任务上,大型模型取得了41.0分的BLEU成绩,性能超越所有此前发表的单模型;同时,其训练成本不足此前最优模型的四分之一。针对英法翻译任务训练的Transformer模型,采用的Dropout概率为 \(P_{drop}=0.1\) ,而非0.3。
对于基础版模型,采用的是最后5个模型检查点的平均值(是在训练模型时,将最后五版的模型结果都进行保存,并取5个版本结果的平均,检查点的保存间隔为10分钟);对于大型版模型,则采用了最后20个检查点的平均值。模型推理阶段使用集束搜索策略,集束宽度设为4,长度惩罚系数α=0.6。这些超参数均是在验证集上通过实验筛选确定的。推理时,将输出序列的最大长度设为输入长度+50,同时尽可能执行提前终止策略。
下表汇总了本研究的实验结果,并将模型的翻译质量与训练成本,和文献中其他模型架构的相关指标进行了对比。对模型训练过程中消耗的浮点运算次数的估算方式为:将训练时长、所用GPU数量、以及GPU的持续算力估值三者相乘。

7.2 模型变体实验
为评估Transformer不同组件的重要性,以基础版模型为基准,通过多种方式对其进行修改,并在英德翻译任务的验证集(newstest2013)上,衡量模型性能的变化幅度。实验过程中,采用了上一节所述的集束搜索策略,但未使用检查点平均的优化手段。相关实验结果汇总于下表中。

在下表的A组实验中,遵循4.2.2节的设定,在保持计算量恒定的前提下,调整注意力头的数量以及注意力键(key)和值(value)的维度。实验结果显示:单头注意力的性能相比最优配置下降了0.9个BLEU分值;同时,当注意力头的数量过多时,模型性能同样会出现衰减。

在上表的B组实验中,观察到,减小注意力键的维度 \(d_k\) 会对模型性能产生负面影响。这一现象表明,衡量query与key匹配度的计算并非易事,采用比点积运算更复杂的匹配度计算函数,或许能带来性能增益。此外,在C组和D组实验中得到了符合预期的结论:模型规模越大,性能表现越好;而Dropout机制在避免模型过拟合方面,发挥了至关重要的作用。在E组实验中,将原有的正弦余弦位置编码替换为可学习的位置嵌入,实验结果显示,其性能与基础版模型几乎完全一致。
7.3 英语成分句法分析
为验证Transformer模型的任务泛化能力,在英语成分句法分析任务上开展了实验。该任务存在几项特殊挑战:输出结果需遵循严格的结构约束、输出序列长度显著长于输入序列;此外,循环神经网络序列到序列模型在小数据场景下,始终未能取得当前最优的任务性能。
基于宾州树库(Penn Treebank) 中《华尔街日报》(WSJ)的语料部分,训练了一个包含4层结构、特征维度 \(d_{model}=1024\) 的Transformer模型,该训练语料包含约4万句训练样本。同时,还在半监督学习场景下进行了模型训练,引入了规模更大的高置信度语料库与伯克利句法分析器语料库,这部分扩展语料的规模达到约1700万句。在仅使用WSJ语料的训练设置中,采用了规模为1.6万标记的词表;在半监督训练设置中,词表规模则扩充至3.2万标记。
仅通过少量实验,在第3.2节对应的验证集上完成了超参数筛选,筛选对象包括Dropout概率(涵盖注意力机制与残差连接两处的Dropout,详见 6.4 节)、学习率以及集束宽度,其余所有参数均沿用英德翻译基础版模型的配置。在模型推理阶段,将输出序列的最大长度提升至输入长度+300;无论在仅使用WSJ语料还是半监督的训练设置下,均采用集束宽度为21、长度惩罚系数 \(\alpha=0.3\) 的集束搜索策略。
下表的实验结果表明:即便未针对该任务进行特定的参数调优,模型仍取得了令人惊喜的性能表现,除循环神经网络语法模型之外,其效果优于此前所有已报道的模型。

与循环神经网络序列到序列模型形成鲜明对比的是:即使仅在包含4万句样本的WSJ训练集上进行训练,Transformer模型的性能依然超越了伯克利句法分析器。
八、结论
在本研究中,提出了Transformer 模型,这是首个完全基于注意力机制的序列转换模型,它以多头自注意力机制,取代了编码 - 解码架构中最常用的循环神经网络层。
在翻译任务中,Transformer的训练速度显著快于基于循环层或卷积层的模型架构。在WMT 2014英德翻译与WMT 2014英法翻译两项任务上,模型均取得了全新的最优性能。其中在英德翻译任务中,论文的最优模型性能甚至超越了此前所有已报道的模型集成方案。
作者对基于注意力机制的模型的未来发展前景充满期待,并计划将其应用于更多其他任务。拟将Transformer扩展至非文本类的输入输出模态任务,同时探索局部受限的注意力机制,以高效处理图像、音频、视频这类大尺寸的输入输出数据。降低生成过程的序列依赖性,是作者的另一项研究目标。

浙公网安备 33010602011771号