《Attention Is All You Need》是2017年由Google提出的论文,论文重点描述了transformer结构及原理。transformer在机器翻译等众多NLP领域取得了很大的进步,这次学习《Attention Is All You Need目的是为了搞懂transformer,BERT预训练模型原理及细节。
论文链接:https://arxiv.org/abs/1706.03762
摘要
主要的序列转换模型都是基于复杂的卷积神经网络(CNN)和循环神经网络(RNN),也包括编码器和解码器。最好的表现模型也是通过注意力机制链接编码器解码器。论文里提出一个简单的仅基于注意力机制网络结构,Transformer,该结构完全避免了循环和卷积。实验在两个机器翻译任务上表明模型优于其他模型,同时有更高的并行和更少的训练时间。该方法在2014WMT英德翻译任务中完成了BLUE值为28.4,超越了之前最好的结果。同时在英法翻译任务中,该模型在8块GPU上跑了3.5天得到了最好的BLUE值41.8分。在大量的或者受限的数据下,我们也能证明transformer模型可以成功的应用到其他任务当中去。
1. 介绍
循环神经网络(RNN)、长短时记忆网络(LSTM)和门控递归神经网络已经在序列模型和转换问题(预言建模和机器翻译)中取得了很好的成果。之后,大量的努力继续推动着语言模型和编码器-解码器机制不断发展。
递归模型一般是根据输入和输出序列的符号位置来计算因子。将位置与计算时间的步骤对齐,产生一个隐藏层序列,作为隐藏层状态的一个函数和位置的输入。这种内在的顺序性,阻碍了训练中的并行操作,在比较长的序列中,并行操作就闲的极为重要,序列过长的内存会限制和形象跨实例的批处理。最近的工作通过分解因子和条件计算使计算效率有了明显的提升,但是基于顺序的问题依然存在。
注意力机制已经成为序列模型和转换模型的一个完整的部分,允许在依赖项上进行建模,而忽略输出和输入序列的距离。然而,除少数情况外,这种注意力机制与循环神经网络(RNN)一起使用。
在论文中,提出Transformer模型,这种模型避免了重复性(与RNN,LSTM相比),取而代之的是完全依赖于注意机制来绘制输入和输出之间的全局依赖关系。Transformer模型允许并行计算并且在8个P100 gpu上接受12小时的培训后翻译质量达到更高的水平。
2. 背景
减少顺序计算也为扩展的神经GPU打下基础,所有这些都使用卷积神经网络作为基本构建块,并行计算所有输入和输出位置的隐藏表示。在这些模型中,在位置之间的距离中,将两个任意的输入和输出关联起来的操作在增加,ConvS2S为线性,ByteNet为对数。这使得学习远距离位置之间的依赖性变得更加困难,在transformer模型中,会减少这样的恒定的操作,尽管这回损失一些有效的分辨率,为了对位置注意力权重取均值,我们使用3.2节中介绍的多头注意力机制。
自注意力机制有时又叫做内注意力机制,它将单个序列的不同位置链接起来,为了计算一个序列的表示。自注意力机制成功应用到各种领域,例如阅读理解、文本摘要、文本蕴涵、学习独立任务的句子表示。
端到端的记忆网络是基于一种循环注意机制而不是序列排列的循环,在简单的语言问答和语言建模任务中表现良好。
然而,据我们所知,Transformer是第一个完全依赖于自注意力来计算输入和输出的表示,而不需要序列对其CNN或者卷积。在下一届我们将会描述Transformer,激励自注意力和模型的优点。
3. 模型结构
最具竞争力的神经序列转换模型都有编码器-解码器结构,在这里,编码器结构将一段输入的符号序列