<论文>什么是Transformer?

一、摘要

        今天,我们来读一下人工智能领域划时代的一篇论文——《Attention Is All You Need》。这篇论文提出了一个叫Transformer的模型,在多个机器翻译任务中吊打了当时的SOTA,奠定了后续预训练模型的强大架构基础。

摘要译文:

        当前主流的序列转换模型基于复杂的循环或卷积神经网络,这些网络包括编码器和解码器。表现最好的模型还通过注意力机制连接编码器和解码器。我们提出了一种新的简单网络架构——Transformer,完全基于注意力机制,完全摒弃了递归和卷积。在两个机器翻译任务上的实验表明,这些模型在质量上更优越,同时具有更高的并行化能力,并且训练时间大大缩短。我们的模型在WMT 2014年英语到德语的翻译任务上达到了28.4的BLEU分数,比现有的最佳结果(包括集成模型)提高了2个BLEU以上。在WMT 2014年英语到法语的翻译任务上,我们的模型在八个GPU上训练3.5天后,创造了新的单模型最佳BLEU分数41.8,这是文献中最佳模型训练成本的一小部分。我们展示了Transformer通过成功应用于英语成分句法分析,无论是在大数据集还是有限数据集上,都能很好地泛化到其他任务。

二、模型核心架构

        下面这张出自该论文的模型结构图相信许多人都不陌生,大名鼎鼎的Transformer模型编码器-解码器架构。后来,GPT2基于多层Transformer解码器在文本生成领域取得了重大突破,而NLP大杀器Bert也是基于多层的Transformer编码器来实现的,可谓都是Transformer的后代。

1、编码器-解码器结构

        Transformer模型中,编码器由N=6个相同的层堆叠而成。每个层有两个子层,第一个是多头自注意力机制,第二个是简单的、按位置全连接的前馈网络。两个子层的周围都使用残差连接,然后进行层归一化,即每个子层的输出是LayerNorm(x + Sublayer(x)),其中Sublayer(x)是由子层本身实现的函数。为了便于这些残差连接,模型中的所有子层以及嵌入层都是512维的输出。

        另一边,解码器也由N=6个相同的层堆叠而成。除了每个编码器层中的两个子层外,解码器还插入了第三个子层,该子层对编码器堆栈的输出执行多头注意力。与编码器类似,每个子层的周围同样都使用残差连接,然后进行层归一化。作者还修改了解码器堆栈中的自注意力子层,以防止对当前位置的解码过程中看到后续位置的信息,这对于文本生成等任务来说至关重要,毕竟实际的文本生成过程中无法根据后面的信息来生成当前位置的文本。

2、多头自注意力机制

        Transformer以三种不同的方式使用多头注意力机制,且这其中的注意力机制为自注意力(详细介绍可戳此)

  • 在“编码器-解码器注意力”层中,query来自前一个解码器层,而网络所记忆的key和value来自编码器。这允许解码器中的每个位置关注到输入序列中的所有位置。这模仿了序列到序列模型中典型的编码器-解码器注意力机制。

  • 在同一个编码器自注意力层中,所有的key、value和query都来自前一层编码器的输出。这使得当前编码器中的每个位置都可以关注到前一层编码器中的所有位置。

  • 解码器中的自注意力层允许解码器中的每个位置都关注到解码器中包括该位置在内的所有位置。

3、位置编码(面试常见知识点)

        由于我们Transformer模型不包含递归和卷积,为了让模型能够利用序列的顺序,必须注入一些关于序列中标记的相对或绝对位置的信息。为此,作者在编码器和解码器堆栈的底部输入embeddings中添加了positional encodings,即位置编码。位置编码与embeddings具有相同的维度以实现两者相加。Transformer的位置编码策略是使用不同频率的正弦和余弦函数

PE_{(pos, 2i)} = sin(pos/10000^{2i/d_{model}})

PE_{(pos, 2i+1)} = cos(pos/10000^{2i/d_{model}})

        其中,pos是位置,i是当前向量维度。也就是说,位置编码的每个维度对应一个正弦波。波长形成一个从2π到10000⋅2π的几何级数。作者表示,选择这个函数是因为它允许模型轻松地通过相对位置学习关注点,因为对于任何固定的偏移k,PE(pos+k)都可以表示为PE(pos)的线性函数。

三、总结

        Transformer模型摒弃了循环与卷积结构,以多头自注意力机制为核心构建编码器-解码器。而多头自注意力机制通过并行投影query、key、value到低维的子空间中做注意力计算再整合,使得模型能够从多表征的子空间捕捉信息,增强了模型对复杂序列模式理解与表征。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值