Attention Is All You Need (NIPS 2017)

news2024/11/18 13:45:48

Attention Is All You Need - 注意力就是你所需要的(NIPS 2017)

  • 摘要
  • 1. 引言
  • 2. 背景
  • 3. 模型架构
    • 3.1 编码器和解码器堆叠
    • 3.2 注意力
      • 3.2.1 缩放点积注意力
      • 3.2.2 多头注意力
      • 3.2.3 注意力在我们的模型中的应用
    • 3.3 位置前馈网络
    • 3.4 嵌入和Softmax
    • 3.5 位置编码
  • 4. 为什么自注意力
  • 5. 训练
    • 5.1 训练数据和批次
    • 5.2 硬件和策略
    • 5.3 优化器
    • 5.4 规范化
  • 6. 结果
    • 6.1 机器翻译
    • 6.2 模型变化
  • 7. 结论
  • References
  • 其他参考

声明:此翻译仅为个人学习记录

文章信息

  • 标题:Attention Is All You Need (NIPS 2017)
  • 作者:Ashish Vaswani*, Noam Shazeer*, Niki Parmar*, Jakob Uszkoreit*, Llion Jones*, Aidan N. Gomez*, Łukasz Kaiser*, Illia Polosukhin* (* Equal contribution) 姓名列表顺序是随机的。Jakob提出用自注意力取代RNN,并开始努力评估这一想法。Ashish和Illia一起设计并实现了第一个Transformer模型,并积极参与了这项工作的各个方面。Noam 提出了缩放点积注意力、多头注意力和无参数位置表示,并成为几乎涉及每个细节的另一个人。Niki在我们的原始代码库和tensor2tensor中设计、实现、调整和评估了无数的模型变体。Llion还试验了新的模型变体,负责我们的初始代码库以及有效的推理和可视化。Lukasz和Aidan花了无数漫长的日子来设计和实现tensor2tensor的各个部分,取代了我们早期的代码库,极大地改善了结果,并大大加快了我们的研究。
  • 文章链接:https://proceedings.neurips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf
  • 文章代码:https://github.com/tensorflow/tensor2tensor

摘要

占主导地位的序列转导模型基于复杂的递归或卷积神经网络,包括编码器和解码器。性能最好的模型还通过注意力机制连接编码器和解码器。我们提出了一种新的简单网络架构,即Transformer,它完全基于注意力机制,完全省去了递归和卷积。在两个机器翻译任务上的实验表明,这些模型在质量上优越,同时更具并行性,并且需要更少的训练时间。我们的模型在WMT 2014英语到德语翻译任务中实现了28.4 BLEU,比现有的最佳结果(包括组合)提高了2个以上BLEU。在WMT 2014英语到法语翻译任务中,我们的模型在八个GPU上训练了3.5天后,建立了一个新的单模型最先进的BLEU分数为41.0,这只是文献中最佳模型训练成本的一小部分。

1. 引言

递归神经网络,特别是长短期记忆[12]和门控递归[7]神经网络,已被牢固地确立为序列建模和转导问题(如语言建模和机器翻译)的最新方法[29,2,5]。此后,许多努力不断突破递归语言模型和编码器-解码器架构的界限[31,21,13]。

递归模型通常沿着输入和输出序列的符号位置来考虑计算。将位置与计算时间中的步骤对齐,它们生成一个隐藏状态序列 h t h_t ht,作为先前隐藏状态 h t − 1 h_{t−1} ht1和位置t的输入的函数。这种固有的顺序性排除了训练示例中的并行化,这在较长的序列长度下变得至关重要,因为内存约束限制了示例之间的批处理。最近的工作通过因子分解技巧[18]和条件计算[26]显著提高了计算效率,同时也提高了后者的模型性能。然而,顺序计算的基本约束仍然存在。

注意力机制已成为各种任务中令人信服的序列建模和转导模型的组成部分,允许对依赖性进行建模,而不考虑它们在输入或输出序列中的距离[2,16]。然而,在除少数情况外的所有情况下[22],这种注意力机制都与递归网络结合使用。

在这项工作中,我们提出了Transformer,这是一种避免递归的模型架构,而是完全依赖于注意力机制来绘制输入和输出之间的全局依赖关系。Transformer允许更多的并行化,并且在八个P100 GPU上训练了12个小时后,可以在翻译质量方面达到最新的水平。

2. 背景

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

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

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

然而,据我们所知,Transformer是第一个完全依靠自注意力来计算其输入和输出表示的转导模型,而不使用序列对齐的RNN或卷积。在接下来的章节中,我们将描述Transformer,激发自注意力,并讨论其相对于[14,15]和[8]等模型的优势。

3. 模型架构

大多数有竞争力的神经序列转导模型都具有编码器-解码器结构[5,2,29]。这里,编码器将符号表示的输入序列 ( x 1 , … , x n ) (x_1,…,x_n) (x1,,xn)映射到连续表示的序列 z = ( z 1 , … , z n ) z=(z_1,…,z_n) z(z1,,zn)。给定 z z z,解码器然后一次一个元素地生成符号的输出序列 ( y 1 , … , y m ) (y_1,…,y_m) (y1,,ym)。在每一步,模型都是自回归的[9],在生成下一步时,将先前生成的符号作为额外输入。

Transformer遵循这一总体架构,使用堆叠的自注意力和逐点、全连接层用于编码器和解码器,分别如图1的左半部分和右半部分所示。

3.1 编码器和解码器堆叠

编码器:编码器由 N = 6 N=6 N=6个相同层的堆叠组成。每层有两个子层。第一种是多头自注意力机制,第二种是简单的位置全连接前馈网络。我们在两个子层中的每一个子层周围使用残差连接[10],然后进行层归一化[1]。也就是说,每个子层的输出是 L a y e r N o r m ( x + S u b l a y e r ( x ) ) LayerNorm(x+Sublayer(x)) LayerNorm(x+Sublayer(x)),其中 S u b l a y e r ( x ) Sublayer(x) Sublayer(x)是由子层自身实现的函数。为了便于这些残差连接,模型中的所有子层以及嵌入层都产生维度 d m o d e l = 512 d_{model}=512 dmodel=512的输出。

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

在这里插入图片描述

图1: Transformer模型架构。

3.2 注意力

注意力函数可以描述为将查询和一组键值对映射到输出,其中查询、键、值和输出都是向量。输出被计算为值的加权和,其中分配给每个值的权重是由查询与相应关键字的兼容性函数计算的。

3.2.1 缩放点积注意力

我们将我们的特别注意力称为“缩放点积注意力”(图2)。输入由维度 d k d_k dk的查询和键以及维度 d v d_v dv的值组成。我们计算所有键和查询的点积,每个并除以 d k \sqrt{d_k} dk ,并应用softmax函数来获得值的权重。

在这里插入图片描述

在实践中,我们同时计算一组查询的注意力函数,并将其打包成矩阵Q。键和值也打包成矩阵K和V。我们将输出矩阵计算为:

在这里插入图片描述

两个最常用的注意力函数是加法注意力[2]和点积(乘法)注意力。点积注意力与我们的算法相同,只是比例因子为 1 d k \frac{1}{\sqrt{d_k}} dk 1。加法注意力使用具有单个隐藏层的前馈网络来计算兼容性函数。虽然两者在理论复杂性上相似,但点积注意力在实践中要快得多,而且更节省空间,因为它可以使用高度优化的矩阵乘法代码来实现。

虽然对于较小的 d k d_k dk值,这两种机制表现相似,但在不缩放较大的 d k d_k dk的情况下,加法注意力优于点积注意力[3]。我们怀疑,对于较大的 d k d_k dk值,点积的大小会变大,从而将softmax函数推向具有极小梯度(为了说明为什么点积变大,假设q和k的分量是均值为0、方差为1的独立随机变量。那么他们的点积, q ⋅ k = ∑ i = 1 d k q i k i q·k=\sum_{i=1}^{d_k}q_ik_i qk=i=1dkqiki,具有均值0和方差 d k d_k dk。)的区域。为了抵消这种影响,我们将点积缩放 1 d k \frac{1}{\sqrt{d_k}} dk 1

3.2.2 多头注意力

我们发现,与其用 d m o d e l d_{model} dmodel维度的键、值和查询执行单个注意力函数,不如用不同的、学习过的线性投影将查询、键和值分别线性投影到 d k d_k dk d k d_k dk d v d_v dv维度 h h h次。然后,在查询、键和值的每个投影版本上,我们并行执行注意力函数,生成 d v d_v dv维输出值。这些被连接起来并再次投影,得到最终值,如图2所示。

多头注意力允许模型联合关注来自不同位置的不同表示子空间的信息。对于一个单一的注意力头,平均抑制这种情况。

在这里插入图片描述

其中投影是参数矩阵 W i Q ∈ R d m o d e l × d k W_i^Q∈R^{d_{model}×d_k} WiQRdmodel×dk W i K ∈ R d m o d e l × d k W_i^K∈R^{d_{model}×d_k} WiKRdmodel×dk W i V ∈ R d m o d e l × d k W_i^V∈R^{d_{model}×d_k} WiVRdmodel×dk W O ∈ R h d v × d m o d e l W^O∈R^{hd_{v}×d_{model}} WORhdv×dmodel

在这项工作中,我们使用了 h = 8 h=8 h=8个平行的注意力层或头。对于其中的每一个,我们使用 d k = d v = d m o d e l / h = 64 d_k=d_v=d_{model}/h=64 dk=dv=dmodel/h=64。由于每个头的维数降低,总计算成本类似于全维度的单头注意力。

3.2.3 注意力在我们的模型中的应用

Transformer以三种不同的方式使用多头注意力:

  • 在“编码器-解码器注意力”层中,查询来自上一个解码器层,内存键和值来自编码器的输出。这允许解码器中的每一个位置关注输入序列中的所有位置。这模仿了序列到序列模型中的典型编码器-解码器注意力机制,例如[31,2,8]。

  • 编码器包含自注意力层。在自注意力层中,所有的键、值和查询都来自同一个地方,在这种情况下,是编码器中前一层的输出。编码器中的每个位置可以关注编码器的前一层中的所有位置。

  • 类似地,解码器中的自注意力层允许解码器中的每个位置关注解码器中直到并包括该位置的所有位置。我们需要防止解码器中的向左信息流,以保持自回归特性。我们通过屏蔽(设置为 − ∞ -∞ )softmax输入中对应于非法连接的所有值在缩放点积注意力内实现。见图2。

3.3 位置前馈网络

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

在这里插入图片描述

虽然线性变换在不同的位置上是相同的,但它们在不同的层之间使用不同的参数。另一种描述方式是将其描述为核大小为1的两个卷积。输入和输出的维度为 d m o d e l = 512 d_{model}=512 dmodel=512,内层的维度为 d f f = 2048 d_{ff}=2048 dff=2048

3.4 嵌入和Softmax

与其他序列转导模型类似,我们使用学习嵌入将输入标记和输出标记转换为维度 d m o d e l d_{model} dmodel的向量。我们还使用通常学习的线性变换和softmax函数将解码器输出转换为预测的下一个标记概率。在我们的模型中,我们在两个嵌入层和pre-softmax线性变换之间共享相同的权重矩阵,类似于[24]。在嵌入层中,我们将这些权重乘以 d m o d e l \sqrt{d_{model}} dmodel

3.5 位置编码

由于我们的模型不包含递归和卷积,为了使模型能够利用序列的顺序,我们必须注入一些关于标记在序列中的相对或绝对位置的信息。为此,我们将“位置编码”添加到编码器和解码器堆叠底部的输入嵌入中。位置编码与嵌入具有相同的维度 d m o d e l d_{model} dmodel,因此可以将两者相加。位置编码有许多的选择,学习的和固定的[8]。

表1: 不同层类型的最大路径长度、每层复杂性和最小序列操作次数。n是序列长度,d是表示维度,k是卷积的核大小,r是限制自注意力中邻域的大小。

在这里插入图片描述

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

在这里插入图片描述

其中pos是位置,i是维度。也就是说,位置编码的每个维度对应于正弦曲线。波长形成从2π到10000·2π的几何级数。我们选择这个函数是因为我们假设它可以让模型很容易地学会通过相对位置来关注,因为对于任何固定的偏移 k k k P E p o s + k PE_{pos+k} PEpos+k可以表示为 P E p o s PE_{pos} PEpos的线性函数。

我们还尝试使用学习的位置嵌入[8],发现这两个版本产生了几乎相同的结果(见表3第(E)行)。我们选择正弦版本是因为它可能允许模型外推到比训练期间遇到的序列长度更长的序列长度。

4. 为什么自注意力

在本节中,我们将自注意力层的各个方面与递归层和卷积层进行了比较,递归层和卷积层通常用于将一个可变长度的符号表示序列 ( x 1 , … , x n ) (x_1,…,x_n) (x1,,xn)映射到另一个等长的序列 ( z 1 , … , z n ) (z_1,…,z_n) (z1,,zn) x i , z i ∈ R d x_i,z_i∈R^d xi,ziRd,例如典型序列转导编码器或解码器中的隐藏层。在激发我们使用自注意力的动机时,我们考虑了三个需求。

一个是每层的总计算复杂度。另一个是可以并行化的计算量,通过所需的最小序列操作数来衡量。

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

如表1所示,自注意力层通过恒定数量的序列执行操作连接所有位置,而递归层需要 O ( n ) O(n) O(n)个序列操作。就计算复杂性而言,当序列长度 n n n小于表示维度 d d d时,自注意力层比递归层更快,这在机器翻译中最先进的模型使用的句子表示中最为常见,例如分词[31]和字节对[25]表示。为了提高涉及非常长序列的任务的计算性能,可以将自注意力限制为仅考虑输入序列中以相应输出位置为中心的大小为 r r r的邻域。这将使最大路径长度增加到 O ( n / r ) O(n/r) O(n/r)。我们计划在未来的工作中进一步研究这种方法。

核宽度 k < n k<n kn的单个卷积层并不连接所有输入和输出位置对。在连续核的情况下,这样做需要 O ( n / k ) O(n/k) O(n/k)卷积层的堆叠,或者在扩张卷积的情况下需要 O ( l o g k ( n ) ) O(log_k(n)) O(logk(n))[15],从而增加网络中任意两个位置之间最长路径的长度。卷积层通常比递归层贵k倍。然而,可分离卷积[6]将复杂性显著降低到 O ( k ⋅ n ⋅ d + n ⋅ d 2 ) O(k·n·d+n·d^2) O(knd+nd2)。然而,即使 k = n k=n k=n,可分离卷积的复杂性也等于自注意力层和逐点前馈层的组合,这是我们在模型中采用的方法。

作为附带好处,自注意力可以产生更多可解释的模型。我们从我们的模型中检查注意力分布,并在附录中给出和讨论示例。个体注意力头不仅清楚地学会了执行不同的任务,而且许多似乎表现出与句子的句法和语义结构有关的行为。

5. 训练

本节介绍了我们模型的训练机制。

5.1 训练数据和批次

我们在由大约450万个句子对组成的标准WMT 2014英语-德语数据集上进行了训练。句子使用字节对编码[3]进行编码,该编码具有约37000个标记的共享源-目标词汇表。对于英语-法语,我们使用了更大的WMT 2014英语-法语数据集,该数据集由36M个句子组成,并将标记拆分为32000个单词的词汇[31]。句子对按大致的序列长度分批排列在一起。每个训练批次包含一组句子对,包含大约25000个源标记和25000个目标标记。

5.2 硬件和策略

我们在一台配有8个NVIDIA P100 GPU的机器上训练了我们的模型。对于我们使用论文中描述的超参数的基础模型,每个训练步骤大约需要0.4秒。我们对基础模型进行了总共100000步或12小时的训练。对于我们的大模型(如表3的底线所述),步长为1.0秒。大型模型接受了300000步(3.5天)的训练。

5.3 优化器

我们使用了 A d a m Adam Adam优化器[17],其中 β 1 = 0.9 β_1=0.9 β1=0.9 β 2 = 0.98 β_2=0.98 β2=0.98 ϵ = 1 0 − 9 \epsilon=10^{−9} ϵ=109。我们在训练过程中根据以下公式改变了学习率:

在这里插入图片描述

这对应于对于第一个warmup_steps训练步骤线性地增加学习率,并且此后与步骤数的平方根成比例地减小学习率。我们使用了warmup_steps=4000。

5.4 规范化

我们在训练中采用了三种类型的规范化:

Residual Dropout 我们将dropout[27]应用于每个子层的输出,然后将其添加到子层输入并归一化。此外,我们将dropout应用于编码器和解码器堆叠中的嵌入和位置编码的和。对于基本模型,我们使用 P d r o p = 0.1 P_{drop}=0.1 Pdrop=0.1的比率。

标签平滑 在训练过程中,我们采用了值 ϵ l s = 0.1 \epsilon_{ls}=0.1 ϵls=0.1的标签平滑[30]。这损害了困惑度,因为模型学会了更加不确定,但提高了准确性和BLEU分数。

表2: Transformer在英语到德语和英语到法语newstest2014测试上获得了比以前最先进的模型更好的BLEU分数,而训练成本仅为其一小部分。

在这里插入图片描述

6. 结果

6.1 机器翻译

在WMT 2014英语到德语翻译任务中,大transformer模型(表2中的transformer(大))比之前报道的最好的模型(包括组合)高出2.0以上的BLEU,建立了28.4的新的最先进的BLEU分数。该模型的配置列于表3的最后一行。8台P100 GPU的训练耗时3.5天。即使是我们的基本模型也超过了之前发布的所有模型和集合,其训练成本仅为任何竞争模型的一小部分。

在WMT 2014英语到法语翻译任务中,我们的大模型的BLEU得分为41.0,优于之前发布的所有单个模型,训练成本不到之前最先进模型的1/4。为英语到法语训练的Transformer(大)模型使用的dropout率 P d r o p = 0.1 P_{drop}=0.1 Pdrop=0.1,而不是0.3。

对于基本模型,我们使用了一个单一的模型,该模型是通过平均最后5个检查点获得的,这些检查点是以10分钟的间隔编写的。对于大型模型,我们平均了最后20个检查点。我们使用波束搜索,波束大小为4,长度惩罚α=0.6[31]。这些超参数是在对开发集进行实验后选择的。我们将推理过程中的最大输出长度设置为输入长度+50,但在可能的情况下提前终止[31]。

表2总结了我们的结果,并将我们的翻译质量和训练成本与文献中的其他模型架构进行了比较。我们通过乘以训练时间、使用的GPU数量和每个GPU的持续单精度浮点容量的估计来估计用于训练模型的浮点运算数量。(我们对K80、K40、M40和P100分别使用了2.8、3.7、6.0和9.5 TFLOPS值。)

6.2 模型变化

为了评估Transformer不同组件的重要性,我们以不同的方式改变了我们的基本模型,测量了开发集(newstest2013)中英语到德语翻译的性能变化。如前一节所述,我们使用波束搜索,但没有检查点平均。我们在表3中给出了这些结果。

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

在表3的第(B)行中,我们观察到减少注意力键大小 d k d_k dk会损害模型质量。这表明,确定兼容性并不容易,比点积更复杂的兼容性函数可能是有益的。我们在第(C)行和第(D)行中进一步观察到,正如预期的那样,越大的模型越好,而dropout非常有助于避免过度拟合。在第(E)行中,我们将正弦位置编码替换为学习的位置嵌入[8],并观察到与基本模型几乎相同的结果。

表3: Transformer架构的变化。未列出的值与基本模型的值相同。所有指标都在英语到德语翻译开发集,newstest2013上。根据我们的字节对编码,列出的困惑度是每个单词的,不应与每个单词的困惑度进行比较。

在这里插入图片描述

7. 结论

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

对于翻译任务,Transformer可以比基于递归或卷积层的架构更快地进行训练。在WMT 2014英语到德语和WMT 2014英语到法语的翻译任务中,我们都达到了最先进的水平。在前一项任务中,最佳模型甚至优于之前报道的所有集合。

我们对基于注意力的模型的未来感到兴奋,并计划将其应用于其他任务。我们计划将Transformer扩展到涉及文本以外的输入和输出模态的问题,并研究局部、受限注意力机制,以有效处理图像、音频和视频等大型输入和输出。使生成的顺序性降低是我们的另一个研究目标。

我们用于训练和评估模型的代码可在https://github.com/tensorflow/tensor2tensor.

致谢 我们感谢Nal Kalchbrenner和Stephan Gows富有成果的评论、更正和启发。

References

[1] Jimmy Lei Ba, Jamie Ryan Kiros, and Geoffrey E Hinton. Layer normalization. arXiv preprint arXiv:1607.06450, 2016.
[2] Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. Neural machine translation by jointly learning to align and translate. CoRR, abs/1409.0473, 2014.
[3] Denny Britz, Anna Goldie, Minh-Thang Luong, and Quoc V. Le. Massive exploration of neural machine translation architectures. CoRR, abs/1703.03906, 2017.
[4] Jianpeng Cheng, Li Dong, and Mirella Lapata. Long short-term memory-networks for machine reading. arXiv preprint arXiv:1601.06733, 2016.
[5] Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Fethi Bougares, Holger Schwenk, and Yoshua Bengio. Learning phrase representations using rnn encoder-decoder for statistical machine translation. CoRR, abs/1406.1078, 2014.
[6] Francois Chollet. Xception: Deep learning with depthwise separable convolutions. arXiv preprint arXiv:1610.02357, 2016.
[7] Junyoung Chung, Çaglar Gülçehre, Kyunghyun Cho, and Yoshua Bengio. Empirical evaluation of gated recurrent neural networks on sequence modeling. CoRR, abs/1412.3555, 2014.
[8] Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin. Convolutional sequence to sequence learning. arXiv preprint arXiv:1705.03122v2, 2017.
[9] Alex Graves. Generating sequences with recurrent neural networks. arXiv preprint arXiv:1308.0850, 2013.
[10] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 770–778, 2016.
[11] Sepp Hochreiter, Yoshua Bengio, Paolo Frasconi, and Jürgen Schmidhuber. Gradient flow in recurrent nets: the difficulty of learning long-term dependencies, 2001.
[12] Sepp Hochreiter and Jürgen Schmidhuber. Long short-term memory. Neural computation, 9(8):1735–1780, 1997.
[13] Rafal Jozefowicz, Oriol Vinyals, Mike Schuster, Noam Shazeer, and Yonghui Wu. Exploring the limits of language modeling. arXiv preprint arXiv:1602.02410, 2016.
[14] Łukasz Kaiser and Ilya Sutskever. Neural GPUs learn algorithms. In International Conference on Learning Representations (ICLR), 2016.
[15] Nal Kalchbrenner, Lasse Espeholt, Karen Simonyan, Aaron van den Oord, Alex Graves, and Koray Kavukcuoglu. Neural machine translation in linear time. arXiv preprint arXiv:1610.10099v2, 2017.
[16] Yoon Kim, Carl Denton, Luong Hoang, and Alexander M. Rush. Structured attention networks. In International Conference on Learning Representations, 2017.
[17] Diederik Kingma and Jimmy Ba. Adam: A method for stochastic optimization. In ICLR, 2015.
[18] Oleksii Kuchaiev and Boris Ginsburg. Factorization tricks for LSTM networks. arXiv preprint arXiv:1703.10722, 2017.
[19] Zhouhan Lin, Minwei Feng, Cicero Nogueira dos Santos, Mo Yu, Bing Xiang, Bowen Zhou, and Yoshua Bengio. A structured self-attentive sentence embedding. arXiv preprint arXiv:1703.03130, 2017.
[20] Samy Bengio Łukasz Kaiser. Can active memory replace attention? In Advances in Neural Information Processing Systems, (NIPS), 2016.
[21] Minh-Thang Luong, Hieu Pham, and Christopher D Manning. Effective approaches to attentionbased neural machine translation. arXiv preprint arXiv:1508.04025, 2015.
[22] Ankur Parikh, Oscar Täckström, Dipanjan Das, and Jakob Uszkoreit. A decomposable attention model. In Empirical Methods in Natural Language Processing, 2016.
[23] Romain Paulus, Caiming Xiong, and Richard Socher. A deep reinforced model for abstractive summarization. arXiv preprint arXiv:1705.04304, 2017.
[24] Ofir Press and Lior Wolf. Using the output embedding to improve language models. arXiv preprint arXiv:1608.05859, 2016.
[25] Rico Sennrich, Barry Haddow, and Alexandra Birch. Neural machine translation of rare words with subword units. arXiv preprint arXiv:1508.07909, 2015.
[26] Noam Shazeer, Azalia Mirhoseini, Krzysztof Maziarz, Andy Davis, Quoc Le, Geoffrey Hinton, and Jeff Dean. Outrageously large neural networks: The sparsely-gated mixture-of-experts layer. arXiv preprint arXiv:1701.06538, 2017.
[27] Nitish Srivastava, Geoffrey E Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdinov. Dropout: a simple way to prevent neural networks from overfitting. Journal of Machine Learning Research, 15(1):1929–1958, 2014.
[28] Sainbayar Sukhbaatar, arthur szlam, Jason Weston, and Rob Fergus. End-to-end memory networks. In C. Cortes, N. D. Lawrence, D. D. Lee, M. Sugiyama, and R. Garnett, editors, Advances in Neural Information Processing Systems 28, pages 2440–2448. Curran Associates, Inc., 2015.
[29] Ilya Sutskever, Oriol Vinyals, and Quoc VV Le. Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems, pages 3104–3112, 2014.
[30] Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens, and Zbigniew Wojna. Rethinking the inception architecture for computer vision. CoRR, abs/1512.00567, 2015.
[31] Yonghui Wu, Mike Schuster, Zhifeng Chen, Quoc V Le, Mohammad Norouzi, Wolfgang Macherey, Maxim Krikun, Yuan Cao, Qin Gao, Klaus Macherey, et al. Google’s neural machine translation system: Bridging the gap between human and machine translation. arXiv preprint arXiv:1609.08144, 2016.
[32] Jie Zhou, Ying Cao, Xuguang Wang, Peng Li, and Wei Xu. Deep recurrent models with fast-forward connections for neural machine translation. CoRR, abs/1606.04199, 2016.

其他参考

1、【读论文】Attention Is All You Need ( https://zhuanlan.zhihu.com/p/582797945)

2、注意力机制经典论文:Attention Is All You Need ( https://zhuanlan.zhihu.com/p/350739760 )

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/706872.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【⑧MySQL进阶】:子查询与HAVING/SELECT的完美结合

前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL子查询在HAVING/SELECT字句中使用、及相关子查询和WITH/EXISTS字句的讲解✨ 目录 前言一、在HAVING/SELECT字句中使用子查询二、相关子查询三、WITH/EXISTS、NOT EXISTS字句四、总结 一、在HAVING/SELECT字句中…

手机提醒打卡软件哪个好用 每日计划的打卡软件推荐

在人生的不同阶段,人们会有不同的目标,为了目标可以很好地实现,可以将其分散为多个不同的小计划,并坚持不断地打卡完成每项计划,助力自己最终完成目标。那手机提醒打卡软件哪个好用些,每日计划的打卡软件推…

针对中国用户?数万个正规网站被劫持

知名安全公司Acronis被黑客攻破,多达12GB的资料泄露。 而黑客给出的攻击理由令人啼笑皆非——在他们看来,这家公司虽然从事网络安全业务,但实际上技术如shit一样。 黑客觉得很无聊,就想羞辱一下对方,遂动手攻击了这家网…

软件设计模式与体系结构-设计模式-工厂模式

目录 0. 学习目标0.1 软件设计模式0.2 软件体系结构 软件设计模式0. 软件设计原则设计模式的分类 创建型软件设计模式一、工厂模式工厂方法与抽象工厂模式1.简单工厂方法模式(开闭原则)优缺点适用场景实例一:简单电视机工厂 2.工厂方法模式优…

人机融合是自由与决定的交互

人机融合是指人类与机器之间的紧密合作与互动。在这种融合中,人类使用机器的能力来增强自身的能力,而机器则依赖人类的指导和判断来发挥作用。这种融合可以带来许多好处和机会,但也伴随着一些挑战和风险。 首先,人机融合可以为人类…

Quiz 16_3-3: Databases | Python for Everybody 配套练习_解题记录

文章目录 Python for Everybody课程简介Quiz 16_3-3: Databases单选题(1-10)操作题Autograder: Many Students in Many Courses Python for Everybody 课程简介 Python for Everybody 零基础程序设计(Python 入门) This course a…

AI Is the New Power

这个题目纯粹是为了博眼球,因为吴恩达有个题目是AI Is the New Electricity。:)但是我想AI确实是为我们这些企业信息化顾问顾问赋予了新的力量,在我们的职业生涯中开辟了新的可能性。 在几周前的文章中,我们提到“终点…

前端vue入门(纯代码)19

不管何时何地,永远保持热爱,永远积极向上!!! 【21.Vue中的插槽slot】 问题:插槽(slot)是什么?兄弟们也可以点这里去看这位兄弟的博客,写的比我详细&#xff…

Linux--查询指令所在路径:which

语法: which 指令 示例: ①查询ls所在路径

更进一步!可视化一切递归算法!

学算法认准 labuladong 后台回复课程查看精品课 点击卡片可搜索文章👇 在线学习网站: https://labuladong.gitee.io/algo/ 上次我发布了算法代码可视化功能,适配了我的网站和我的系列插件,最近我修复了一些 bug 并增加了一些功能优…

windows系统根据端口查询pid并结束进程

用管理员权限打开命令指示符,输入命令: 1、查看被占用端口所对应的 PID netstat -aon|findstr “端口号” 2、查看指定PID的进程 tasklist|findstr ”57672” 3、结束进程 taskkill -pid 进程号 -f

Unity VR 开发教程:Meta Quest 一体机开发 (二)混合现实 MR 透视 Passthrough 环境配置

文章目录 📕教程说明📕配置透视的串流调试功能📕第一步:设置 OVRManager📕第二步:添加 OVRPassthroughLayer 脚本📕第三步:在场景中添加虚拟物体📕第四步:删除…

c++摘花生

先看题目: Hello Kitty想摘点花生送给她喜欢的米老鼠。 她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。 地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘…

html前端输入框模糊查询2

1、一个页面内多个模糊查询情况&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"UTF-8" /> <meta name"viewport" content"widthdevice-width, initial-scale1.0, user-scalable0, minimum-scale1.0, maximum-…

网络安全合规-渗透工程师

首先放一张渗透工程师薪资招聘。 各类网络空间人才缺口高达97%&#xff0c;专业人才供不应求。市场环境对网络安全人才求贤若渴&#xff0c;渗透测试工程师尤为紧俏&#xff0c;企业高薪求才&#xff0c;薪资一涨再涨&#xff01; 工资高&#xff0c;待遇好&#xff0c;但是有…

大模型浪潮下的平台、框架、AI编译器和芯片架构丨2023智源大会精彩回顾

导读 在大模型时代&#xff0c;应该如何组织AI系统使其能力与市场需求对齐&#xff0c;是底层的AI工程师需要不断思考和探讨的话题。围绕这一问题&#xff0c;在2023智源大会AI系统分论坛上&#xff0c;从事AI框架开发、芯片研发和AI编译器优化的专家汇聚在一起&#xff0c;共同…

广告行业中那些趣事系列63:使用chatgpt类大模型进行文本分类任务

导读&#xff1a;本文是“数据拾光者”专栏的第六十三篇文章&#xff0c;这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇主要介绍了使用chatgpt类大语言模型进行文本分类任务&#xff0c;对于希望使用chatgpt类大语言模型上进行数据标注、文本分类和关键词抽取等…

debug调试高级用法

文章目录 前言一、如何给程序加断点,并调试二、开始调试1.断点查看2.查看所有断点,去掉断点,批量去断点3. 断点改值4. 断点条件 总结 前言 在开发调试中,如果你不会debug调试,一般情况下,就只能控制台打印,然后一遍一遍重启了,所有debug是必不可少的技能,尤其当遇到问题的时候…

xxl-job的实践

pom.xml文件导入xxl-job 包 <dependency><groupId>com.xuxueli</groupId><artifactId>xxl-job-core</artifactId><version>${xxl-job.version}</version></dependency><xxl-job.version>2.3.1</xxl-job.version> …

Android学习日志 二、Button组件调用函数

文章目录 Button组件调用函数配置代码By-Round Moon Button组件调用函数 Android Studio 版本:2022.2.1 patch 2 配置 接日志一的操作&#xff0c;我们创建一个空项目&#xff0c;名字可以自己起 等待构建完成后&#xff0c;我们创建一个模块 创建一个activity 在相应的x…