概述

Transformer 是2017年由Vaswani等人提出的基于自注意力机制的神经网络架构,广泛应用于NLP领域。核心特点:

  • 完全依赖注意力机制,​摒弃循环结构
  • 支持并行化训练
  • 长距离依赖捕捉能力强

整体架构

编码器-解码器结构

  • 编码器​(左半部分):

    • 个相同层的堆叠
    • 每层包含:
      • 多头自注意力子层
      • 前馈神经网络子层
      • 残差连接 + 层归一化:
  • 解码器​(右半部分): - 比编码器多一个交叉注意力子层 - 使用掩码自注意力防止信息泄漏

核心组件

自注意力机制

计算步骤

  1. 将输入映射为Q(Query)、K(Key)、V(Value)矩阵:
  2. 计算缩放点积注意力:
  1. 多头注意力拼接:

其中每个头:

位置编码

为序列添加位置信息:

前馈网络

每层包含两个线性变换+ReLU激活:

关键创新

特性说明
并行计算自注意力可同时计算所有位置关系
长程依赖任意两个位置的距离为常数级
可变长度处理动态生成注意力权重矩阵

数学细节

  • 维度缩放用于防止点积过大导致softmax梯度消失

  • 残差连接帮助梯度流动

  • 层归一化:对每个样本单独进行归一化

优点和缺点

优点

  • 训练效率显著高于RNN
  • 可解释性强(通过注意力权重)
  • 适合处理长文本

缺点

  • 内存消耗大(复杂度)
  • 位置编码的绝对位置信息可能不足

主要变体

  1. BERT(仅使用编码器)
  2. GPT(仅使用解码器)
  3. Transformer-XL(解决长文本问题)