生成式AI实战
上QQ阅读APP看书,第一时间看更新

2.1.1 基本概念

Transformer最初由Vaswani等人在2017年的论文“Attention Is All You Need”中提出。这篇论文颠覆了以往将循环神经网络和卷积神经网络视为NLP主流模型的观点,提出了一种基于自注意力机制的全新模型。Transformer模型凭借其强大的表示学习能力和高效的并行计算性能,在短时间内便成为NLP领域的标准配置。

Transformer的核心结构由编码器(encoder)和解码器(decoder)两部分组成,它们都是基于自注意力机制的多层堆叠结构,如图2-1所示。

图2-1 Transformer的核心结构

1. 编码器

编码器由N个相同的层堆叠而成,每一层都包含两个子层——多头自注意力层和全连接前馈层。这两个子层均采用残差连接(residual connection)和层归一化(layer normalization)进行优化。编码器的主要功能是将输入语句中的每个词表示为一个连续的向量,以便后续解码器进行处理。

2. 解码器

解码器同样由N个相同的层堆叠而成。除了与编码器相似的多头自注意力层和全连接前馈层以外,解码器还多了一个额外的编码-解码注意力层(encoder-decoder attention),用于关联输入语句和生成的输出语句。解码器的主要任务是基于编码器的输出生成目标语句。

3. 自注意力机制

自注意力机制是Transformer模型的核心部分,其结构如图2-2所示。它允许模型在一个序列内部学习各个元素之间的依赖关系,从而捕捉到文本中长距离的信息。

图2-2 自注意力机制的结构

自注意力机制可以分为以下3个步骤。

1)注意力分数计算

将输入序列的每个词的嵌入表示通过线性变换后得到查询(query)、键(key)和值(value)3个矩阵,然后计算查询和键之间的点积,再除以一个缩放因子(通常为词向量长度的平方根),得到注意力分数。

2)注意力权重与值向量

对注意力分数进行softmax操作,得到注意力权重。这些权重表示在计算当前词的表示时,其他词与当前词之间的相关程度。

3)多头注意力

为了更好地捕捉不同位置和不同维度上的信息,Transformer引入了多头注意力机制。将初始输入分成多个子空间后,分别进行自注意力计算,再将各个子空间的结果拼接起来。这样,模型就可以关注到多种不同的信息,进而提高表达能力。

通过引入自注意力机制,Transformer不仅能够并行处理整个文本序列,而且具有更强大的长距离依赖捕捉能力。这使得Transformer在NLP任务中具有显著的优势。