Transformer 模型是一种基于注意力机制的深度学习模型,由 Vaswani 等人在论文《Attention is All You Need》中提出,用于处理序列到序列的任务,如机器翻译、文本摘要等。其原理主要包括以下几个关键点:
1. 自注意力机制:能够同时考虑输入序列中所有位置的信息,而非像循环神经网络或卷积神经网络一样逐个位置处理。通过自注意力机制,模型可根据输入序列中不同位置的重要程度,动态分配注意力权重,从而更好地捕捉序列中的关系和依赖。
2. 位置编码:由于自注意力机制不考虑输入序列的位置信息,为使模型能够区分不同位置的词语,Transformer 模型引入了位置编码。位置编码是一种特殊的向量,与输入词向量相加,用于表示词语在序列中的位置信息。位置编码通常基于正弦和余弦函数计算得到的固定向量,可帮助模型学习到位置信息的表示。
3. 多头注意力机制:通过引入多头注意力机制,可以并行地学习多个注意力表示,从不同的子空间中学习不同的特征表示。每个注意力头都是通过将输入序列线性变换成查询、键和值向量,并计算注意力分数,然后将多个头的输出拼接在一起得到最终的注意力表示。
4. 残差连接和层归一化:在每个子层(SelfAttention 层和前馈神经网络层)的输入和输出之间都引入了残差连接,并对输出进行层归一化。残差连接可缓解梯度消失和梯度爆炸问题,使得模型更容易训练和优化;层归一化可加速训练过程,并提高模型的泛化能力。
5. 位置感知前馈网络:在每个注意力子层之后,Transformer 模型还包含了位置感知前馈网络,它是一个两层的全连接前馈神经网络,用于对注意力表示进行非线性转换和映射。位置感知前馈网络在每个位置独立地进行计算,提高了模型的并行性和计算效率。
Transformer 模型主要由两大部分组成:编码器和解码器。每个部分都是由多个相同的层堆叠而成,每层包含了多头注意力机制和位置全连接前馈网络。
编码器可以理解为将自然语言转换成向量文本,以模型内的既有参数表示。这些参数包含了原始信息,同时也融合了序列内元素间的相互关系。例如,输入“我喜欢猫”,将自然语言转换成词嵌入向量:我>,经过自注意力机制,输出编码器输出一个序列的向量,表示对输入句子的理解。
解码器基于编码器的输出和之前生成的输出逐步生成目标序列,也就是把向量文本重新转化成自然语言。例如,目标生成中文句子“我喜欢猫”,初始输入为解码器接收一个开始符号,用,对应“猫”。这是一个简单的复现概念,当模型得到匹配度高的参数时,它就会一个词一个词地判断需要输出的语言文本。
2025-03-14