Attention Is All You Need 翻译版
摘要:
当前主流的序列转换模型依赖于复杂的循环神经网络或卷积神经网络,它们通常由编码器和解码器构成。性能最好的模型通过注意力机制将编码器与解码器连接起来。
我们在本文中提出了一种新颖且结构简单的网络架构-Transformer,该架构完全基于注意力机制,彻底去除了循环和卷积结构。
我们在两个机器翻译任务上的实验显示,transformer模型不仅在质量上优于现有模型,同时更易并行训练,所需训练时间也显著减少。
例如,在WMT2014英语-德语翻译任务中,我们的模型取得了28.4的BLEU分数,比现有最好结果(包括模型集成)还高出2分;在音轨-法语任务中,我们的单模型BLEU分数达到41.8,训练时间仅为3.5天,远低于其他顶级模型的训练成本。
此外,我们还将transformer成功应用于英语句法分析任务,表明其良好的泛化能力。
第一章:引言
序列转换任务,例如机器翻译,在许多自然语言处理(NLP)应用中都至关重要。当前的主流方法基于编码器-解码器架构,其中输入序列首先被编码为一个连续表示,然后由解码器逐步生成输出序列。
编码器和解码器通常使用循环神经网络、长短期记忆网络或门控循环单元等变体。解码器也可能使用卷积神经网络。无论哪种方式,这些模型都会在解码器总引入注意力机制,以便更好的访问输入序列的信息,尤其是在处理长距离依赖时。
在这种背景下,我们提出了transformer:一种全新的网络架构,完全基于注意力机制,完全去除了循环结构和卷积架构。我们展示了这种架构在翻译任务中不仅训练更快,而且在BLEU得分上u额超越了此前最强模型。
transformer模型的主要优势包括:
1、更高的并行性:传统RNN必须顺序处理时间步,而transformer能并行处理整个序列。
2、更短的训练时间:由于其完全并行化的结构,我们在训练阶段获得了显著的加速。
3、更好的性能:实验表明,其在多个机器翻译任务上的BLEU得分超过了其他架构。
我们还表明Transformer具备良好的扩展能力,可以应用于更大规模的数据和其他任务,例如句法分析。
第二章: 背景
近年来,注意力机制在多种任务中取得了显著成功,包括机器翻译、语音识别和图像处理等。它的核心思想是:在生成输出的每一个位置时,模型都可以根据输入的所有位置内容动态调整关注权重。
注意力机制允许模型在每个步骤中直接访问输入序列中的所有位置,而不像传统RNN那样必须依赖于恰诺哥隐藏状态传播信息。这种能力使注意力机制特别适用于处理长距离依赖,而这是RNN架构的一个显著弱点。
2.1注意力
给定一个查询向量和一组建和值,注意力机制通过计算查询与每个键之间的相似度(通常是点积),再用这些相似度作为权重对值进行加权求和,从而生成输出。
常用的形式是缩放点积注意力,计算如下:
其中:
-
Q 是查询矩阵(queries)
-
KKK 是键矩阵(keys)
-
VVV 是值矩阵(values)
-
dk_dk 是键的维度(用于缩放)
缩放是为了防止在纬度较大时点积值过大,导致softmax梯度消失
2.2 多头注意力
为进一步增强模型的表达能力,我们引入了多头注意力机制。与其只使用一个单一的注意力函数,多头注意力将查询、键、值分别映射成多个子空间,然后在每个子空间中并行地执行注意力操作,最后将所有注意力头的结果拼接起来。
这样做的好处是,模型可以从不同角度关注输入信息,比如某些注意力头可能更关注句法结构,另一些可能关注语义关系。
第三章:模型架构
transformer模型使用编码器-解码器结构,与以往的序列到序列模型类似。但与传统基于RNN或CNN的模型不同,transformer完全依赖注意力机制,且在训练过程中允许更高程度的并行化。
3.1 总体结构
整个模型由两个部分组成:
编码器:由多个相同的层堆叠而成,每一层包含两个子层:1.多头注意力机制 2.前馈全连接网络
解码器:也由多个相同的层堆叠组成:每一层包三个子层:1.多头自注意力机制 2.与编码器输出交互的注意力机制 3.前馈全连接网络
每个子层都有残差连接和层归一化。公式如下:
LayerNorm(x+Sublayer(x))
其中Sublayer(x)表示每个子层的函数(如注意力或前馈网络)
3.2 注意力机制
transformer使用的是缩放点积注意力。给定查询Q、键K、值V,输出为:
为了提升性能,我们使用多头注意力:
其中,每个head是:
这样,模型可以从多个子空间中独立学习不同的表示。
3.3 前馈网络
每个位置上的输出通过相同的两层前馈网络进行处理:
这个模块独立作用于每个位置,结构与传统MLP类似。
3.4 残差连接与层归一化
每个子层后都采用残差连接,然后加上LayerNorm,可以更好地帮助梯度传播,稳定训练。
3.5 嵌入与位置编码(embeddings and positional encoding)
由于transformer中没有循环结构,我们需要引入位置编码(positional encoding)来提供位置信息。
我们将位置编码向量加到输入嵌入上:
位置编码采用正弦和余弦函数,确保不同位置具有可区分性:
这样,模型就能通过加法感知词语在序列中的位置信息。
第四章 训练
本章介绍了我们训练transformer模型时使用的方法,包括损失函数、优化器、正则化技巧以及训练超参数。
4.1目标函数
我们使用的是标准的最大似然估计,即最小化模型生成序列与目标序列之间的交叉熵损失。模型通过自回归方式逐个生成下一个词,在每一步都基于前面已生成的词预测下一个词。
4.2 优化器
我们使用了Adam优化器,超参数设置如下:
此外,我们采用了一个带有warmup的学习率调度策略:
这里的想法是:在前几步中快速增大学习率,之后再按反比例衰减,以获得更稳定的训练。
我们设置了warmup_steps=4000,这在训练初期可以有效防止梯度不稳定。
4.3 正则化
为了提升泛化能力,我们使用了几种正则化技巧:
残差连接后加Dropout:应用于每个子层的输出
注意力权重中的Dropout:作用于softmax权重
嵌入层和位置编码的总和也使用了Dropout
标签平滑:在目标分布上引入噪声,避免模型过拟合到one-hot标签
我们设置平滑值,即将10%的概率质量均匀分配给非目标词
4.4 数据与训练细节
我们在以下两个翻译任务上进行了训练与评估:
1.WMT 2014英文-德文:训练集包含约450万个句子对
2.WMT 2014英文-法文:训练集包含约3600万个句子对
训练使用了8个NVIDIA P00 GPU,训练时间:
英-德任务约需12小时
英-法任务约需3.5天
总结:本章介绍了transformer的训练细节,包括warmup学习率策略、Adam优化器、Dropout、标签平滑等关键手段,为模型性能和稳定训练提供了保障。
第五章 实验结果
本章展示了transformer模型在两个标准机器翻译任务中的表现,并与当时的最先进模型进行比较。
5.1 翻译质量
我们在两个数据集上进行了评估:
WMT2014英德翻译任务
使用了大约450万个句子对进行训练
transformer在BLEU得分上达到了27.3
在使用更大模型配置和训练更久的情况下,得分达到了28.4
WMT2014英法翻译任务
使用了约3600万个句子对
transformer big模型取得了41.8 BLEU的单模型分数,刷新了记录
相比之下,之前的SOTA模型通常训练成本高,且推理速度慢。
5.2 模型效率
我们比较了训练时间和推理速度,结果显示
transformer可以在训练时间上显著节省成本,主要是因为其完全基于注意力结构,可以并行处理序列中的所有位置。
与基于循环的模型相比,transformer在相同训练资源下收敛更快,训练更稳定。
5.3 消融实验
我们对模型进行了多种配置的消融实验,以探究每个组件的重要性:
多头数量:较多的注意力头(例如8或16)比单头性能好,过少会降低表达能力。
前馈层维度:加宽前馈层能带来性能提升。
层数:更多的编码器/解码器层提升效果,但也会增加训练开销。
位置编码:如去除位置编码,则模型性能大幅下降,说明transformer虽非序列模型,但仍依赖位置信息。
5.4 长距离依赖建模能力
我们发现,tranformer对长句子的处理能力明显优于RNN系列模型。这是因为注意力机制能够直接连接序列中任意两个位置,而不是依赖于序列传播。
第六章 注意力可视化
本章通过可视化注意力权重的方式,展示transformer模型是如何学习和利用注意力来建模输入序列中的结构信息的。这一部分不仅展示了模型的直观行为,也增强了模型的可解释性。
6.1 自注意力可视化
在自注意力机制中,模型每一步都可以对整个输入序列中的所有词分配不同的权重。
我们在编码器和解码器的不同层中,分别可视化了多个注意力头的权重矩阵。
观察发现:
有些注意力头倾向于关注句子中的特定结构,如:
句法结构(例如主语与动词之间的依赖关系)
对称词或对应位置
有些注意力头会在每层中逐渐转向关注更“全局”的语义信息,显示出一种逐层抽象的表示学习过程。
6.2 编码器-解码器注意力
在解码器中,每一步生成输出词时,都会通过cross-attention层关注解码器的输出,即输入序列中哪些词对当前生成词最相关。
观察到的现象包括:
解码器生成动词时,会特别关注输入中的动作信息。
对于代词等需要上下文推理的词,解码器会回溯性地聚焦到先前输入中的实体词或代词指代词。
6.3 说明行与可解释性
注意力机制的一个优势是它天然可解释:
每一步的注意力分布可以清楚展示模型关注了哪些词
与传统黑盒神经网络相比,transformer更容易分析、调试
研究者甚至将注意力头用作“结构分析工具”,比如用来推测句法结构、关键词抽取等。
第七章 相关工作
本章回顾了与transformer架构密切相关的研究工作,重点讨论了注意力机制、序列建模架构、以及用于机器翻译的模型。
7.1 注意力机制的发展
注意力机制最早由Bahdanau等人提出,用于增强神经机器翻译中的编码器-解码器模型,使解码器在生成每个输出词时,能对输入序列中不同位置的表示分配不同的权重。
此后,Luong等人提出了多种注意力变体,提升了对长文本的处理效果。
这些研究表明:
注意力机制显著提高了序列建模中对长距离依赖的建模能力。
我们提出的transformer则是将注意力机制作为整个模型的唯一核心计算单元,这在以往是没有的。
7.2 基于循环与卷积的模型
RNN
包括LSTM、GRU在内的RNN变体长期主导序列任务建模
缺点是难以并行,且对长距离依赖建模效果有限。
CNN
如ConvS2S模型,使用多层卷积替代循环,提升并行计算能力。
但CNN仍然在建模远距离依赖方面存在局限,尤其是在捕捉非局部关系时。
Transformer相比两者:
拥有更强的并行性(非递归结构)
注意力机制能直接连接任意两个位置,天然建模非局部依赖
7.3 大规模训练与并行化
随着数据和模型规模不断扩大,模型的训练效率变得极其重要。
transformer的架构:
不再依赖时间步处理(不像RNN)
更适合在GPU上高效训练
支持大批量、长序列的输入
这使得transformer成为一个非常适合工业部署和大规模预训练的结构,也为之后BERT、GPT等模型的诞生奠定了基础。
第八章 结论
我们在本研究中提出了transformer,一种完全基于注意力机制的序列建模结构,完全摒弃了循环和卷积结构。
核心优势总结如下:
训练效率高:transformer架构允许更高程度的并行处理,使得训练过程显著加速;
性能优越:在两个主流的机器翻译任务(英-德、英-法)上,transformer都超过了以往所有模型的BLEU得分;
建模能力强:注意力机制具备直接捕捉远程依赖的能力,使得模型在长序列处理上表现出色;
可扩展性强:结构简洁、模块化,易于扩展到更大的模型和更多的任务中。
我们相信,transformer架构不仅适用于机器翻译任务,还具有广泛的使用潜力,尤其是自然语言理解与生成、句法分析、多模态学习等领域。
未来的工作可能包括:
探索更深层次的模型结构
在更大规模的数据集上进行训练
将此类架构扩展应用于其他任务和领域