Attention Is All You Need

Attention Is All You Need[1706.03762] Attention Is All You Need

0 摘要

翻译

主流的序列转换模型基于复杂的循环神经网络或卷积神经网络,这类模型包含编码器与解码器结构。性能最佳的模型还通过注意力机制实现编码器与解码器的连接。本文提出一种全新的简单网络架构 ——Transformer,该架构完全基于注意力机制,彻底摒弃了循环结构与卷积操作。

在两项机器翻译任务上的实验表明,Transformer 模型不仅质量更优,还具备更强的并行性,且训练时间显著缩短。在 WMT 2014 英语到德语翻译任务中,该模型取得了 28.4 的 BLEU 值,超越了包括集成模型在内的现有最佳结果,BLEU 值提升超过 2 个点。在 WMT 2014 英语到法语翻译任务中,经过 8 块 GPU、3.5 天的训练,模型创下了 41.8 的单模型 BLEU 值新纪录,其训练成本仅为文献中最佳模型的一小部分。此外,通过在英语 constituency parsing 任务(无论训练数据规模大小)上的成功应用,本文验证了 Transformer 具有良好的任务泛化能力。

1、(动机)在此论文之前,主流的序列转换模型基于复杂的RNN或CNN,这类模型也包含了编码器与解码器,性能最佳的模型也还通过注意力机制实现编码器与解码器的连接。

这类模型的缺点:

并行计算能力差、训练效率低(RNN固有局限,处理一个句子时,必须现计算第一个词,无法并行处理;CNN局部性限制,CNN虽然可以并行处理,但是依赖卷积核的局部感受野,若要捕捉长距离依赖关系,需通过多层卷积堆叠(如增大感受野),这会增加模型复杂度和计算成本,且长距离信息传递效率仍低于注意力机制)

长距离依赖建模能力有限(RNN的记忆衰退、CNN的间接依赖)

2、(贡献)本文提出一种全新的简单网络架构–Transformer,该架构完全基于注意力机制,从而彻底摒弃了循环结构和卷积操作,Transformer模型不仅质量更优,还具备更强的并行性,且训练时间显著缩短,训练速率得到显著提升;

实验证明:

在两项机器翻译任务上进行实验:

WMT 2014 英语到德语翻译任务WMT 2014 英语到法语翻译任务两项实验,Transformer模型训练时间更短,并行计算能力更强,模型质量更好;

术语说明

sequence transduction:序列转换(指将一种序列转换为另一种序列的任务,如翻译)

recurrent neural networks:循环神经网络(RNN)

convolutional neural networks:卷积神经网络(CNN)

encoder and decoder:编码器与解码器

attention mechanism:注意力机制

Transformer:Transformer 模型(特定架构名称,保留原名)

recurrence:循环结构(指 RNN 中的时序依赖机制)

convolutions:卷积操作

parallelizable:可并行性(指模型计算的并行处理能力)

BLEU:双语评估替换(一种衡量翻译质量的自动评估指标)

WMT 2014:2014 年机器翻译研讨会(国际权威的机器翻译评测基准)

ensemble:集成模型(多个模型的组合)

constituency parsing:组块解析(句法分析的一种,将句子分解为句法成分)

generalizes:泛化(指模型对未见过的数据或新任务的适应能力)

1 引言

翻译

递归神经网络,尤其是长短期记忆网络 [13] 和门控递归神经网络 [7],已被确立为序列建模和转换问题(如语言建模与机器翻译 [35, 2, 5])中的最先进方法。此后,大量研究持续突破递归语言模型与编码器 – 解码器架构的性能边界 [38, 24, 15]。

递归模型的计算通常沿输入和输出序列的符号位置展开。通过将位置与计算时间步对齐,模型生成一系列隐藏状态\(h_t\),其值由前一时刻的隐藏状态\(h_{t-1}\)和当前位置t的输入共同决定。这种固有的序列特性导致训练样本内部无法并行计算;当序列长度较长时,这一问题尤为关键 —— 内存限制会进一步制约样本间的批处理效率。尽管近期研究通过因子分解技巧 [21] 和条件计算 [32] 在计算效率上取得了显著提升,且后者还改善了模型性能,但序列计算这一根本约束仍未解决。

注意力机制已成为各类序列建模与转换任务中高性能模型的核心组件,它能够建模输入或输出序列中任意距离的依赖关系 [2, 19]。然而,除少数例外 [27],这类注意力机制多与递归网络结合使用。

在本文中,我们提出一种全新模型架构 ——Transformer,它摒弃了递归结构,完全依赖注意力机制来捕捉输入与输出之间的全局依赖关系。Transformer 支持更高程度的并行计算,仅需在 8 块 P100 GPU 上训练 12 小时,就能在翻译质量上达到新的最先进水平。

先前处理序列建模与转换问题建模与机器翻译的方法:RNN(递归神经网络)、LSTM(long short-term memory,长短期记忆网络)、Encoder-Deconder(编码器-解码器架构)、GRU(门控递归神经网络);

这些模型的问题:

递归模型的计算通常沿输入和输出序列的符号位置展开,无法并行计算;

当处理序列较长,内存耗费过大,使样本处理的效率变差;

尽管此后研究在计算效率上取得显著提示,但是无法对序列并行计算这一根本问题仍为解决;

本文改进:

注意力机制可以在RNN上使用,通过注意力机制把encoder的信息传给decoder,可以允许不考虑输入输出序列的距离建模。

提出全新模型架构–Transformer,摒弃了递归结构,摒弃了递归结构,完全依赖注意力机制来捕捉输入与输出之间的全局依赖关系,支持更高程度的并行计算,训练效率高,翻译质量高;

术语说明

Recurrent neural networks:递归神经网络(RNN)

long short-term memory (LSTM):长短期记忆网络

gated recurrent neural networks (GRU):门控递归神经网络

state of the art:最先进(方法 / 性能)

sequence modeling and transduction:序列建模与转换

encoder-decoder architectures:编码器 – 解码器架构

hidden states:隐藏状态

parallelization:并行计算

batching:批处理

factorization tricks:因子分解技巧

conditional computation:条件计算

attention mechanisms:注意力机制

global dependencies:全局依赖关系

2 相关工作

翻译

减少序列计算量的目标同样是 Extended Neural GPU [16]、ByteNet [18] 和 ConvS2S [9] 的设计基础。这些模型均以卷积神经网络为基本构建块,对所有输入和输出位置的隐藏表示进行并行计算。在这类模型中,关联任意两个输入或输出位置信号所需的运算量,随位置间距离的增加而增长:ConvS2S 呈线性增长,ByteNet 呈对数增长。这使得模型难以学习远距离位置间的依赖关系 [12]。在 Transformer 中,这一运算量被缩减为常数级,尽管代价是由于对注意力加权位置进行平均而导致有效分辨率降低 —— 对此,我们通过 3.2 节所述的多头注意力机制进行缓解。

自注意力(有时称为内部注意力)是一种关联单个序列中不同位置以计算序列表示的注意力机制。自注意力已成功应用于多种任务,包括阅读理解、抽象摘要、文本蕴含推理以及学习任务无关的句子表示 [4, 27, 28, 22]。

端到端记忆网络基于递归注意力机制而非序列对齐的递归结构,已被证明在简单语言问答和语言建模任务中表现优异 [34]。

然而,据我们所知,Transformer 是首个完全依赖自注意力来计算输入和输出表示的转换模型,无需使用序列对齐的循环神经网络或卷积操作。在后续章节中,我们将详细描述 Transformer,阐述自注意力的设计动机,并讨论其相对于 [17, 18, 9] 等模型的优势。

1、使用CNN模型代替RNN(减少序列计算量的目标同样是 Extended Neural GPU [16]、ByteNet [18] 和 ConvS2S [9] 的设计基础。)

优点:

减少序列计算

问题:

术语说明

Extended Neural GPU:扩展神经 GPU(一种并行计算模型)

ByteNet/ConvS2S:基于卷积的序列转换模型(具体模型名称)

self-attention/intra-attention:自注意力 / 内部注意力(关注序列内部位置关联的机制)

reading comprehension:阅读理解

abstractive summarization:抽象摘要(生成式摘要)

textual entailment:文本蕴含推理(判断文本间的逻辑关系)

end-to-end memory networks:端到端记忆网络(基于记忆机制的神经网络)

transduction model:转换模型(将一种序列转换为另一种序列的模型)

sequence-aligned RNNs:序列对齐的循环神经网络(按时序步骤处理的 RNN)

3 模型架构

翻译

大多数具有竞争力的神经序列转换模型都采用编码器 – 解码器结构 [5, 2, 35]。其中,编码器将输入的符号表示序列(x₁, …, xₙ)映射为连续表示序列 z =(z₁, …, zₙ)。给定 z 后,解码器会逐个生成输出符号序列(y₁, …, yₘ)。在每一步中,模型采用自回归方式 [10],即生成下一个符号时,会将之前已生成的符号作为额外输入。

Transformer 遵循这一整体架构,其编码器和解码器均由堆叠的自注意力层和逐点全连接层构成,分别对应图 1 的左半部分和右半部分。

3.1 编码器与解码器堆叠结构

翻译

编码器:编码器由N=6个相同层的堆栈组成。每一层有两个子层。第一种是多头自我注意机制,第二种是简单的、位置上完全连接的前馈网络。我们在两个子层的每一个周围使用残差连接[11],然后进行层归一化[1]。也就是说,每个子层的输出是LayerNorm(x+子层(x)),其中子层(x)是子层本身实现的函数。为了促进这些残余连接,模型中的所有子层以及嵌入层都会产生维度dmodel=512的输出。

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

编码器(Encoder)由6个结构相同的Encode组成,每个Encode中含有两个子层:多头注意力机制、前馈神经网络;子层之间也还使用了残差连接,对处理之后的结果进行层归一化(LayerNorm);

解码器(Decoder),是由六个结构相同的Decode组成,每个Decode中的子层除了有Encode中的两个层外,在其两个层之前又加了一个有掩码的多头注意力;Decoder接收Encoder的输出作为输入;

3.2 注意力机制

翻译

注意力函数可描述为将一个查询(query)和一组键值对(key-value pairs)映射到输出的过程,其中查询、键、值及输出均为向量。输出的计算方式是对所有值进行加权求和,而每个值所分配的权重,则通过查询与对应键的兼容性函数计算得出。

术语说明

attention function:注意力函数(实现 “关注重要信息” 的核心计算逻辑)。

query, keys, values:查询、键、值(注意力机制中的三个核心向量,类比信息检索:用 “查询” 匹配 “键”,再用匹配结果对 “值” 加权)。

weighted sum of the values:值的加权和(注意力输出的计算方式,重要性高的 “值” 占比更高)。

compatibility function:兼容性函数(衡量查询与键匹配程度的函数,如点积、缩放点积等)。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇