提出了一个新的简单网络架构——transformer,仅仅是基于注意力机制,完全免去递推和卷积,使得神经网络训练地速度极大地提高。
We propose a new simple network architecture, the Transformer, based solely on attention mechanisms, dispensing with recurrence and convolutions entirely.
用多头注意力取代推导层。
该论文提出的模型,在WMT2014英语翻译德语和英语翻译法语的任务实验中,打破了当时的最好记录,并且其训练成本仅仅是最好模型的一小部分。
提出的模型成功地泛化到其他任务上。
作者提出了一个新的简单网络架构transformer。该模型是基于注意力机制,完全免去递推和卷积。模型的质量上更好,有着更好的并行性,训练地速度极大地减少,可以很好地泛化到其他任务中。
过去,关于语言模型和机器翻译,主要使用RNN、LSTM、GRNN。但这些模型中计算步骤是,使用前一个状态ht-1的输出来做为后一个状态ht的输入,这种顺序性质限制了其计算效率。尽管最近的工作提升了模型的性能,但其根本的顺序计算限制仍然存在。
Transformer模型就是为了解决这一个问题而提出来的,它有着显著更多的并行性并且在翻译质量上达到最先进水平。
transformer的目标是减少序列化计算,这同时也是ByteNet和ConvS2S的基础。但是这些模块中,被要求关联两个任意输入或输出位置的信号的操作数量随着位置间距离的增长而增长,这使得学习两个远距离位置的依赖关系困难。
提出自我注意力机制,是将单个序列不同位置联系起来以计算一个序列表示的注意力机制。
该章节主要讲解transformer的架构,是编码-解码架构。
编码器和解码器都是由6个相同层的堆栈组成。注意力函数被描述为将查询和一组键值对映射到输出,查询、键、值和输出都是向量。输出被计算为值的加权和。
1.在“encoder-decoder attention" layer中,这个查询来自之前的解码层。
2.编码器包含自我注意力层。
3.解码器中自注意力层允许解码器中每个位置关注解码器中达到并包含该位置的所有位置。
除了注意力层,在我们”encoder-decoder“中的每一层包含了一个全连接前向反馈网络,这被分别相同地应用到每个位置。
使用学习嵌入去把输入标记和输出标记转换为维度dmodel的向量。
由于本文提出的模型中不包含递归或卷积,为使模型利用序列的顺序,必须投入一些有关序列中标记的相关或者绝对位置的信息。因此,把”位置编码“添加到在编码和解码栈底部的输入其纳入中。
作者把自注意力和循环层以及卷积层进行比较,体现自注意力的优点。
作者考虑使用自注意力的三个需求,
1.每层的总计算复杂度
2.可以并行化的计算量
3.网络中远程范围依赖之间的路径长度。
本章节即实验部分,作者使用WMT2014上的数据训练文章提出的模型,并得出实验结果。
对于transfomer实验结果的分析,发现transformer在机器翻译的结果优于最新模型,并且在英语选区解析上的表现结果也出奇的好。
1.本文提出了一个完全基于注意力的序列转导模型,用多头自我注意力取代在编码-解码架构中最常使用的推导层——Transformer。
2.未来计划将Transformer扩展到文本以外的输入和输出模式的问题。
参考资料:
国外大神写这篇文章非常通俗易懂
详解Transformer——知乎
Attention is all your need 精读