深度学习:读论文《Attention Is All You Need》-2017年

hello,大家好,我是小孟,欢迎来到我的频道,如果喜欢,请三连:关注、点赞、转发。您的支持是我创作的动力源泉。今天我们来读一篇论文,Transformer 的新型神经网络架构,它彻底改变了自然语言处理(NLP)领域,目前非常火的ChatGPT就是采用Transformer框架。

一、作者简介

这篇论文在文中标注了所有作者是同等贡献,这在其他论文中是比较少遇到的,一般情况下,论文的第一作者贡献度是最大的,越靠后贡献度越低。

这篇论文是由Google Brain团队的Ashish Vaswani、Noam Shazeer、Niki Parmar、Jakob Uszkoreit、Llion Jones和Aidan N. Gomez共同撰写的论文。其中,Ashish Vaswani现为加州大学伯克利分校计算机科学系助理教授;Noam Shazeer是Google Brain的研究员;Niki Parmar是Google Brain的研究员;Jakob Uszkoreit是Google研究院的研究员;Llion Jones是Google Brain的研究员;Aidan N. Gomez则是OpenAI的研究员,曾在Google Brain工作。

二、摘要

主流的序列转换模型基于复杂的循环神经网络或卷积神经网络,包括编码器和解码器。表现最好的模型还通过注意力机制连接编码器和解码器。我们提出了一种新的简单网络架构,Transformer,完全基于注意机制,完全摒弃循环和卷积。在两个机器翻译任务的实验中,这些模型在质量上表现优异,同时更易并行化,需要更少的训练时间。我们的模型在 WMT 2014 英德翻译任务上取得了28.4的BLEU分数,优于现有最佳结果,包括集合模型,超过2个BLEU。在 WMT 2014 英法翻译任务上,我们的模型在8个GPU上训练3.5天后,建立了一个新的单模型最优BLEU分数,为41.8,这只是文献中最佳模型的训练成本的一小部分。我们证明了 Transformer 在其他任务中具有良好的泛化能力,成功地将其应用于英语语法分析,无论是使用大量还是有限的训练数据。

三、引言

循环神经网络、长短时记忆网络(LSTM)和门控循环神经网络已被牢牢确立为序列建模和转换问题(如语言建模和机器翻译)的最先进方法。自那以后,许多工作一直在继续推动循环语言模型和编码器-解码器体系结构的发展。

循环模型通常沿着输入和输出序列的符号位置分解计算。将位置与计算时间步对齐,它们生成一系列隐藏状态ht,作为先前隐藏状态ht-1和位置t的输入的函数。这种固有的序列性质排除了训练示例内部的并行化,这在较长的序列长度下变得至关重要,因为内存限制限制了跨示例的批处理。最近的工作通过分解技巧和条件计算在计算效率方面取得了显著改进,同时在后者的情况下也改善了模型性能。然而,顺序计算的根本约束仍然存在。

注意力机制已经成为各种任务中引人注目的序列建模和转换模型的一个重要组成部分,允许对依赖性进行建模,而不考虑它们在输入或输出序列中的距离。然而,在很少几种情况下,这种注意力机制是与循环网络一起使用的。

在本文中,我们提出了Transformer,这是一种模型架构,放弃了循环,并完全依赖于注意力机制来绘制输入和输出之间的全局依赖关系。Transformer允许更大程度的并行化,并且在仅在八个P100 GPU上进行了12小时的训练后,就可以达到新的翻译质量最高水平。

四、背景

减少顺序计算的目标也构成了Extended Neural GPU、ByteNet和ConvS2S的基础,它们都使用卷积神经网络作为基本构建块,为所有输入和输出位置并行计算隐藏表示。在这些模型中,将两个任意输入或输出位置的信号相关联所需的操作数量随着位置之间的距离增加而增长,对于ConvS2S是线性增长,对于ByteNet是对数增长。这使得学习远距离位置之间的依赖关系更加困难。在Transformer中,这被减少为一定数量的操作,尽管由于平均注意加权位置而导致有效分辨率降低,但我们在第3.2节中介绍的多头注意力机制抵消了这种影响。

自注意力(self-attention),有时也称为内部注意力(intra-attention),是一种注意力机制,用于关联同一序列中不同的位置,以计算序列的表示。自注意力已成功地应用于各种任务,包括阅读理解、抽象摘要、文本蕴涵和学习任务无关的句子表示。

端到端记忆网络是基于一种循环注意力机制而非序列对齐循环,已被证明在简单语言问答和语言建模任务中表现良好。

据我们所知,Transformer是第一个完全依赖于自注意力机制计算其输入和输出表示的传导模型,而不使用序列对齐的循环神经网络或卷积神经网络。在接下来的几节中,我们将描述Transformer,解释自注意力机制的动机。

五、模型结构

大多数有竞争力的神经序列转换模型都具有编码器-解码器结构。在这里,编码器将符号表示(,...,)的输入序列映射到连续表示z = (,...,)的序列中。给定z,解码器然后一次生成一个符号输出序列(,...,)。在每一步中,模型都是自回归的,在生成下一个符号时,消耗先前生成的符号作为附加输入。

Transformer模型采用这种总体架构,使用堆叠的自注意力机制和点对点的全连接层作为编码器和解码器,分别显示在图1的左半部分和右半部分。

Figure 1: The Transformer - model architecture.

5.1、编码器和解码器堆

编码器:编码器由N = 6个相同的层堆叠而成。每个层包含两个子层。第一个子层是多头自注意机制,第二个是一个简单的位置逐点的全连接前馈网络。我们在每个子层周围使用残差连接,然后是层归一化。也就是说,每个子层的输出是LayerNorm(x + Sublayer(x)),其中Sublayer(x)是子层本身实现的函数。为了方便这些残差连接,模型中的所有子层,以及嵌入层,都会产生512维的输出。

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

5.2、注意力

一个注意力函数可以被描述为将一个查询(query)和一组键值对(key-value pairs)映射到一个输出(output)的函数,其中查询、键、值和输出都是向量。输出被计算为值的加权和,每个值被赋予的权重是由查询与相应键的兼容性函数计算的。

图2:(左)缩放点积注意力。(右)多头注意由并行运行的多个注意层组成。

5.2.1、缩放点积注意力

我们将我们特定的注意力机制称为“缩放点积注意力”(图2)。输入由维度为的查询和键以及维度为的值组成。我们计算查询与所有键的点积,将每个点积除以,并应用softmax函数来获得值的权重.

在实践中,我们同时对一组查询进行注意力函数的计算,将这些查询打包成一个矩阵 Q。键和值也被打包成矩阵 K 和 V。我们通过以下方式计算输出矩阵:

两种最常用的注意力函数是加法注意力和点积(乘法)注意力。点积注意力与我们的算法相同,除了缩放因子。加法注意力使用带有单个隐藏层的前馈网络计算兼容性函数。虽然两者在理论复杂度上类似,但在实践中,点积注意力更快、更节省空间,因为它可以使用高度优化的矩阵乘法代码实现。

当的值比较小的时候,这两种机制的表现相似,但对于较大的值,加法注意力机制优于没有缩放的点积注意力机制。我们怀疑在值很大的情况下,点积的结果会变得很大,将softmax函数推到具有极小梯度的区域。为了抵消这种影响,我们将点积结果除以进行缩放。

5.2.2、多头注意力

我们发现,与其使用具有维度的键、值和查询进行单个注意力函数,将查询、键和值线性投影次,使用不同的可学习线性投影将它们投影到、和维度上,效果更好。在这些投影版本的查询、键和值上,我们并行执行注意力函数,得到维的输出值。然后将这些值进行串联,再次进行投影,最终得到最终的值,如图2所示。

多头注意力机制使模型能够同时关注不同位置上来自不同表示子空间的信息。使用单个注意力头进行平均处理会抑制这种能力。

这里的投影是指参数矩阵,,,和。在这项工作中,我们使用h = 8个并行的注意力层或头。对于每个头,我们使用。由于每个头的维度降低,总的计算成本类似于具有完整维度的单头注意力。

5.2.3、在我们的模型中使用注意力

Transformer在三个不同的方面使用多头注意力:

• 在“编码器-解码器注意力”层中,查询来自前一个解码器层,而记忆键和值来自编码器的输出。这允许解码器中的每个位置关注输入序列中的所有位置。这模仿了序列到序列模型中的典型编码器-解码器注意机制。

• 编码器包含自注意层。在自注意层中,所有键、值和查询都来自同一个位置,即编码器中上一层的输出。编码器中的每个位置都可以关注编码器上一层中的所有位置。

• 同样,解码器中的自注意层允许解码器中的每个位置关注到该位置及其之前的解码器中的所有位置。我们需要防止解码器中的向左信息流以保留自回归属性。我们通过在缩放点积注意力中屏蔽(将其设置为- )与非法连接对应的所有softmax输入值来实现这一点。请参见图2。

5.3、位置编码前馈网络

除了注意力子层,我们的编码器和解码器的每个层还包含一个全连接的前馈网络,它分别且相同地应用于每个位置。该网络由两个线性变换组成,其中间有一个ReLU激活函数。

(2)

虽然在不同位置上线性变换的方式相同,但是它们在不同层之间使用不同的参数。另一种描述方法是,它们是使用内核大小为1的两个卷积。输入和输出的维度是 = 512,内层的维度是 = 2048。

5.4、嵌入和Softmax

类似于其他序列转导模型,我们使用学习到的嵌入将输入标记和输出标记转换为维度为的向量。我们还使用通常的学习线性变换和softmax函数将解码器的输出转换为预测的下一个标记的概率。在我们的模型中,我们在两个嵌入层和预softmax线性变换之间共享相同的权重矩阵。在嵌入层中,我们将这些权重乘以。

5.5、位置编码

由于我们的模型不包含循环和卷积,为了使模型利用序列的顺序信息,我们必须注入一些有关序列中标记的相对或绝对位置的信息。为此,在编码器和解码器堆栈底部的输入嵌入中添加“位置编码”。位置编码与嵌入具有相同的维度,因此可以将它们相加。有许多位置编码的选择,可以学习或固定不变。

表格1:n是序列长度,d是表示维度,k是卷积核大小,r是受限自注意力中邻域的大小。

在这项工作中,我们使用了不同频率的正弦和余弦函数:

其中 是位置, 是维度。也就是说,位置编码的每个维度对应一个正弦波。这些波长形成了一个从 到 的几何级数。我们选择这个函数是因为我们假设它能够让模型轻松地学会按照相对位置进行注意力,因为对于任意固定的偏移量 , 可以表示为 的线性函数。

我们也尝试使用学习的位置嵌入代替正弦位置编码,并发现这两个版本产生的结果几乎相同(见表3的E行)。我们选择正弦版本,因为它可以使模型对训练期间未遇到的更长序列长度进行外推。

六、为什么用自注意力

本节中,我们比较了自注意力层与常用的循环层和卷积层在将一个变长符号表示的序列(,...,)映射到另一个等长序列(,...,)的方面。这些序列的每个元素都是维实数,例如,它们可以是典型序列传导编码器或解码器中的隐藏层。激励我们使用自注意力的是三个需求。

其中一个是每个层的总计算复杂度。另一个是可以并行计算的计算量,这是用最少的顺序操作来衡量的。

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

如表1所示,自注意力层使用恒定数量的顺序操作连接所有位置,而循环层需要个顺序操作。从计算复杂度的角度来看,当序列长度小于表示维度时,自注意力层比循环层更快。这通常是最先进的机器翻译模型中使用的句子表示的情况,例如word-piece和byte-pair表示。为了提高处理非常长序列任务的计算性能,自注意力可以被限制为仅考虑以相应输出位置为中心的输入序列中大小为的邻域。这将增加最大路径长度为。我们计划在未来的工作中进一步研究这种方法。

使用宽度为的单个卷积层不能连接所有输入和输出位置对。在连续内核的情况下,这需要个卷积层,或在膨胀卷积的情况下需要个卷积层,从而增加了网络中任意两个位置之间的最长路径的长度。卷积层通常比循环层更昂贵,因为它们的计算复杂度是的倍数。但是,可分离卷积大大减少了计算复杂度,降至。即使,可分离卷积的复杂度也等于自注意力层和逐点前馈层的组合,这是我们模型所采用的方法。

此外,自注意力还可以产生更易于解释的模型。我们检查了模型的注意力分布,并在附录中呈现和讨论了示例。不仅单个注意力头明显学习执行不同的任务,而且许多注意力头似乎表现出与句子的句法和语义结构相关的行为。

七、总结

本文提出了Transformer,这是第一个完全基于注意力机制的序列转换模型,用多头自注意力取代了编码器-解码器架构中最常用的循环层。 对于翻译任务,相较于基于循环或卷积层的架构,Transformer的训练速度更快。在WMT 2014英德翻译和英法翻译任务中,我们都取得了新的最佳表现。在前者任务中,我们的最佳模型甚至优于以前所有报告的集成模型。 我们对基于注意力机制的模型的未来感到兴奋,并计划将其应用于其他任务。我们计划将Transformer扩展到涉及文本以外的输入和输出模态的问题,并研究局部的、受限制的注意力机制,以有效地处理诸如图像、音频和视频之类的大型输入和输出。使生成结果不再顺序化也是我们的另一个研究目标。 我们用于训练和评估模型的代码可在https://github.com/tensorflow/tensor2tensor上获得。

论文地址:https://arxiv.org/abs/1706.03762

展开阅读全文

页面更新:2024-04-25

标签:卷积   维度   编码器   解码器   序列   注意力   函数   深度   模型   机制   位置   论文

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top