Attention Is All You Need:仅基于注意力机制的 Transformer 序列转导模型
Attention Is All You Need:仅基于注意力机制的 Transformer 序列转导模型
论文提出 Transformer,完全摒弃循环与卷积,仅用多头自注意力构建编码器-解码器,在 WMT 2014 英德与英法翻译任务上取得当时最优 BLEU,且训练成本显著更低。
背景
在序列建模与转导任务(如语言模型、机器翻译)中,循环神经网络(尤其是 LSTM 与门控循环网络)长期占据最优地位。循环模型按符号位置逐步计算隐状态,其固有的顺序性使得训练样本内部无法并行,序列越长,内存约束越限制跨样本批处理。尽管因子分解技巧与条件计算提升了效率,顺序计算的根本约束依然存在。注意力机制已成为序列建模的重要组成,可建模任意距离的依赖,但此前几乎总是与循环网络结合使用。卷积类模型(ByteNet、ConvS2S 等)虽可并行计算所有位置的隐表示,但关联任意两位置所需操作数随距离增长(ConvS2S 线性、ByteNet 对数),远距离依赖更难学习。作者据此提出完全依赖注意力、不用序列对齐 RNN 或卷积的 Transformer。
创新点
- 提出 Transformer:首个完全基于自注意力计算输入输出表示、不使用序列对齐 RNN 或卷积的转导模型,编码器与解码器均由堆叠的自注意力与逐位置全连接层构成。
- 在 WMT 2014 英德翻译上,大模型以 28.4 BLEU 超过此前最佳结果(含集成模型)2 BLEU 以上;英法任务上以 41.8 BLEU 建立新的单模型最优,训练仅需 8 块 GPU 3.5 天。
- 系统比较自注意力与循环、卷积层在每层复杂度、可并行度(最少顺序操作数)与最大路径长度上的差异,论证自注意力在短路径与并行性上的优势,并用多头注意力缓解平均带来的分辨率损失。
- 验证模型可泛化到其他任务:在 WSJ 英语成分句法分析上,仅用 4 层 Transformer 即超过此前多数模型(仅逊于 RNN Grammar),且在小数据与半监督设定下均表现良好。
- 通过消融实验考察注意力头数、键维度、模型规模、dropout 与位置编码方式等组件的影响,并展示注意力头似乎学到与句法、语义结构相关的行为。
方法
Transformer 沿用编码器-解码器总体结构。编码器由 N=6 个相同层堆叠,每层含两个子层:多头自注意力与逐位置全连接前馈网络,每个子层周围有残差连接并接层归一化,输出为 LayerNorm(x+Sublayer(x)),所有子层与嵌入层输出维度 d_model=512。解码器同样 6 层,在编码器两个子层之外插入第三个子层,对编码器输出做多头注意力;并将解码器自注意力中 softmax 输入里对应非法连接的位置置为负无穷以掩蔽,配合输出嵌入偏移一位,保证位置 i 的预测只依赖小于 i 的已知输出。注意力函数将查询与键值对映射为输出,输出是值的加权和,权重由查询与对应键的兼容函数计算。缩放点积注意力先计算查询与所有键的点积并除以 sqrt(d_k),再经 softmax 得权重并加权求和值,矩阵形式为 softmax(QK^T/sqrt(d_k))V;作者指出 d_k 较大时点积幅值变大、softmax 进入梯度极小区域,故需缩放。多头注意力将查询、键、值分别经 h 次不同可学习线性投影到 d_k、d_k、d_v 维,并行执行注意力后拼接并再次投影,使模型能同时关注不同表示子空间的信息;论文取 h=8,d_k=d_v=d_model/h=64,总计算成本与全维单头注意力相近。注意力在模型中有三种用法:编码器-解码器注意力中查询来自前一解码层、键值来自编码器输出;编码器自注意力中各位置可关注上一层所有位置;解码器自注意力中每个位置可关注至当前位置(含自身)。前馈网络对每个位置独立且相同地施加两层线性变换,中间为 ReLU,即 max(0, xW_1+b_1)W_2+b_2,输入输出 512 维、内层 2048 维,可视为核大小为 1 的两个卷积。嵌入层使用学习到的嵌入将输入输出 token 转为 d_model 维向量,两个嵌入层与 softmax 前线性变换共享同一权重矩阵,嵌入层权重乘以 sqrt(d_model)。由于模型无循环也无卷积,作者在编码器与解码器底部向输入嵌入加入位置编码以注入位置信息,采用不同频率的正弦与余弦函数,波长构成从 2π 到 10000·2π 的几何级数;选择该函数是因为假设其便于模型学习按相对位置关注(固定偏移 k 时 PE_{pos+k} 可表示为 PE_{pos} 的线性函数),且可能外推到比训练时更长的序列;实验表明学习式位置嵌入结果几乎相同。
实验
训练数据为标准 WMT 2014 英德数据集(约 450 万句对,字节对编码,共享源目标词表约 37000 token)与更大的英法数据集(3600 万句,32000 word-piece 词表),按近似序列长度批处理,每批约 25000 源 token 与 25000 目标 token。硬件为单机 8 块 NVIDIA P100 GPU:基础模型每步约 0.4 秒,共训练 100000 步(12 小时);大模型每步 1.0 秒,训练 300000 步(3.5 天)。优化器为 Adam(β1=0.9、β2=0.98、ε=1e-9),学习率按公式随步数变化,前 4000 步线性预热后按步数平方根倒数衰减。正则化包括对每个子层输出(加残差与归一化之前)以及嵌入与位置编码之和施加 dropout(基础模型 P_drop=0.1),并使用 ε_ls=0.1 的标签平滑,作者指出标签平滑损害困惑度但提升准确率与 BLEU。翻译结果:英德任务上大模型 28.4 BLEU,超过此前最佳(含集成)2.0 BLEU 以上,基础模型 27.3 BLEU 也已超过此前所有已发表模型与集成,且训练成本仅为其一小部分;英法任务上大模型 41.8 BLEU(表 2 中亦给出 41.0 的表述),超过此前所有单模型,训练成本不足此前最优模型的四分之一。推理使用 beam size 为 4、长度惩罚 α=0.6 的束搜索,最大输出长度为输入长度加 50 并可提前终止;基础模型平均最后 5 个检查点,大模型平均最后 20 个。模型变体实验在英德开发集 newstest2013 上进行:单头注意力比最佳设置差 0.9 BLEU,头数过多质量也下降;减小注意力键维度 d_k 损害质量,作者据此认为确定兼容性并不容易、比点积更复杂的兼容函数可能有益;更大模型更好,dropout 对防止过拟合很有帮助;用学习式位置嵌入替换正弦编码结果几乎相同(25.7 对 25.8 BLEU)。英语成分句法分析在 Penn Treebank 的 WSJ 部分(约 4 万句)上训练 4 层、d_model=1024 的模型,并做半监督设定(约 1700 万句);仅 WSJ 设定 F1 为 91.3,半监督为 92.7,超过 BerkeleyParser 等此前多数模型,仅逊于 RNN Grammar 的 93.3。
局限
- 自注意力每层复杂度为 O(n^2·d),序列很长时计算开销大;作者提出可将自注意力限制在各自输出位置周围大小为 r 的邻域,但这会把最大路径长度增加到 O(n/r),并称计划在未来工作中进一步研究该思路。
- 将任意两位置关联的操作数降为常数,代价是注意力加权位置平均导致有效分辨率下降,作者用多头注意力来抵消这一效应。
- 模型不再含循环与卷积,必须额外注入位置信息;作者采用正弦位置编码,并称选择它是希望模型能外推到训练时未见过的更长序列,说明外推能力在该设计下仍属假设而非已验证结论。
- 在英语成分句法分析上,模型虽超过 BerkeleyParser 等,但仍逊于 Recurrent Neural Network Grammar 的 93.3 F1;作者也说明只做了少量实验来选择 dropout、学习率与 beam 大小,未做任务特定调优。
- 结论中作者计划把 Transformer 扩展到文本之外的输入输出模态,并研究局部受限注意力以高效处理图像、音频、视频等大输入输出,同时把让生成更少顺序化列为未来目标,表明这些方向在本文中尚未实现。
- 从解读角度看,论文的实证集中在两个翻译任务与一个句法分析任务,且模型变体实验主要在英德开发集上进行,结论向其他任务与语言的推广性仍需更多验证。(解读者观点)
AI 依据论文正文生成,经人工审核;数字与结论以原文为准。
- 感谢你赐予我前进的力量

