Transformer模型是一种基于自注意力机制的神经网络架构,广泛应用于自然语言处理任务,如机器翻译、文本摘要等。

Transformer
神经网络算法 - 一文搞懂Transformer
从端到端的角度来看,数据在Transformer中的流转可以概括为四个阶段:Embedding(嵌入)、Attention(注意力机制)、MLPs(多层感知机)和Unembedding(从模型表示到最终输出)。Embedding -> Attention -> MLPs -> UnembeddingEmbedding(嵌入):
- 模型的输入通常是离散的词或符号(例如,在英文文本中,每个单词或标点符号都是一个符号)。
- Embedding层将这些离散的符号转换为连续的、固定大小的向量(即词嵌入)。这些向量捕捉了符号的语义和上下文信息。
- 对于Transformer的编码器(Encoder)和解码器(Decoder),都会有一个Embedding层。
- 在解码器中,还有一个额外的位置嵌入(Positional Embedding)层,用于捕捉序列中单词的位置信息,因为Transformer不依赖于RNN或CNN等结构来捕获顺序信息。
Attention(注意力机制):
- 注意力机制是Transformer的核心。它允许模型在生成当前输出时关注输入序列中的不同部分。
- Transformer使用了多种注意力机制,包括自注意力(Self-Attention)、编码器-解码器注意力(Encoder-Decoder Attention)、掩码多头注意力(Mask Multi-Head Attention)等。
- 自注意力允许模型在同一序列的不同位置之间建立依赖关系,从而捕获序列的内部结构。
- 编码器-解码器注意力允许模型在生成输出时关注输入序列的特定部分。
- 在注意力计算过程中,会生成一个注意力权重矩阵,该矩阵描述了输入序列中每个位置对当前位置的重要性。
神经网络算法 - 一文搞懂Transformer中的三种注意力机制
MLPs(多层感知机,也称为FFNN前馈神经网络):
- 经过注意力机制处理后,模型会通过一个或多个全连接层(也称为前馈网络或MLPs)进行进一步的变换和特征提取。
- 这些全连接层可以捕捉输入数据中的非线性关系,并帮助模型学习更复杂的模式。
- 在Transformer中,MLPs通常位于自注意力层和归一化层之间,形成所谓的“编码器块”或“解码器块”。
神经网络算法 - 一文搞懂FFNN(前馈神经网络)
Unembedding(从模型表示到最终输出):
- 可以将其理解为从模型内部表示转换到最终输出格式的过程。
- 对于文本生成任务,如机器翻译,解码器的输出会经过一个线性层和一个softmax函数,以生成一个概率分布,该分布描述了下一个可能输出的词的概率。
- 对于其他任务(如文本分类),解码器的输出可能会直接用于计算损失函数(如交叉熵损失),或者通过其他方式转换为最终的预测结果。
神经网络算法 - 一文搞懂 Softmax 函数