1.Transformer-Attention is all your need论文详读-PartⅢ(Why Self-Attention、训练、结果、结论)

⭐原文链接:https://arxiv.org/abs/1706.03762

4. Why Self-Attention

在本节中,我们将自注意层(self-attentionl)的各个方面与循环层(recurrent)和卷积层(convolutional)进行比较,这些层通常用于映射一个可变长度的符号表示序列到另一个等长序列。例如典型序列转换编码器或解码器中的隐藏层。

激发我们使用自注意的动机,我们认为有三个需求。

(1) 一个是每层的总计算复杂度。

(2) 另一个是可以并行化的计算量,可以通过所需的最小序列操作数来衡量。

(3) 第三是网络中远程依赖关系之间的路径长度。

在许多序列转导任务中,学习远程依赖关系(long-range dependencies)是一个关键的挑战。影响学习这种依赖关系能力的一个关键因素是信号在网络中必须遍历的前向和后向路径的长度。输入和输出序列中任何位置组合之间的路径越短,就越容易学习远程依赖关系。因此,我们还比较了由不同层类型组成的网络中任意两个输入和输出位置之间的最大路径长度。

Table 1: Maximum path lengths, per-layer complexity and minimum number of sequential operations for different layer types. n is the sequence length, d is the representation dimension, k is the kernel size of convolutions and r the size of the neighborhood in restricted self-attention.

如上表1,自注意层按顺序执行固定数量的操作来连接所有位置,而循环层需要O(n)个顺序操作。

在计算复杂度方面。当序列长度n小于表示 维度d时,自注意层比循环层更快,这是机器翻译中最先进的模型所使用的句子表示的最常见情况,例如词块(word-piece)和字节对(byte-pair)表示。

为了提高设计很长序列的任务的计算性能,自我注意可以限制为只考虑输入序列中大小为r的邻域,以各自的输出位置为中心。这将使最大路径长度增加到O(n/r)。我们计划在未来的工作中进一步研究这种方法。

一个核宽k<n的单卷积层并不连接所有的输入和输出位置的所有对。这样做需要在连续核的情况下有O(n/k)个卷积层的堆叠,或者在扩张卷积的情况下需要O(logk(n))个卷积层,增加网络中任意两个位置之间的最长路径的长度。

卷积层通常比循环层的成本高k倍。然而,可分离卷积(Separable convolutions)将复杂度显著降低至

然而,即使k=n,可分离卷积(Separable convolutions)的复杂性也等于自注意层和point-wise feed-forward 层的组合,这是我们在模型中采用的方法。

作为附带的好处,自注意可以产生更多可解释的模型。我们检查了我们的模型的注意力分布,并在附录中介绍和讨论了示例。不仅每个注意头都能清楚地学习执行不同的任务,许多注意头还表现出与句子的句法和语义结构(syntactic and semantic structure of the sentences)相关的行为。

5. Training

本节描述了我们模型的训练机制。

5.1 Training Data and Batching——对训练数据进行描述

我们使用WMT 2014英-德标准数据集进行训练,该数据集包含约450万对句子。句子使用字节对(byte-pair)编码进行编码,它拥有约37000个tokens的共享源目标词汇表。对于英-法,我们使用了更大的WMT 2014英语-法语数据集,该数据集包含3600万个句子,并将tokens分割成32000个word-piece vocabulary。句子对按近似的序列长度分批排列在一起。每个训练批包含一组句子对,其中包含大约25000个源tokens和25000个目标tokens。

5.2 Hardware and Schedule

我们在一台有8个NVIDIA P100 GPUs的机器上训练我们的模型。对于使用本文中描述的超参数的基本模型,每个训练步骤大约花费0.4秒。我们总共训练了基础模型100,000步或12小时。对于我们的大型模型(表3的底线描述),步长为1.0秒。这些大模型被训练了30万步(3.5天)。

5.3 Optimizer

我们使用Adam优化器,。在整个训练过程中,我们根据一下公式改变学习率:

这对应于对第一个warmup_steps训练步骤线性增加学习速率,然后按比例降低到步数的平方根的倒数。我们使用了warmup_steps = 4000。

5.4 Regularization

我们在训练中使用了三种类型的正则化:

Residual Dropout

我们将dropout应用于每个子层的输出,然后将其添加到子层输入并归一化(normalized)。此外,我们将dropout应用于编码器和解码器堆叠中的嵌入和(sums of the embeddings)和位置编码(positional encodings)。对于基本模型,我们使用

Label Smoothing

在训练过程中,我们使用值的标签平滑。这令人困惑(hurts perplexity),因为模型学会了更不确定,但提高了准确性和BLEU得分。

6. Results

6.1 Machine Translation

模型在第一个任务的优势

在WMT 2014英语到德语的翻译任务中大transformer模型(表2中的transformer (big))比之前报告的最佳模型(包括集成)的性能高出2.0BLEU以上,建立了28.4的最新BLEU分数。这个模型的配置列在表3的底部。训练时间为3.5天,使用8个P100 GPUs。甚至我们的基础模型也超过了所有以前发表的模型和集合,而训练成本只是任何竞争模型的一小部分。

模型在第二个任务的优势

在2014年WMT英语-法语翻译任务中,我们的大模型获得了41.0的BLEU分数,超过了之前发布的所有单一模型,而训练成本不到之前最先进模型的1/4。用英语-法语训练的transformer(大)模型使用的dropout rate ,而不是0.3。

对于基础模型,我们使用通过平均最后5个checkpoints获得的单一模型,这些checkpoint每隔10分钟编写一次。对于大型模型,我们平均了最后20个checkpoints。我们使用beam search,beam size 为4,length penalty α = 0.6。这些超参数是在development set上进行实验后选定的。我们在推理期间将最大输出长度设置为输入长度+50,但在可能的情况下提前终止。

表2总结了我们的结果,并将我们的翻译质量和训练成本与文献中的其他模型架构进行了比较。我们通过将训练时间、使用的GPU数量和每个GPU的持续单精度浮点容量的估计值相乘来估计用于训练模型的浮点运算的数量。

Table 2: The Transformer achieves better BLEU scores than previous state-of-the-art models on the English-to-German and English-to-French newstest2014 tests at a fraction of the training cost.

6.2 Model Variations

为了评估Transformer不同components的重要性,我们以不同的方式改变了我们的基础模型,在development 集newstest2013上测量英语到德语翻译的性能变化。我们使用了前一节中描述的束搜索(beam search),但没有使用检查点平均(checkpoint averaging)。我们在表3中展示了这些结果。

在表3 (A)行中,我们改变注意头的数量(number of attention heads)以及注意键和值维度(attention key and value dimensions,),保持计算量不变,如第3.2.2节所述.虽然单头注意力比最佳设置差0.9 BLEU,但如果头过多,质量也会下降。

Table 3: Variations on the Transformer architecture. Unlisted values are identical to those of the base model. All metrics are on the English-to-German translation development set, newstest2013. Listed perplexities are per-wordpiece, according to our byte-pair encoding, and should not be compared to per-word perplexities.

在表3 (B)行中,我们观察到减少注意键的大小会损害模型的质量。这表明确定相容性(determining compatibility)并不容易,一个比点积更复杂的相容性函数(more sophisticated compatibility function)可能是有益的。

我们在(C)和(D)行中进一步观察到,正如预期的那样,模型越大越好,dropout在避免过拟合方面非常有帮助。

在第(E)行中,我们将正弦位置编码(sinusoidal positional encoding)替换为学习位置嵌入(learned positional embeddings),并观察到与基本模型几乎相同的结果。

6.3 English Constituency Parsing

为了评估Transformer是否可以推广到其他任务,我们进行了关于英语选区解析(English constituency parsing)的实验。

这项任务提出了具体的挑战:输出受到强烈的结构限制,而且比输入长得多。此外,RNN序列对序列模型还不能在小数据系统中获得最先进的结果。

我们在Penn Treebank的Wall Street Journal (WSJ)部分上训练了一个的4层transformer,大约40K个训练句子。我们还在semi-supervised环境中训练它,使用更大的高置信(high-confidence)和BerkleyParser语料库,大约有17M个句子。对于仅用于WSJ的设置,我们使用了16Ktokens的词汇表,对于半监督设置,我们使用了32K tokens的词汇表。

我们只进行了少量的实验,以选择第22节development set上的dropout、注意力和residual(第5.4节)、learning rates和beam size,所有其他参数与英语-德语基础翻译模型保持不变。在推理过程中,我们将最大输出长度增加到输入长度+300。我们在仅WSJ和semi-supervised设置下都使用了21和α = 0.3的beam size。

我们在表4中的结果表明,尽管缺乏特定于任务的调优,但我们的模型表现得出人意料地好,产生了比之前报道的所有模型(循环神经网络语法除外with the exception of the Recurrent Neural Network Grammar)更好的结果。

与RNN序列到序列模型相比,即使仅在40K句的WSJ训练集上训练,Transformer的性能也优于BerkeleyParser。

Table 4: The Transformer generalizes well to English constituency parsing (Results are on Section 23 of WSJ)

7. Conclusion

在这项工作中,我们提出了Transformer,这是第一个完全基于注意力的序列转换模型,用多头自注意力取代了编码器-解码器架构中最常用的循环层。

对于翻译任务,Transformer的训练速度比基于循环层或卷积层(recurrent or convolutional layers)的架构要快得多。在WMT 2014英语到德语和WMT 2014英语到法语的翻译任务中,我们都达到了一个新的水平。在前一项任务中,我们最好的模型甚至优于所有以前报告的集合。

我们对基于注意力的模型的未来感到兴奋,并计划将其应用到其他任务中。我们计划将Transformer扩展到涉及文本以外的输入和输出模式的问题,并研究局部的、受限制的注意力机制,以有效处理大量输入和输出,如图像、音频和视频。使生成不那么连续(Making generation less sequential)是我们的另一个研究目标。


参考文献

[1] Vaswani, A. , Shazeer, N. , Parmar, N. , Uszkoreit, J. , Jones, L. , & Gomez, A. N. , et al. (2017). Attention is all you need. arXiv.

猜你喜欢

转载自blog.csdn.net/qq_41958946/article/details/128715536