Attention Is All You Need
前段时间看了一些transformer相关的文章,但讲解的都不太清楚,想着还是读一读论文理解起来更加深刻,所以翻译了这篇Attention Is All You Need。 论文中的作者贡献是相同的,而名单的排列顺序是随机的。Jakob 提出了用自注意力机制替换循环神经网络 (RNN) 的想法,并开启了验证这一构想的工作。Ashish 与 Illia 共同设计并实现了首个 Transformer 模型,对这项工作的各个方面都有着至关重要的贡献。Noam 提出了缩放的点积注意力、多头注意力和无需参数的位置表示法,几乎参与了项目的每个细节。Niki 在我们的原始代码库和 tensor2tensor 中设计、实现、调整并评估了无数的模型变种。Llion 也探索了新型模型变种,负责我们最初的代码库、高效的推理和可视化工作。Lukasz 和 Aidan 贡献了无数的时间来设计和实现 tensor2tensor 的各个部分,这不仅取代了我们之前的代码库,还大幅提高了研究结果并极大地加速了我们的研究进展。这些工作是在 Google Brain 和 Google Research 期间完成的。 摘要 目前主流的序列转换模型依赖于包含编码器和解码器的复杂循环或卷积神经网络体系。这些模型的高性能部分得益于编解码器之间的注意力机制连接。我们提出了一种全新的网络架构——Transformer,这一架构完全基于注意力机制,彻底摒弃了递归和卷积。通过在两个机器翻译任务上的实验,我们发现这些模型在质量上更为优异,且具备更高的并行处理能力,训练时间也大幅缩短。我们的模型在 WMT 2014 年的英德翻译任务上获得了 28.4 的 BLEU 分数,超过了包括集成模型在内的现有最佳结果2个 BLEU 分以上。在 WMT 2014 的英法翻译任务上,我们的模型在仅使用八个 GPU 训练了 3.5 天后,刷新了单模型最高 BLEU 记录,达到了 41.8 分,这仅是文献中最佳模型训练成本的一小部分。我们还证明了 Transformer 能够成功地广泛应用于其他任务,比如英语成分句法分析,无论训练数据是丰富还是有限。 1 简介 循环神经网络(RNN)、长短期记忆(LSTM)网络和门控循环单元(GRU)网络,特别是在语言建模和机器翻译等序列建模和转换问题上,已被公认为最先进的技术。从那时起,一直有许多尝试不断地推动循环语言模型和编解码器架构的发展边界。 循环模型的计算通常沿着输入和输出序列的符号位置进行分解。它们通过将位置与计算时间的步骤对齐来生成一系列隐藏状态,这些隐藏状态${h_t}$是基于之前的隐藏状态$h_{t-1}$和当前位置t的输入。这种计算的顺序性质限制了训练样本内部的并行处理能力,特别是在处理更长序列时,由于内存限制,这成为一个关键问题。近期的研究通过采用因式分解技巧和条件计算在提高计算效率的同时,也在某些情况下提升了模型的性能。然而,顺序计算的基本限制仍然存在。 注意力机制已经成为多个任务中高效序列建模和转换模型的核心部分,它允许模型无视输入或输出序列中依赖关系的距离进行建模。尽管如此,除了少数情况外,注意力机制通常与循环网络结合使用。 在本工作中,我们提出了一种新的架构——Transformer,这种架构放弃了递归,完全依靠注意力机制来处理输入和输出之间的全局依赖关系。Transformer架构支持更高程度的并行处理,并且在使用八个 P100 GPU 训练仅12小时后,就能在翻译质量上达到新的最高标准。 2 背景 减少顺序计算的目标也是扩展神经GPU、ByteNet 和 ConvS2S等模型的基础,这些模型都采用了卷积神经网络作为基础构件,能够对所有输入和输出位置的隐藏表示进行并行计算。在这些模型中,将两个任意输入或输出位置的信号相关联所需的操作数会随着位置之间的距离增加而增长,对于ConvS2S是线性增长,而对于ByteNet则是对数增长。这增加了学习远距离位置间依赖性的难度。而在Transformer模型中,这种操作数量被减少到了一个固定的数目,虽然这样做降低了有效分辨率,因为它通过平均注意力加权的位置,但我们通过多头注意力机制(如第3.2节所述)来弥补这一点。 自注意力Self-attention,也称为内部注意力,是一种注意力机制,通过关联单一序列内不同位置来计算序列的表示。自注意力已经在阅读理解、摘要生成、文本蕴含以及学习独立于任务的句子表示等多种任务上成功应用。 端到端记忆网络基于循环注意力机制,而非序列对齐的循环,已在简单的语言问答和语言建模任务上展现了良好的性能。...