各人读完觉得有帮助记得关注和点赞!!!
Transformer 架构:encoder/decoder 内部细节。
的介绍,说明 Transformer 架构相比当时主流的 RNN/CNN 架构的创新之处:
在 transformer 之前,开始进的架构是 RNN(通常是 LSTM 或 GRU),但它们存在一些标题。
RNN 睁开(unrolled)后长这样:
RNN 最大的标题是级联(recurrent connection): 虽然它使得信息能沿着 input sequence 一路传导, 但也意味着在计算出 i−1 单位之前,无法计算出 i 单位的输出。
与 RNN 此对比,一维卷积(1D convolution)如下:
在这个模型中,全部输出向量都可以并行计算,因此速率非常快。但缺点是它们 在 long range dependencies 建模方面非常弱。在一个卷积层中,只有间隔比 kernel size 小的单词之间才气彼此交互。对于更长的依赖,就必要堆叠许多卷积。
Transformer 试图兼顾二者的长处:
- 可以像对彼此相邻的单词一样,轻松地对输入序列的整个范围内的依赖关系进行建模(事实上,假如没有位置向量,二者就没有区别);
- 同时,避免 recurrent connections,因此整个模型可以用非常高效的 feed forward 方式计算。
Transformer 的别的设计告急基于一个考虑因素 —— 深度 —— 大多数选择都是练习大量 transformer block 层,比方,transformer 中只有两个非线性的地方:
- self-attention 中的 softmax;
- 前馈层中的 ReLU。
模型的别的部分完全由线性变换构成,完美地保存了梯度。
择要
主流的 sequence transduction model 都是基于复杂的循环或卷积神经网络, 其中包罗一个 encoder 和一个 decoder。结果最好的模型还会通过 attention 机制将 encoder 和 decoder 连起来。
我们提出一种新的简朴网络架构 Transformer,它弃用了循环和卷积,完全基于 attention 机制。
在两个机器翻译任务上的实验表明,Transformer 模型的结果好于其他模型,而且更容易并行化,练习时间显著减少。
- Tranformer 在 WMT 2014 英德翻译任务上达到了 28.4 BLEU,比现有最佳结果提高了 2 BLEU 以上。
- 在 WMT 2014 英法翻译任务上,Tranformer 在 8 个 P100 GPU 上练习 3.5 天后,创造了新的单模型最佳性能, 这个练习本钱也远小于本文引用的性能雷同的其他模型。
我们还乐成将 Transformer 应用于英语句法分析,展示了 Transformer 在其他任务上的泛化本事。
1 引言
当前,RNN(Recurrent Neural Networks,循环神经网络)—— 尤其是 LSTM RNN(long short-term memory)和 gated RNN —— 已经是序列建模和 transduction 标题(比方语言建模和机器翻译)的最好方式, 现在也仍然有大量的工作在继续扩大 recurrent 类语言模型和 encoder-decoder 架构的本事边界。
1.1 RNN 架构的内在序次计算限定(来自 RNN 其中的 R)
Recurrent models 通常沿输入和输出序列的符号位置进行因子计算。
- 对于位置 t,根据前一个隐藏状态 ht−1 和位置 t 处的 input 生成新的隐藏状态 ht。
- 这种内在的序次性限定了练习数据之间的并行化,序列较长时这一点尤为告急。
近期的工作通太过解技巧(factorization tricks)和条件计算(conditional computation)显著提高了计算效率, 别的,后者还提高了模型性能。然而,序次计算(sequential computation)这一根本约束仍然存在。
1.2 RNN+Attention 架构:更好的模型结果
Attention 机制已经成为许多任务中序列建模和 transduction 模型的一个告急构成部分, 它允许直接对依赖进行建模(modeling of dependencies), 而不用考虑这些依赖在输入或输出序列中的间隔。
但是,绝大部分大部分环境,人们仍然是将 attention 机制与 RNN 一起使用,因而仍然受到序次计算的约束。
1.3 Transformer:避免 R,一种完全基于 attention 机制的新架构
本文提出 Transformer —— 一种避免循环机制、完全基于 attention 机制 而在输入和输出之间建立全局依赖关系的模型架构。
相比 RNN,Transformer 的并行本事显著提拔,在 8 个 P100 GPU 上练习 12 小时就能创造新的最高翻译程度。
2 背景
2.1 CNN:减少序次计算,但对远间隔依赖关系的学习本钱很高
Extended Neural GPU、ByteNet 和 ConvS2S 也是想减少序次计算, 它们都使用 CNN(convolutional neural networks,卷积神经网络)作为基本构建块, 为全部输入和输出位置并行计算隐藏表示。
但是,在这些模型中,从两个恣意输入或输出位置(input or output positions)做信号关联,所需的操作数量随着位置之间的间隔增加而增加,
- ConvS2S 线性增长
- ByteNet 对数增长。
这使得学习远间隔位置之间的依赖关系变得困难。而在 Transformer 中,
- 所需的操作减少到一个常量,不过这里的代价是有效分辨率降低,这是 averaging attention-weighted positions 导致的;
- 但是,可以通过 Multi-Head Attention 来缓解。
2.2 Self-attention (intra-attention) 机制
Self-attention,偶然称为 intra-attention,
- 是一种留意力机制(2014 paper),
- 目标是计算序列的一种表示(a representation of the sequence)
- 方式是对一个输入序列的不同位置做各种关联(relating different positions of a single sequence)。
Self-attention 已经乐成地应用于各种任务 [4, 27, 28, 22],包罗
- 阅读理解(reading comprehension)
- 总结抽象(abstractive summarization)
- textual entailment
- 学习任务无关的句子表示(task-independent sentence representations)
2.3 Tranformer:避免 RNN 和 CNN
端到端的影象网络(end-to-end memory networks)是基于一种 recurrent attention 而非 sequence-aligned recurrence 的机制,在 simple-language question answering 和语言建模任务中表现精良。
但据我们所知,Transformer 是第一个完全依赖 self-attention —— 而不使用 sequence-aligned RNNs 或 CNNs —— 来计算输入和输出表示的 transduction 模型。
3 Transformer 模型架构
3.0 Encoder-decoder:sequence transduction 模型的基本结构
大部分性能较好的 neural sequence transduction 模型都会包罗一个 encoder-decoder 结构:
- encoder 将一个输入序列 (x1,…,xn) 映射到另一个序列表示
|