Attention is all yon need

"Attention Is All You Need" 是一篇由Vaswani等人于2017年提出的论文,引入了Transformer模型,该模型在机器翻译任务中取得了重大突破。这篇论文提出了一种基于自注意力机制的完全注意力模型,不再使用传统的循环神经网络(RNN)或卷积神经网络(CNN)结构。

该论文的核心思想是使用自注意力机制来建模输入序列中的全局依赖关系,而无需依赖于RNN或CNN中的逐步处理。自注意力机制允许模型直接对输入序列的不同位置进行交互,并为每个位置分配权重,以反映其与其他位置之间的相对重要性。

通过引入自注意力机制,Transformer模型具有以下关键特点:

自注意力机制:Transformer模型使用自注意力机制来计算输入序列中不同位置之间的相对重要性,并根据这些权重对序列进行加权处理。

并行计算:Transformer模型可以在输入序列中的所有位置并行计算,而无需按顺序进行处理。这使得Transformer能够高效地处理长序列和大规模数据。

编码器-解码器架构:Transformer模型采用编码器-解码器架构,其中编码器用于将输入序列编码为一系列潜在表示,解码器则使用这些表示来生成输出序列。

多头注意力机制:Transformer模型还引入了多头注意力机制,允许模型同时使用多个注意力头来捕捉不同的注意力权重,以更好地建模不同特征和语义。

"Attention Is All You Need" 这篇论文的主要贡献是引入Transformer模型并展示了其在机器翻译任务中的出色性能。该模型的创新之处在于使用自注意力机制来替代传统的序列处理方法,从而实现更好的建模能力和更高的并行计算效率。这篇论文的思想对自然语言处理和其他序列建模任务产生了广泛的影响,并激发了后续研究中对注意力机制的广泛应用。

摘要:

目前主导的序列转换模型基于复杂的循环神经网络(RNN)或卷积神经网络(CNN),包括编码器和解码器,并通过注意力机制连接编码器和解码器。我们提出了一种新的简单网络架构,Transformer,完全基于注意力机制,完全摒弃了循环和卷积操作。在两个机器翻译任务的实验中,我们发现这些模型在质量上表现优越,同时具有更高的并行化能力和显著更短的训练时间。我们的模型在WMT 2014年英德翻译任务上达到了28.4 BLEU的得分,相较于现有最佳结果(包括集成模型),提升了超过2个BLEU。在WMT 2014年英法翻译任务上,我们的模型仅使用8个GPU进行3.5天的训练,就实现了单模型的最新BLEU得分41.8,训练成本远低于文献中最佳模型的训练成本。我们还展示了Transformer模型在其他任务上的泛化能力,成功地应用于英语成分句法分析,无论是在大规模训练数据还是有限训练数据上都取得了良好的效果。

Intorduction

过去,循环神经网络(RNN),尤其是长短期记忆(LSTM)[13]和门控循环神经网络[7],已经被确立为序列建模和转换问题(如语言建模和机器翻译)中的最先进方法[35, 2, 5]。此后,许多努力继续推动循环语言模型和编码器-解码器架构的发展边界[38, 24, 15]。

循环模型通常根据输入和输出序列的符号位置进行计算。将这些位置对齐到计算时间步骤上,它们生成一系列隐藏状态ht,作为先前隐藏状态ht−1和位置t处的输入的函数。由于其固有的顺序性质,在训练示例内部无法实现并行化处理,而这在处理更长的序列长度时变得关键,因为内存限制限制了跨示例的批处理。最近的工作通过因式分解技巧[21]和条件计算[32]等方法,在计算效率方面取得了显著的改进,同时在后一种情况下也提高了模型的性能。然而,顺序计算的基本限制仍然存在。

注意力机制已成为各种任务中引人注目的序列建模和转换模型的重要组成部分,它允许对输入或输出序列的依赖关系进行建模,而不考虑它们在序列中的距离[2, 19]。然而,除了极少数例外[27],此类注意力机制通常与循环网络结合使用。

在这项工作中,我们提出了Transformer模型,它摒弃了循环结构,完全依赖注意力机制来建立输入和输出之间的全局依赖关系。Transformer模型具有更高的并行化能力,仅经过12小时的训练,在8个P100 GPU上就能达到机器翻译质量的最新水平。

这段话总结了过去循环神经网络(RNN)及其变种在序列建模和转换问题中的成功应用,如语言建模和机器翻译。然而,传统的循环模型在处理长序列时存在并行化和计算效率的限制,因为它们必须按顺序逐步计算隐藏状态,无法在训练示例内进行并行化处理。

为了克服这些限制,注意力机制成为各种任务中引人注目的序列建模和转换模型中不可或缺的一部分,它允许模型建模输入或输出序列中的依赖关系,而无需考虑它们在序列中的距离。然而,在大多数情况下,注意力机制与循环网络结合使用。

因此,在这项工作中,提出了Transformer模型,它摒弃了循环结构,完全依靠注意力机制来捕捉输入和输出之间的全局依赖关系。Transformer模型具有更高的并行化能力,并且在仅训练12个小时的情况下,使用8个P100 GPU就能达到机器翻译质量的最新水平。

总结来说,这段话介绍了传统循环神经网络的局限性和注意力机制的优势,并提出了基于注意力机制的Transformer模型,以解决循环模型的限制并取得更好的性能。

Background

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

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

端到端记忆网络是基于递归注意机制而不是序列对齐递归的,并在简单语言问答和语言建模任务中表现良好 [34]。

据我们所知,Transformer是第一个完全依赖自注意力计算其输入和输出表示而不使用序列对齐的RNN或卷积的转导模型。在接下来的章节中,我们将描述Transformer,解释自注意力的动机,并讨论其相对于模型如[17, 18]和[9]的优势。

ConvS2S和ByteNet都是用于序列到序列(sequence-to-sequence)任务的神经网络模型。

ConvS2S(Convolutional Sequence-to-Sequence)是一种基于卷积神经网络的序列到序列模型,它使用了卷积操作来处理输入和输出序列之间的依赖关系。在ConvS2S中,卷积神经网络被应用于编码器和解码器,可以并行计算不同位置的隐藏表示。然而,随着位置之间距离的增加,ConvS2S模型中关联两个任意位置的操作数量会线性增长,导致学习远距离依赖关系变得困难。

ByteNet是另一种序列到序列模型,它也使用卷积神经网络作为基本构建块。ByteNet的特点是在处理输入和输出序列之间的依赖关系时,所需操作的数量随着位置之间的距离的增加而以对数方式增长。这使得ByteNet模型能够更好地捕捉长距离的依赖关系,但仍然存在着计算复杂度和模型性能之间的权衡。

这两种模型都试图通过卷积神经网络的并行计算来改善传统循环神经网络在处理序列数据时的限制,但它们的关注点和处理方式略有不同。Transformer模型通过引入自注意力机制,以一种更有效的方式处理输入和输出序列之间的依赖关系,同时实现更好的并行性和更高的计算效率。

这段话主要介绍了Transformer模型及其与其他模型的区别。它指出了传统的循环神经网络和卷积神经网络在处理序列数据时的限制,特别是在处理远距离位置之间的依赖关系时的困难。为了解决这个问题,Transformer模型引入了自注意力机制,它允许模型在计算输入和输出表示时直接关注不同位置之间的关系,而不是通过循环结构或卷积操作。与传统模型相比,Transformer模型具有更好的并行性和更高的计算效率,并能够在机器翻译等任务中取得优秀的性能。这段话还提到了自注意力在其他任务中的成功应用,如阅读理解、文本摘要和句子表示学习。总之,这段话强调了Transformer模型以自注意力为基础的创新,并介绍了其优势和与传统模型的区别。

模型架构

大多数竞争性的神经序列转换模型都具有编码器-解码器结构[5, 2, 35]。其中,编码器将输入符号表示的序列(x1,...,xn)映射到连续表示的序列z =(z1,...,zn)。给定z,解码器逐步生成一个符号输出序列(y1,...,ym),每次生成下一个符号时,模型都是自回归的[10],将先前生成的符号作为附加输入。Transformer模型遵循这种整体架构,使用堆叠的自注意力和逐点全连接层作为编码器和解码器,分别显示在图1的左半部分和右半部分。

Competitive neural sequence transduction models"指的是在序列转换任务中具有竞争力的神经网络模型。在自然语言处理和机器翻译等任务中,序列转换是指将一个序列(例如输入句子)转换成另一个序列(例如输出句子)的过程。

在这个上下文中,"competitive"表示这些神经网络模型在性能上与其他方法相媲美甚至更好。这些模型使用神经网络来学习输入和输出序列之间的映射关系,并通过训练数据进行参数优化,以使得模型能够准确地转换输入序列为输出序列。

这些竞争性的神经序列转换模型通常包含编码器-解码器结构,其中编码器将输入序列映射到连续的表示,而解码器则将连续表示转换为输出序列。这些模型使用各种技术和注意力机制来处理输入和输出序列之间的依赖关系,以提高转换的质量和准确性。

因为序列转换是许多自然语言处理任务的核心,这些具有竞争力的神经网络模型对于实现高质量的文本生成、机器翻译、语音合成等应用非常重要。

自回归(auto-regressive)是指在生成序列时,每个时间步的输出依赖于前面时间步生成的内容。换句话说,当前时间步的输出是基于过去时间步的输出作为输入进行生成的。在自回归模型中,序列的生成是逐步进行的,每个时间步都会考虑到前面已生成的内容。这种方式使得模型能够在生成序列时保持一定的上下文和连贯性。

在自回归模型中,当前时间步的输出可以作为下一个时间步的输入,这样序列的生成可以一步一步进行下去。这种逐步生成的方式使得模型能够捕捉到序列中的长期依赖关系,并且可以应用于各种序列生成任务,如文本生成、语音合成、图像生成等。

在上述提到的文献中,编码器-解码器结构中0的解码器部分采用了自回归的方式,每个时间步生成一个输出符号,该符号将作为下一个时间步的输入,以逐步生成输出序列。这种自回归生成的方式在许多序列转换任务中被广泛应用。

编码器(Encoder)由N=6个相同的层组成,每个层包含两个子层。第一个子层是多头自注意力机制(multi-head self-attention),第二个子层是简单的逐位置全连接前馈网络(position-wise fully connected feed-forward network)。在每个子层周围,我们采用了残差连接(residual connection)和层归一化(layer normalization)[1]。残差连接的作用是将子层的输出与输入相加,然后进行归一化处理。这样的设计有助于信息的流动。为了实现这些残差连接,模型中的所有子层以及嵌入层的输出维度都是dmodel = 512。

解码器(Decoder)也由N=6个相同的层组成。除了每个编码器层中的两个子层外,解码器还插入了第三个子层,该子层对编码器堆栈的输出执行多头注意力(multi-head attention)。与编码器类似,我们在每个子层周围使用残差连接和层归一化。在解码器堆栈中,我们还修改了自注意力子层,以防止当前位置关注后续位置。通过这种掩码操作,再加上输出嵌入层相对偏移一个位置的设定,可以确保位置i的预测仅依赖于小于i位置上已知的输出。

总之,这段文字描述了Transformer模型中编码器和解码器的层级结构和组成,以及它们在序列转换任务中的功能。编码器用于将输入序列转换为连续表示,而解码器用于根据编码器的输出生成目标序列。这些组件通过残差连接和层归一化来促进信息流动,并通过注意力机制实现对输入和输出之间的依赖建模。

在Transformer模型中,Mask(opt)操作是一种遮蔽操作,用于限制注意力的计算范围,特别是在解码器中。

在解码器中,为了确保在生成输出序列时,每个位置的预测仅依赖于已知的输出,需要对未来的位置进行遮蔽,即防止当前位置的查询关注未来位置的键值对。这是为了保持自回归性质,即生成序列的每个位置只能看到之前已生成的部分。

Mask(opt)操作通常通过在注意力计算中引入一个掩码矩阵来实现。该掩码矩阵在未来位置处设置一个很大的负无穷值,以使softmax函数将其对应的注意力权重近似为零。这样,未来位置的信息就不会被考虑进当前位置的注意力计算中,从而确保模型按顺序逐个生成输出。

因此,Mask(opt)操作在Transformer模型中的作用是控制注意力的计算范围,防止解码器在生成输出时窥探未来的信息,保持了模型的自回归特性。

文中提到,最常用的两种注意力函数是加性注意力(additive attention)和点积(multiplicative)注意力。点积注意力与Transformer模型中的算法完全相同,只是缺少1√dk的缩放因子。加性注意力则使用具有单个隐藏层的前馈网络来计算兼容性函数。尽管在理论复杂度上两者相似,但点积注意力在实践中更快速且更节省空间,因为可以使用高度优化的矩阵乘法代码来实现。

对于较小的dk值,这两种机制的性能相似,但在dk值较大时,加性注意力在性能上优于未经缩放的点积注意力。猜测是由于较大的dk值导致点积的幅度增大,在softmax函数中出现极小梯度的区域。为了抵消这种影响,文中将点积乘以1√dk进行缩放操作。

公式(1):公式(1)表示了注意力机制的计算过程。给定输入的查询矩阵 Q、键矩阵 K 和值矩阵 V,注意力机制通过计算查询与键的点积,将其除以√dk 的缩放因子,并应用 softmax 函数得到对值的权重。最后,通过将权重乘以值矩阵 V 来计算输出矩阵。这个过程可以看作是将查询与键进行关联,并根据关联程度给值赋予不同的权重。公式(1)描述了这种计算过程的数学表达式。

这段文字描述了在Transformer中如何使用多头注意力机制。具体来说,Transformer在三个不同的方式中使用多头注意力:

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

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

同样,解码器中的自注意力层使得解码器中的每个位置都可以关注解码器中包括该位置在内的所有位置。为了保持自回归特性,我们需要阻止解码器中的左向信息流动。我们通过在缩放点积注意力中对输入的softmax进行掩码操作(将其设置为-∞),将所有与非法连接对应的值屏蔽掉。参考图2。

总之,这段文字解释了在Transformer中如何利用多头注意力机制实现编码器-解码器之间的注意力、编码器内部的自注意力以及解码器内部的自注意力。

Why selfattention??

这段话主要比较了自注意力层与常用的循环层和卷积层在序列转导任务中的各个方面。作者考虑了三个方面来支持使用自注意力层。

首先是每层的总计算复杂度。其次是可以并行计算的量,即所需的最小顺序操作数。第三个方面是网络中长程依赖之间的路径长度。学习长程依赖是许多序列转导任务中的一个关键挑战,而路径的长度会影响学习这些依赖的能力。

在该段落中,作者指出自注意力层通过一定数量的顺序执行操作将所有位置连接起来,而循环层需要 O(n) 的顺序操作。从计算复杂性的角度来看,当序列长度 n 小于表示维度 d 时,自注意力层比循环层更快。对于涉及非常长序列的任务,可以限制自注意力仅考虑以输出位置为中心的输入序列的大小为 r 的邻域,这将增加最大路径长度到 O(n/r)。作者计划在未来的工作中进一步研究这种方法。

对于卷积层,单个具有核宽度 k < n 的卷积层无法连接所有输入和输出位置,为了实现这一点,需要堆叠 O(n/k) 个卷积层(在连续核情况下),或者在扩张卷积情况下需要 O(logk(n)),这增加了网络中任意两个位置之间最长路径的长度。卷积层通常比循环层更昂贵,复杂度是 k 的倍数。然而,可分离卷积可以大大降低复杂度,达到 O(k · n · d + n · d^2)。即使对于 k = n,可分离卷积的复杂度仍等于自注意力层和逐点前馈层的组合。

此外,自注意力层还具有提供更可解释模型的附加优势。作者检查了模型的注意力分布,并在附录中给出和讨论了一些例子。每个注意力头明显学习执行不同的任务,并且许多注意力头似乎表现出与句子的句法和语义结构相关的行为。

这段话总结了自注意力层、循环层和卷积层在序列转导任务中的比较。作者比较了它们在计算复杂度、可并行计算性和长距离依赖性路径长度等方面的特点。

作者指出,自注意力层具有固定数量的顺序操作,可以连接所有位置,而循环层需要更多的顺序操作。在计算复杂性方面,当序列长度较短时,自注意力层比循环层更快。对于处理非常长的序列任务,自注意力可以通过限制考虑围绕每个输出位置的输入序列的局部邻域来提高计算性能。

对于卷积层,单个卷积层无法连接所有的输入和输出位置,需要堆叠多个卷积层来实现这一点。卷积层通常比循环层更昂贵,但可分离卷积可以降低复杂度。然而,即使是可分离卷积,在某些情况下其复杂度与自注意力层和逐点前馈层的组合相当。

此外,作者提到自注意力层可能产生更可解释的模型,并通过检查注意力分布给出了相关示例。

总之,这段话主要讨论了自注意力层、循环层和卷积层在序列转导任务中的优缺点和性能比较。

这段文字描述了在Transformer模型中应用了dropout操作。dropout是一种正则化技术,用于在模型训练过程中随机丢弃一部分神经元的输出,以减少过拟合。

在Transformer模型中,dropout被应用于每个子层(sub-layer)的输出,在其被添加到子层输入之前进行规范化。此外,dropout还被应用于编码器和解码器堆栈中的嵌入(embeddings)和位置编码(positional encodings)的总和。这样做的目的是增加模型的鲁棒性和泛化能力。

在基础模型中,使用了dropout的概率(dropout rate)为Pdrop = 0.1,这意味着每个神经元的输出有10%的概率被随机丢弃。通过应用dropout,模型在训练过程中会学习到更健壮的表示,并且有助于减少过拟合。

因此,这段文字主要讲述了在Transformer模型中使用dropout操作的目的和具体应用情况。

在训练过程中,我们采用了标签平滑(label smoothing)技术,其中使用了一个值为εls = 0.1的平滑参数 [36]。标签平滑会对训练数据中的目标标签进行修改,使得模型在训练时更加谨慎和不确定。尽管标签平滑会降低模型的困惑度(perplexity),但它可以提高模型的准确性和BLEU分数。

标签平滑的主要目的是缓解过拟合并改善模型的泛化能力。在传统的分类任务中,使用one-hot编码的标签表示目标类别的概率为1,而其他类别的概率为0。标签平滑通过将目标类别的概率从1降低到1-εls,并将剩余的概率均匀分配给其他类别,来减少模型对训练数据中标签的过度自信。这样可以使得模型对于输入样本中的一些不确定性更加敏感,从而提高模型的鲁棒性和泛化能力。

尽管标签平滑会降低模型对训练数据的拟合程度(困惑度增加),但它经过实验证明可以提高模型在测试集上的准确性和BLEU分数,特别是在机器翻译等序列转导任务中。因此,在训练Transformer模型时采用了标签平滑技术,并将平滑参数设置为εls = 0.1。

在这项工作中,我们介绍了Transformer,这是第一个完全基于注意力机制的序列转导模型,它用多头自注意力机制取代了在编码器-解码器结构中常用的循环层。

对于翻译任务而言,与基于循环层或卷积层的架构相比,Transformer的训练速度显著提高。在WMT 2014英德翻译和英法翻译任务中,我们取得了新的最佳结果。在前者的任务中,我们的最佳模型甚至超过了之前报道的所有集合模型。

我们对基于注意力机制的模型的未来充满期待,并计划将其应用于其他任务。我们计划将Transformer扩展到涉及文本以外的输入和输出模态的问题,并研究局部、受限的注意力机制,以高效处理大规模的图像、音频和视频等输入和输出。使生成过程更少依赖顺序是我们的另一个研究目标。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值