Attention Is All You Need

Attention Is All You Need

论文地址:http://papers.nips.cc/paper/7181-attention-is-all-you-%0Aneed.pdf
源代码:https://github.com/tensorflow/tensor2tensor
分析: http://nlp.seas.harvard.edu/2018/04/03/attention.html

摘要

主要的序列转导模型是基于复杂的循环或卷积神经网络,包括编码器和解码器。性能最好的模型还通过一个注意机制连接编码器和解码器。我们提出了一种新的简单网络结构,即 Transformer,它完全基于注意机制,完全不需要递归和卷积。对两个机器翻译任务的实验表明,这些模型在质量上更优,同时更具并行性,训练时间明显更少。模型在WMT 2014英语翻译任务中实现了28.4 BLEU,比现有的最佳效果(包括合奏)提高了2个点以上。在WMT2014英语到法语翻译任务中,我模型在8个GPU上训练3.5天后建立了一个新的单一模型,获得最先进的BLEU分数41.8,这只是文献中最佳模型训练成本的一小部分。结果表明,该Transformer可以很好地推广到其他任务中,并成功地应用于大样本和有限样本的英语用户分析。

1. Introduction

循环神经网络(RNN), 特别是长期短期记忆(LSTM)[13]和门控复发性(Gate recurrent )[7]神经网络,已作为最先进的顺序建模和转导问题(如语言建模和机器翻译)方法而牢固地建立起来[35,2,5]。此后,许多工作继续扩大了循环神经网络和编码器-解码器体系结构的界限[38,24,15]。
循环模型通常是沿着输入和输出序列的符号位置进行因子计算。将位置与计算时间中的步骤对齐,它们生成一系列隐藏状态h t h_{t}h t ​​,作为先前隐藏状态h t − 1 h_{t−1}h t −1 ​​的函数和位置t t t的输入。这种 固有的顺序性使得训练示例时候无法并行化,而训练示例在较长的序列长度下变得至关重要,因为内存约束限制了批处理。通过例子。最近的工作通过 因子分解技巧[21]和条件计算[32]显著提高了计算效率,同时在后者的情况下也提高了模型性能。然而,顺序计算这一基本约束仍然存在。
注意力机制(Attention mechanisms)已经成为各种任务中引人注目的序列建模和转换模型的组成部分,允许在不考虑依赖项在输入或输出序列中的距离的情况下对依赖项进行建模[2,19]。然而,在除少数情况外的所有情况下[27],这种注意力机制常与循环网络结合使用。
在这项工作中,本文提出了 Transformer,一个避免了循环的模型架构,它完全依赖一个注意机制来绘制输入和输出之间的全局依赖性。Transformer 允许更大程度的并行化,可以在8个p100 gpu上经过短短12小时的训练后,在翻译质量上达到一个新的水平。

2. Background

减少顺序计算的目的形成了扩展神经GPU[16]、ByteNet[18]和ConvS2S[9]的基础,所有这些都使用卷积神经网络作为基本构建块,并使用并行的方式来计算所有输入和输出位置的隐藏表示。在这些模型中,将来自两个任意输入或输出位置的信号联系起来所需的操作次数随着位置之间的距离增加而增加,这对于ConvS2S是线性的,对于ByteNet是对数。这使得学习远距离位置之间的依赖性变得更加困难[12]。在Transformer中,这被减少到一个恒定的操作次数,尽管平均注意力加权位置而导致了有效分辨率(resolution)的降低,这是在3.2节中描述的多头注意力(Multi-Head Attention)的效果。
自注意(Self-attention),有时被称为内注意,是一种注意力机制,它将一个序列的不同位置联系起来,以计算序列的表示。在阅读理解、抽象总结、文本蕴涵和学习任务独立句子表达等多种任务中,人们成功地运用了 Self-attention[4,27,28,22]。
端到端的记忆网络是一种基于循环的注意力机制,而不是顺序一致的循环,并且在简单的语言问答和语言建模任务上表现良好[34]。
然而,据我们所知, Transformer是第一个完全依赖于 Self-Attention 来计算其输入和输出表示的转导模型,而不使用序列对齐的RNN或卷积。在下面的章节中,将描述 Transformer,激发 Self-attention(motivate self-attention),并讨论它相对于[17,18,9]等模型的优势。

3. Model Architecture

很多具有竞争力的神经序列转导模型都含有编码器-解码器结构[5,2,35]。在这里,编码器将符号表示的输入序列( x 1 , … , x n ) (x_{1},…,x_{n})(x 1 ​,…,x n ​)映射为连续表示序列z = ( z 1 , … , z n ) z=(z_{1},…,z_{n})z =(z 1 ​,…,z n ​)。给定z z z,解码器然后一次生成一个符号的输出序列( y 1 , … , y m ) (y_{1},…,y_{m})(y 1 ​,…,y m ​)。在每一步中, 模型都是自动回归(auto-regressive)的[10]在生成下一步时,将先前生成的符号序列作为附加输入。
Transformer遵循这一总体架构,使用堆叠的 Self-attention 和 逐点(point-wise)、全连接的层用于编码器和解码器,分别如图1的左半部分和右半部分所示。

Attention Is All You Need

; 3.1 Encoder and Decoder Stacks

  • Encoder:编码器由一组N = 6 N=6 N =6的相同层堆叠而成。每层有两个子层。
  • 第一个子层采用 Multi-Head Self-Attention 机制
  • 第二个是一个简单的位置上全连接的前馈网络。
    在两个子层的每一个子层周围使用一个 Residual 连接[11],然后是 层 Normalization[1]。也就是说,每个子层的输出是L a y e r N o r m ( x + S u b l a y e r ( x ) ) LayerNorm(x+Sublayer( x))L a y e r N o r m (x +S u b l a y e r (x )),其中 Sublayer(x)是子层实现的函数。为了方便这些 Residual 连接,模型中的所有子层以及嵌入层都会生成维度为d m o d e l = 512 d_{model}=512 d m o d e l ​=5 1 2 的输出。
  • decoder:解码器也由一个N = 6 N=6 N =6的相同层堆叠而成。除了每个编码器层中的两个子层外,解码器还插入第三个子层,该子层在编码器堆栈的输出上执行 Multi-Head Attention。与编码器类似,在每个子层周围使用 Residual连接,然后进行 层Normalization还修改了解码器堆栈中的自注意子层,以防止每个位置去关注其后续位置。这个 *掩膜,结合输出嵌入(the output embeddings)被一个位置偏移(offset)的事实,确保了位置i i i 的预测只能依赖于位置小于i i i 的已知输出。

3.2 Attention

注意力函数可以描述为从一个 查询(query)和一组 键值对(key-value pairs)到一个 输出的映射,其中, 查询(query)、键(key)、值(value)和输出(output)都是向量。 输出(output)是以值(value)的加权和进行计算的,其中分配给每个值(value)的权重是通过查询(query)的匹配函数(compatibility function)和相应的键(key)计算的

Attention Is All You Need
; 3.2.1 Scaled Dot-Product Attention

本文将提出的关注(attention)称为 “Scaled Dot-Product Attention”(图2)。输入包括d k d_{k}d k ​​维的查询和键,以及d v d_{v}d v ​​维的值。计算查询与所有键的点积,并将每个点积除以d k \sqrt{d_{k}}d k ​​​​,然后应用SoftMax函数得到这些值的权重。
在实践中,可以同时计算一组查询上的注意力函数,将其打包成矩阵Q。键和值也打包成矩阵K和V。我们计算输出矩阵的方式为:
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V)=softmax(\frac{QK^{T}}{\sqrt{d_{k}}})V A t t e n t i o n (Q ,K ,V )=s o f t m a x (d k ​​Q K T ​)V
两个最常用的注意力函数:

  • 加性注意(additive attention)[2]
  • 点积(乘法)注意(dot-product attention)

除了比例因子1 d k \frac{1}{\sqrt{d_{k}}}d k ​​1 ​​外,点积注意与本文提出的算法相同。加性注意使用一个前馈网络和一个单独的隐藏层来计算兼容性函数(compatibility function)。虽然二者在理论复杂度上相似,但 在实践中,点积注意速度更快,空间效率更高,因为它可以使用高度优化的矩阵乘法代码来实现
对于较小的d k d_{k}d k ​ ​值,这两种机制的性能相似,但加性注意优于点积注意,而不会缩放较大的d k d_{k}d k ​ ​值[3]。我们怀疑, 对于d k d_{k}d k ​ ​的较大值,点积的增长幅度较大,会将SoftMax函数推送到具有极小梯度的区域。为了抵消这种影响,将点积乘以1 d k \frac{1}{\sqrt{d_{k}}}d k ​​1 ​ ​。

3.2.2 Multi-Head Attention

不同于使用d m o d e l d_{model}d m o d e l ​​维度的键、值和查询来执行单一注意函数,我们发现, 使用另一种可学习的线性投影(projection)分别对查询、键和值进行h次线性投影(projection)会更有效,这些投影将这些元素分别映射到维度为d k d_{k}d k ​​、d k d_{k}d k ​​和d v d_{v}d v ​​的空间。在这些元素的每个投影版本上,可以并行执行注意力函数,得到d v d_{v}d v ​​维的输出值。如图2所示,之后将每个投影进行连接,并再次进行投影,从而得到最终的值。
Multi-Head Attention 允许模型关注来自不同位置的不同表示子空间的信息。只需一个single attention head,平均值就可以抑制这种情况。
M u l t i H e a d ( Q , K , V ) = C o n c a t ( h e a d ​ 1 , . . . , h e a d n ​ ) W O MultiHead(Q,K,V)=Concat(head_{​1},…,head_{n}​)W^{O}M u l t i H e a d (Q ,K ,V )=C o n c a t (h e a d ​1 ​,…,h e a d n ​​)W O
w h e r e h e a d i = A t t e n t i o n ( Q W i Q , K W i K , V W i V ) where\ \ head_{i}=Attention(QW^{Q}{i},KW^{K}{i},VW^{V}{i})w h e r e h e a d i ​=A t t e n t i o n (Q W i Q ​,K W i K ​,V W i V ​)
其中,投影指的是参数矩阵 W i Q ∈ R d m o d e l × d k , W i K ∈ R d m o d e l × d k , W i V ∈ R d m o d e l × d v 以 及 W O ∈ R h d v × d m o d e l W^{Q}
{i}\in \mathbb{R}^{d_{model}\times d_{k}}, W^{K}{i}\in \mathbb{R}^{d{model}\times d_{k}}, W^{V}{i}\in \mathbb{R}^{d{model}\times d_{v}}以及W^{O}\in \mathbb{R}^{hd_{v}\times d_{model}}W i Q ​∈R d m o d e l ​×d k ​,W i K ​∈R d m o d e l ​×d k ​,W i V ​∈R d m o d e l ​×d v ​以及W O ∈R h d v ​×d m o d e l ​。
在这项工作中,我们 使用H = 8 H=8 H =8 的并行 attention layers 或 heads。对于每个模型,d k = d v = d m o d e l / h = 64 d_{k}=d_{v}=d_{model}/h=64 d k ​=d v ​=d m o d e l ​/h =6 4。 由于每个头部的降维,总的计算成本与 single-head 全尺寸注意力相似。

3.2.3 Applications of Attention in our Model

Transformer 采用三种不同的方式使用Multi-Head Attention:

  • encoder-decoder attention层中,查询(Query)来自前一个解码器层,记忆的键和值(the memory keys and values)来自编码器的输出。这使得解码器中的每个位置都可以处理输入序列中的所有位置。这模仿了典型的编码器-解码器注意机制的Seq2Seq模型,如[38,2,9]。
  • 编码器包含自注意层。在一个自注意层中,所有键、值和查询都来自同一个地方,在本例中,是编码器中前一层的输出。编码器中的每个位置都可以处理编码器前一层中的所有位置。
  • 类似地,解码器中的自注意层允许解码器中的每个位置关注解码器中的所有位置,包括其自身。 为了保持自回归(Auto-Regressive)特性,需要防止解码器中出现向左的信息流。通过屏蔽SoftMax输入中与非法连接相对应的所有值(设置为− ∞ -\infty −∞), 在缩放的 Dot-Product Attention 的内部实现了这一点。请参阅图2。

3.3 Position-wise Feed-Forward Networks

除了关注子层之外,编 码器和解码器中的每个层都包含一个完全连接的前馈网络,该网络分别应用于每个position,并且完全相同。该网络也包括有两个通过ReLU连接起来的线性变换
F F N ( x ) = m a x ( 0 , x W 1 + b 1 ) W 2 + b 2 ​ FFN(x)=max(0,xW_{1}+b_{1})W_{2}+b_{2}​F F N (x )=m a x (0 ,x W 1 ​+b 1 ​)W 2 ​+b 2 ​​
虽然线性变换在不同的位置上是相同的,但它们在不同的层之间使用不同的参数。 另一种描述这一点的方法是两个内核大小为1的卷积。输入输出维数为d m o d e l = 512 d_{model}=512 d m o d e l ​=5 1 2,内层维数为d f f = 2048 d_{ff}=2048 d f f ​=2 0 4 8。

3.4 Embeddings and Softmax

与其他序列转导(Sequence Transduction)模型类似,使用 可学习的嵌入(Embeddings)将输入tokens和输出tokens转换为d m o d e l ​ d_{model}​d m o d e l ​​ 维的向量。还 使用常用的可学习的线性变换和SoftMax函数将解码器的输出转换为待预测的下一个token的概率。在模型中, 在两个嵌入层之间共享相同的权重矩阵和Pre-SoftMax线性变换,类似于[30]。在嵌入层中,将这些权重乘以d m o d e l \sqrt{d_{model}}d m o d e l ​​​​。

3.5 Positional Encoding

由于模型不包含递归和卷积,为了使模型能够利用序列的顺序(the order of the sequence),必须注入一些关于序列中tokens的相对或绝对位置的信息。为此, 将”位置编码”添加到编码器和解码器堆栈底部的输入嵌入(embeddings)中位置编码与嵌入具有相同的维度d m o d e l d_{model}d m o d e l ​ ​,因此可以将两者相加。位置编码有很多选择,可学习的和可固定的[9]。

在这项工作中,将使用不同频率的正余弦函数:
P E p o s , 2 i = s i n ( p o s / 1000 0 2 i / d m o d e l ) PE_{pos,2i}=sin(pos/10000^{2i/d_{model}})P E p o s ,2 i ​=s i n (p o s /1 0 0 0 0 2 i /d m o d e l ​)
P E p o s , 2 i + 1 = c o s ( p o s / 1000 0 2 i / d m o d e l ) PE_{pos,2i+1}=cos(pos/10000^{2i/d_{model}})P E p o s ,2 i +1 ​=c o s (p o s /1 0 0 0 0 2 i /d m o d e l ​)
其中,pos是位置,i是维度。也就是说,位置编码的每个维度都对应于一个正弦曲线。波长形成一个从2 π 2\pi 2 π到10000 ⋅ 2 π 10000\cdot2\pi 1 0 0 0 0 ⋅2 π的几何轨迹。之所以选择这个函数,是因为我们假设它可以让模型很容易地通过相对位置进行学习, 因为对于任何固定的偏移量k,P E p o s + k PE_{pos+k}P E p o s +k ​ ​都可以表示为P E p o s PE_{pos}P E p o s ​ ​的线性函数
此外,对 learned positional embeddings[9]进行了实验,发现两个版本产生了几乎相同的结果(见表3第(e)行)。本文 选择正弦波模型的另外一个原因是因为它可以让模型外推到比训练中遇到的序列长度更长的序列

4. Why Self-Attention

在本节中,将自注意层的各个方面与递归和卷积层进行比较,后两个通常被用于将一个可变长度的符号表示序列( x 1 , … , x n ) (x_{1},…,x_{n})(x 1 ​,…,x n ​)映射到另一个等长序列( z 1 , … , z n ) (z_{1},…,z_{n})(z 1 ​,…,z n ​),其中x i , z i ∈ R d x_{i},\ z_{i}\in \mathbb{R}^{d}x i ​,z i ​∈R d,如同在一个典型的序列转导编码器或解码器中的隐藏层。为了使用自注意,考虑了三个目标。

  • 一个是 每层的总计算复杂性
  • 另一个是可以 并行化的计算量,用所需的最小顺序操作数来衡量
  • 第三个是 网络中远程依赖项之间的路径长度。学习长期依赖性是许多序列转导任务中的一个关键挑战。 影响学习这种依赖性能力的一个关键因素是必须在网络中遍历的前向和后向信号的路径长度。输入序列和输出序列中任意位置组合之间的这些 路径越短,学习长期依赖关系就越容易[12]。因此,还比较了由不同层类型组成的网络中任意两个输入和输出位置之间的最大路径长度。
    Attention Is All You Need

如表1所示,一个自注意层将所有位置与恒定数量的顺序执行操作连接起来,而一个循环层则需要 O(N)顺序操作。在计算复杂度方面,当序列长度 n小于表示维数 d时,自注意层比循环层更快,这是机器翻译中最先进的模型(如word-piece[38]和byte-pair[31] representations)使用的句子表示最常见的情况。 为了提高涉及非常长序列的任务的计算性能,可以将自注意限制为仅考虑以各自输出位置为中心的输入序列中大小为r r r 的邻域。这将把最大路径长度增加到O ( n / r ) O(n/r)O (n /r )。计划在今后的工作中进一步研究这种方法。
卷积核宽度为k < n k的单个卷积层不连接所有输入和输出位置对。这样做需要一堆O ( n / r ) O(n/r)O (n /r )卷积层(对于连续的内核)或O ( l o g k ( n ) ) O(log_{k}(n))O (l o g k ​(n ))(对于扩张卷积18]),增加网络中任意两个位置之间最长路径的长度。 卷积层通常比循环层更昂贵,其系数为k。可分离卷积[6]可将复杂性大大降低至O ( k ⋅ n ⋅ d + n ⋅ d 2 ) O(k·n·d+n·d^{2})O (k ⋅n ⋅d +n ⋅d 2 )。然而,即使k = n k=n k =n,可分离卷积的复杂度也等于模型中采用的自注意层和 point-wise 前馈层的组合
作为附带的好处,自注意可以产生更多可解释的模型。检查模型中的注意力分布,并在附录中展示和讨论示例。个体的注意力不仅能清楚地学习执行不同的任务,而且许多注意力表现出与句子的句法和语义结构相关的行为。

; 5. Training

本节介绍了模型的训练方式。

5.1 Training Data and Batching

训练了 标准的WMT 2014英语-德语数据集,包含约 450万个句子对。语句使用字节对编码[3]进行编码,该编码具有大约 37000个标记的共享源-目标词汇表。对于 英语-法语,使用了更大的 WMT 2014英语-法语数据集,该数据集包含 3600万句句子,并将标记拆分为 32000个词条词汇[38]。句子对按近似的序列长度分批在一起。 每个训练批包含一组句子对,其中包含大约25000个源标记和25000个目标标记

5.2 Hardware and Schedule

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

5.3 Optimizer

使用Adam优化器[20],其中β 1 = 0.9 , β 2 = 0.98 , ϵ = 1 0 − 9 \beta_{1}=0.9,\ \beta_{2}=0.98,\ \epsilon=10^{-9}β1 ​=0 .9 ,β2 ​=0 .9 8 ,ϵ=1 0 −9。根据如下的公式,在整个训练过程中改变了学习速度:
l r a t e = d m o d e l − 0.5 ⋅ m i n ( s t e p _ n u m − 0.5 , s t e p _ n u m ⋅ w a r m u p _ s t e p s − 1.5 ) ( 3 ) lrate=d^{-0.5}_{model}\cdot min(step_num^{-0.5},step_num\cdot warmup_steps^{-1.5})\ \ \ \ (3)l r a t e =d m o d e l −0 .5 ​⋅m i n (s t e p _n u m −0 .5 ,s t e p _n u m ⋅w a r m u p _s t e p s −1 .5 )(3 )
这对应于在第一个 warmup_steps的训练步骤中线性地增加学习速率,然后与步骤数的平方反比成比例地减少学习速率,本文使用 warmup_steps=4000

5.4 Regularization

在训练过程中使用两种类型的正则方案:

  • Residual Dropout 将Dropout[33]应用于每个子层的输出,然后将其添加到子层输入并进行规范化。此外, 还将Dropout应用于编码器和解码器堆栈中嵌入和位置编码的和。对于 基本模型,使用P d r o p ​ = 0.1 P_{drop}​=0.1 P d r o p ​​=0 .1的速率。
  • Label Smoothing ,在训练过程中,采用了ϵ l s = 0.1 \epsilon_{ls}=0.1 ϵl s ​=0 .1[36]的 标签平滑。这样做的目的, *虽然使模型有更大的不确定性,但也提高了准确性和BLEU分数。

6 Results

6.1 Machine Translation

在WMT 2014英语到德语翻译任务中,表2中的大 transformer 模型比之前报告的最好的模型(包括Ensembles)强2个 BLEU以上,获得了一个新的最先进的BLEU分数28.4。该模型的配置列在表3的底部,在8张p100机器上训练时间为3.5天。即使是本文提出的基础模型也超越了以前发布的所有模型和集成,而这训练成本只占其他模型的一小部分。
在WMT 2014英语到法语翻译任务中,大模型获得了41.0的BLEU分数,超过了之前发布的所有单一模型,低于之前最先进模型训练成本的1/4。在英语到法语训练的Transformer(大)模型使用的dropout率P d r o p = 0.1 P_{drop}=0.1 P d r o p ​=0 .1,而不是0.3。
对于基本模型,使用了一个单一模型,该模型通过均值最后5个 checkpoints 获得,这些检查点以10分钟的间隔写入对于大型模型,均值化最后20个checkpoints使用beam search,波束大小为4,长度惩罚α = 0.6 \alpha=0.6 α=0 .6[38]。这些超参数是在对开发集进行实验后选择的。将推理期间的最大输出长度设置为输入长度+50,但在可能的情况下提前终止[38]。
表2总结了本文的结果,并将翻译质量和训练成本与文献中的其他模型架构进行了比较。通过乘以训练时间、使用的GPU数量和每个GPU 的持续单精度浮点容量来估计用于训练模型的浮点操作数。

Attention Is All You Need

; 6.2 Model Variations

为了评估Transformer不同组件的重要性,以不同的方式改变基础模型,在验证集newstest2013上测试中英译德翻译的性能变化。使用了前一节中描述的波束搜索,但没有使用平均checkpoints。在表3中给出了这些结果。

Attention Is All You Need

在表3的第(a)行中,改变注意头的数量、注意键和值的尺寸,并保持计算量不变,如第3.2.2节所述。单头性能比最好的参数设置性能差0.9个BLEU(24.9, 25.4),但是太多的头会导致性能下降。
在表3行(b)中,观察到减少注意键大小d k d_k d k ​会损害模型质量。这表明,确定兼容性并不容易,比点积更复杂的兼容性函数可能是有益的。
在(c)和(d)行中进一步观察到,正如预期的那样, 较大的模型更好,而 dropout对于避免过度拟合非常有帮助
在第(e)行中,将正弦位置编码替换为学习的位置嵌入[9],观察到其结果与基本模型几乎相同。

6.3 English Constituency Parsing

为了评估Transformer是否可以推广到其他任务,进行了英语成分句法分析实验。这项任务提出了具体的挑战:输出受到强大的结构约束,并且明显长于输入。此外, RNN序列到序列模型无法在小数据状态下获得最先进的结果[37]。
在宾夕法尼亚州Treebank[25]的《华尔街日报》(WSJ)部分训练了一个4层Transformer,其d m o d e l = 1024 d_{model}=1024 d m o d e l ​=1 0 2 4,大约有40k个训练句子。我们也在一个半监督的环境中训练它,使用更大的高置信度和Berkleyparser语料库,大约有1700万句话[37]。我们只在wsj设置中使用16Ktoken的词汇表,在半监督设置中使用32K token的词汇表。
在第22验证集上做了少量的实验来选择合适的dropout、注意力和残差、学习率和光束大小。所有其他参数与英语到德语的基本翻译模型保持一致。在推理过程中,将最大输出长度增加到输入长度+300。仅对WSJ和半监督设置使用了大小为21和α = 0.3 \alpha=0.3 α=0 .3的beam size。
表4中的结果表明,尽管缺乏特定于任务的调整,本文提出的模型仍然运行得非常好,产生的结果比以前报告的所有模型都好,除了重复性神经网络语法[8]。
与RNN序列到序列模型[37]相比,Transformer优于Berkeley-Parser[29],即使仅在仅针对40K句子的WSJ训练集进行训练时也是如此。

Attention Is All You Need

; 7 Conclusion

在这项工作中,首次提出了 完全基于注意的序列转导模型Transformer用多头自注意取代了编码器-解码器体系结构中最常用的循环层。
对于翻译任务,Transformer的训练速度明显快于基于循环层或卷积层的架构。在WMT 2014英语到德语和WMT 2014英语到法语的翻译任务中,实现了一种新的最优性能。在前一项任务中,最佳模型甚至超过了之前所有报告的集合。
我们对基于注意力的模型的未来感到兴奋,并计划将其应用到其他任务中。计划将Transformer扩展到涉及输入和输出模式(文本除外)的问题,并调查本地、受限注意机制,以有效处理图像、音频和视频等大型输入和输出。另一个研究目标是生成更少的顺序。本文用来训练和评估模型的代码可以在https://github.com/tensorflow/tensor2tensor上找到。

参考文献

  • [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.10

  • [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] Chris Dyer, Adhiguna Kuncoro, Miguel Ballesteros, and Noah A. Smith. Recurrent neural network grammars. In Proc. of NAACL, 2016.

  • [9] Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin. Convolu- tional sequence to sequence learning. arXiv preprint arXiv:1705.03122v2, 2017.

  • [10] Alex Graves. Generating sequences with recurrent neural networks. arXiv preprint arXiv:1308.0850, 2013.

  • [11] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for im- age recognition. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 770–778, 2016.

  • [12] Sepp Hochreiter, Yoshua Bengio, Paolo Frasconi, and Jürgen Schmidhuber. Gradient flow in recurrent nets: the difficulty of learning long-term dependencies, 2001.

  • [13] Sepp Hochreiter and Jürgen Schmidhuber. Long short-term memory. Neural computation, 9(8):1735–1780, 1997.

  • [14] Zhongqiang Huang and Mary Harper. Self-training PCFG grammars with latent annotations across languages. In Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing, pages 832–841. ACL, August 2009.

  • [15] Rafal Jozefowicz, Oriol Vinyals, Mike Schuster, Noam Shazeer, and Yonghui Wu. Exploring the limits of language modeling. arXiv preprint arXiv:1602.02410, 2016.

  • [16] Łukasz Kaiser and Samy Bengio. Can active memory replace attention? In Advances in Neural Information Processing Systems, (NIPS), 2016.

  • [17] Łukasz Kaiser and Ilya Sutskever. Neural GPUs learn algorithms. In International Conference on Learning Representations (ICLR), 2016.

  • [18] Nal Kalchbrenner, Lasse Espeholt, Karen Simonyan, Aaron van den Oord, Alex Graves, and Ko- ray Kavukcuoglu. Neural machine translation in linear time. arXiv preprint arXiv:1610.10099v2, 2017.

  • [19] Yoon Kim, Carl Denton, Luong Hoang, and Alexander M. Rush. Structured attention networks. In International Conference on Learning Representations, 2017.

  • [20] Diederik Kingma and Jimmy Ba. Adam: A method for stochastic optimization. In ICLR, 2015.

  • [21] Oleksii Kuchaiev and Boris Ginsburg. Factorization tricks for LSTM networks. arXiv preprint
    arXiv:1703.10722, 2017.

  • [22] 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.

  • [23] Minh-Thang Luong, Quoc V. Le, Ilya Sutskever, Oriol Vinyals, and Lukasz Kaiser. Multi-task sequence to sequence learning. arXiv preprint arXiv:1511.06114, 2015.

  • [24] Minh-Thang Luong, Hieu Pham, and Christopher D Manning. Effective approaches to attention- based neural machine translation. arXiv preprint arXiv:1508.04025, 2015.

  • [25] Mitchell P Marcus,Mary Ann Marcinkiewicz, and Beatrice Santorini. Building a large annotated corpus of english: The penn treebank. Computational linguistics, 19(2):313–330, 1993.

  • [26] David McClosky, Eugene Charniak, and Mark Johnson. Effective self-training for parsing. In Proceedings of the Human Language Technology Conference of the NAACL, Main Conference, pages 152–159. ACL, June 2006.11

  • [27] Ankur Parikh, Oscar Täckström, Dipanjan Das, and Jakob Uszkoreit. A decomposable attention model. In Empirical Methods in Natural Language Processing, 2016.

  • [28] Romain Paulus, Caiming Xiong, and Richard Socher. A deep reinforced model for abstractive summarization. arXiv preprint arXiv:1705.04304, 2017.

  • [29] Slav Petrov, Leon Barrett, Romain Thibaux, and Dan Klein. Learning accurate, compact, and interpretable tree annotation. In Proceedings of the 21st International Conference on Computational Linguistics and 44th Annual Meeting of the ACL, pages 433–440. ACL, July 2006.

  • [30] Ofir Press and Lior Wolf. Using the output embedding to improve language models. arXiv preprint arXiv:1608.05859, 2016.

  • [31] Rico Sennrich, Barry Haddow, and Alexandra Birch. Neural machine translation of rare words with subword units. arXiv preprint arXiv:1508.07909, 2015.

  • [32] 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.

  • [33] Nitish Srivastava, Geoffrey E Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdi- nov. Dropout: a simple way to prevent neural networks from overfitting. Journal of Machine Learning Research, 15(1):1929–1958, 2014.

  • [34] 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.

  • [35] 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.

  • [36] Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens, and Zbigniew Wojna. Rethinking the inception architecture for computer vision. CoRR, abs/1512.00567, 2015.

  • [37] Vinyals & Kaiser, Koo, Petrov, Sutskever, and Hinton. Grammar as a foreign language. In Advances in Neural Information Processing Systems, 2015.

  • [38] 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.

  • [39] 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.

  • [40] Muhua Zhu, Yue Zhang, Wenliang Chen, Min Zhang, and Jingbo Zhu. Fast and accurate shift-reduce constituent parsing. In Proceedings of the 51st Annual Meeting of the ACL (Volume 1: Long Papers), pages 434–443. ACL, August 2013.

Attention Visualizations

Attention Is All You Need
Attention Is All You Need
Attention Is All You Need

Original: https://blog.csdn.net/uncle_ll/article/details/121230726
Author: uncle_ll
Title: Attention Is All You Need

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/531646/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球