Transformer
- 1. Transformer
- 1.1. transformer整体结构
- 1.1.1. 编码器和解码器
1. Transformer
1.1. transformer整体结构
Transformer是一种基于自注意力机制的深度学习模型,广泛应用于自然语言处理任务。它的核心特点包括自注意力机制、多头注意力、编码器-解码器架构、位置编码、残差连接和层归一化,以及并行化计算能力。
类别 | 内容 |
---|---|
论文 | Attention Is All You Need |
论文地址 | https://arxiv.org/pdf/1706.03762.pdf |
项目地址 | https://pytorch.org/docs/stable/_modules/torch/nn/modules/transformer.html#Transformer |
作者 | Ashish Vaswani∗ Noam Shazeer 等 |
单位 | 2017 年,Google 机器翻译团队 |
摘要 | 主要的序列转导模型是基于复杂的循环或卷积神经网络,包括一个编码器和一个解码器。表现最好的模型还通过注意机制连接编码器和解码器。我们提出了一个新的简单的网络架构,transformer,完全基于注意力机制,完全摒弃递归和卷积。在两个机器翻译任务上的实验表明,这些模型在质量上更优越,同时更具并行性,并且需要更少的训练时间。我们的模型在WMT 2014英语-德语翻译任务上实现了28.4 BLEU,比现有的最佳结果(包括集合)提高了2个BLEU以上。在WMT 2014英法翻译任务中,我们的模型在8个gpu上训练3.5天后,建立了一个新的单模型最先进的BLEU分数41.8,这是文献中最佳模型训练成本的一小部分。我们通过将Transformer成功地应用于具有大量和有限训练数据的英语选区解析,证明了它可以很好地推广到其他任务 |
贡献 | 这篇论文的主要贡献是提出了一种新的神经网络架构,即Transformer,它完全基于注意力机制,不涉及循环和卷积操作。Transformer在机器翻译任务上表现出了更好的性能,同时具有更高的并行性和训练效率。 |
1.1.1. 编码器和解码器
编码器:
编码器由N = 6个相同层的堆栈组成。每一层有两个子层。第一种是多头自注意机制,第二种是简单的、位置完全连接的前馈网络。我们在每一个子层周围使用残差连接[11],然后进行层归一化[1]。也就是说,每个子层的输出是LayerNorm(x + Sublayer(x)),其中Sublayer(x)是子层本身实现的函数。为了方便这些残差连接,模型中的所有子层以及嵌入层产生的输出维度为dmodel = 512。
解码器:
解码器也由N = 6相同层的堆栈组成。除了每个编码器层中的两个子层之外,解码器插入第三个子层,该子层对编码器堆栈的输出执行多头注意。与编码器类似,我们在每个子层周围使用残差连接,然后进行层规范化。我们还修改了解码器堆栈中的自注意子层,以防止位置关注后续位置。这种掩蔽,再加上输出嵌入被偏移一个位置的事实,确保了位置i的预测只能依赖于位置小于i的已知输出。