a new simple network architecture
一个简单的网络结构
从宏观角度来看,Transformer 的编码器是由多个相同的层叠加而成的, 每个层都有两个子层,第一个是多头注意力汇聚,第二个是基于位置的前馈网络。在计算编码器的自注意力时,查询、键和值都来自前一个编码器层的输出。每个子层都采用了残差连接和层归一化,从而增加网络的深度和能力。输入序列对应的每个位置,Transformer 编码器都将输出一个
Transformer 解码器也是由多个相同的层叠加而成的,并且层中使用了残差连接和层归一化。除了多头注意力汇聚、前馈网络两个子层外,解码器还在这两个子层之间插入了第三个子层,称为编码器-解码器注意力层。在编码器-解码器注意力中,查询来自前一个解码器层的输出,而键和值来自整个编码器的输出。在解码器自注意力中,查询、键和值都来自上一个解码器层的输出。但是,解码器中的每个位置只能考虑该位置之前的所有位置。这种掩蔽(masked)注意力保留了自回归属性,确保预测仅依赖于已生成的输出词元。
Transformer 执行示例:
任务:将英文 "I love you" 翻译成中文
编码器阶段:
- 输入 ["I", "love", "you"] 经过嵌入和位置编码
- 多头自注意力:每个词关注所有词,理解语义关系
- 前馈网络处理,输出编码表示 [H1, H2, H3]
解码器阶段:
- 生成"我":输入[START] → 自注意力 → 编码器-解码器注意力(查询编码器输出) → 预测"我"
- 生成"爱":输入[START,"我"] → 掩码自注意力 → 编码器-解码器注意力 → 预测"爱"
- 生成"你":输入[START,"我","爱"] → 掩码自注意力 → 编码器-解码器注意力 → 预测"你"
关键点:解码器只能看到已生成的词,编码器-解码器注意力让解码器访问源语言信息
自注意力
自注意力同时具有并行计算和最短的最大路径长度这两个优势。Transformer 模型完全基于注意力机制,没有任何卷积层或循环神经网络层。
多头注意力(Multi-Head Attention)
多头注意力允许模型在不同的表示子空间中并行地关注来自不同位置的信息。具体来说:
其中
多头机制使得模型能够同时关注序列中不同位置的不同类型的关系,极大地增强了模型的表达能力。
位置编码(Positional Encoding)
由于 Transformer 模型没有循环或卷积结构,为了让模型能够利用序列的顺序信息,必须注入关于 token 在序列中相对或绝对位置的信息。原论文使用正弦和余弦函数的位置编码:
其中 pos 是位置,i 是维度索引。这种编码方式使得模型能够轻松学习相对位置的关系。
前馈网络的主要作用
- 增加非线性:虽然注意力机制主要通过线性变换和 softmax 函数工作,前馈网络通过 ReLU 等激活函数提供关键的非线性变换。
- 逐位置处理:它独立地对序列中的每一个位置(词元)进行相同的变换,只改变特征维度,不改变序列的长度。
前馈网络通过对序列中的每个元素进行非线性处理,极大地增强了 Transformer 模型的表达能力。
BLEU
BLEU(Bilingual Evaluation Understudy)是一种常用的机器翻译自动评估指标。它通过比较机器翻译结果与一个或多个参考译文之间的 n-gram 重叠程度,来衡量翻译的质量。分数范围为 0 到 1,分数越高表示机器翻译与参考译文越接近。常用的 n-gram 有 1-gram(单词级)、2-gram(词对级)等。BLEU 还会用惩罚因子(Brevity Penalty)防止生成过短的译文。简而言之,BLEU 越高,说明机器翻译越接近人工翻译。
其中:
表示 n-gram 的精确率 通常为 是候选译文长度, 是参考译文长度
如何将一个向量变成均值为 0, 标准差为 1 的向量?
这个过程叫做标准化(Standardization)或Z-score 标准化。
步骤:
计算向量的均值:
计算向量的标准差:
标准化每个元素:
完整公式:
对于向量
其中
验证:
标准化后的向量
(均值为 0) (方差为 1,标准差为 1)
简单例子:
例子:假设有向量
计算均值:
计算标准差:
- 方差:
- 标准差:
标准化:
结果:
验证:均值 = 0,标准差 = 1
自回归
**自回归(Autoregressive)**是一种序列生成模式,模型在生成下一个 token 时,只能看到之前已经生成的 token,不能看到未来的 token。这种单向的注意力机制确保了生成过程的因果性,使得模型能够逐步构建完整的序列。
在 Transformer 中,自回归通过**掩码注意力(Masked Attention)**实现,即在计算注意力时对未来位置进行掩码,防止信息泄漏。这种方法广泛应用于语言模型(如 GPT 系列)和机器翻译的解码器中。
Attention 在 Transformer 中的作用
Attention 机制是 Transformer 的核心组件,它允许模型在处理序列中的每个位置时,动态地关注到序列中所有相关的位置信息(主要作用是把整个序列的信息聚合起来)。
核心公式:
其中 Q(Query)、K(Key)、V(Value)分别代表查询、键和值矩阵,
总结
Transformer 是一个完全基于注意力机制的序列到序列模型,彻底摒弃了循环和卷积结构。
核心创新:
- 纯注意力架构:完全依赖 self-attention 和 multi-head attention
- 并行计算:相比 RNN/LSTM,可以高效并行训练
- 位置编码:使用正弦余弦函数编码位置信息
- 多头注意力:在不同子空间并行关注不同类型的关系
架构组成:
- 编码器:6 层,每层包含多头自注意力 + 前馈网络 + 残差连接 + 层归一化
- 解码器:6 层,额外增加编码器-解码器注意力层,使用掩码机制实现自回归生成
关键机制:
- Self-Attention:让序列中每个位置都能关注到所有位置
- 掩码注意力:确保解码时不会看到未来信息
- 残差连接:缓解深度网络的梯度消失问题
- 层归一化:稳定训练过程
应用价值:
Transformer 开创了现代 NLP 的新纪元,是 GPT、BERT 等大型语言模型的基础架构,在机器翻译、文本生成、语言理解等任务上都取得了突破性进展。