Transformer

5 阅读6分钟

1. 核心定义:它是什么?

Transformer是一种完全基于自注意力机制的深度学习模型架构,专门为处理序列数据而设计。

要理解它的革命性,需要知道它出现前的背景:

  • RNN/LSTM的困境:在Transformer之前,处理序列(如句子、时间序列)的主流模型是循环神经网络及其变体LSTM。它们像一个人一样逐个字地阅读句子,必须等前一个字处理完,才能处理下一个。这导致了:

    1. 难以并行化:计算速度慢。
    2. 长程依赖问题:当序列很长时,早期信息在传递过程中容易丢失或淡化,模型会“忘记”很远之前的内容。

Transformer的核心理念是:为什么不一次性看到整个序列?  它摒弃了循环结构,采用一种“并行扫描”的方式,让模型在处理任何一个词时,都能直接关注并权衡序列中所有其他词的重要性。这使得它极其高效和强大。


2. 核心思想:如何理解?—— “全局关联,并行计算”

想象你在阅读一句话:“The animal didn't cross the street because it was too tired.

这里的 it(它)指的是什么?animal(动物)还是 street(街道)?人类可以瞬间根据所有词的信息判断出 it 指的是 animal

Transformer就是通过自注意力机制来模拟这个过程。

一个关键比喻:信息检索系统

你可以把处理一个词的过程,想象成在一个信息检索系统中进行查询:

  • 查询(Query) :当前我正在关注的词(例如 it)提出的问题:“我是谁?我指的是什么?”
  • 键(Key) :序列中每一个词(包括 it 自己)所持有的“身份标签”或“关键词”。
  • 值(Value) :序列中每一个词所包含的“实际信息”或“内容”。

自注意力机制的工作流程如下:

  1. it 作为一个查询(Query) ,去与序列中所有词(包括自己)的键(Key)  进行匹配,计算出一个“注意力分数”。这个分数代表了每个词与 it 的相关程度。
  2. 分数经过标准化(Softmax),转化为一个注意力权重(0到1之间的概率分布)。
  3. 用这些权重对所有词的值(Value)  进行加权求和。
  4. 这个加权求和的结果,就是 it 在当前语境下的新表示。这个新表示不再是孤立的,而是融入了与它最相关的词(如 animal 和 tired)的信息

最终,it 的新表示会包含很强的 animal 的信息,因为它们的注意力权重很高。模型就是这样理解了指代关系。

为什么是“自”注意力?
因为它的 Query, Key, Value 都来自于同一个输入序列。它是在序列内部寻找关联,而不是去关注外部别的序列。


3. 模型架构:核心组件解析

原始的Transformer模型(出自论文《Attention Is All You Need》)是一个Encoder-Decoder(编码器-解码器)架构,主要用于序列到序列的任务,如机器翻译。

(1)编码器(Encoder)

  • 作用:理解和“编码”输入序列(如源语言句子),将其转化为一个富含上下文信息的表示(一组向量)。

  • 核心组件

    1. 多头自注意力层:这是精髓所在。“多头”意味着模型并行地运行多个自注意力过程。每个“头”可以学习在不同子空间、不同角度关注信息。例如,一个头可能关注语法结构,另一个头可能关注指代关系,第三个头可能关注情感基调。最后将所有头的输出拼接起来,形成一个更全面的表示。
    2. 前馈神经网络:一个简单的全连接网络,独立地应用于每个位置的表示。它的作用是对自注意力层提取的特征进行非线性变换和整合。
    3. 残差连接和层归一化:每个子层(自注意力、前馈网络)都套着一个“残差连接”和“层归一化”。这极大地帮助了深度网络的训练,防止梯度消失和模型退化。

(2)解码器(Decoder)

  • 作用:根据编码器的输出和已经生成的部分输出序列,来“解码”并生成下一个词(如目标语言句子)。

  • 核心组件

    1. 掩码多头自注意力层:与编码器的自注意力类似,但为了防止模型在训练时“作弊”(看到未来的词),它被掩码了。这意味着在生成第 i 个词时,它只能关注到第 1 到第 i-1 个词。
    2. 交叉注意力层:这是连接编码器和解码器的桥梁。在这一层,解码器将自身的表示作为 Query,而去编码器的最终输出中寻找 Key 和 Value。这样,解码器在生成每一个词时,都能有选择地聚焦于输入序列中最相关的部分。
    3. 前馈神经网络:与编码器中的相同。

4. 主要作用与应用

Transformer的作用远超最初的机器翻译,它已成为自然语言处理乃至其他领域的基石模型。

  1. 自然语言处理(NLP)

    • 仅用编码器:用于需要“理解”文本的任务。

      • BERT:通过双向上下文理解,用于文本分类、情感分析、问答系统。
      • 句子相似度计算
    • 仅用解码器:用于“生成”文本的任务。

      • GPT系列:用于文本生成、对话AI、代码生成、创意写作。
    • 编码器-解码器:用于“转换”文本的任务。

      • 机器翻译、文本摘要、语法纠错。
  2. 跨模态领域

    • Vision Transformer:将图像分割成图块,视为一个序列,成功应用于图像分类、目标检测等计算机视觉任务,挑战了CNN的统治地位。
    • 音频处理:将音频信号作为序列处理,用于语音识别、语音合成。
    • 多模态模型:如CLIP(连接文本和图像)、DALL-E等,其核心都离不开Transformer。

总结:为什么Transformer如此成功?

  1. 强大的全局依赖性建模:自注意力机制允许模型直接建立序列中任意两个位置的联系,无论距离多远,有效解决了长程依赖问题。
  2. 极高的并行计算能力:摒弃循环,整个序列可以同时处理,极大地利用了GPU等硬件优势,训练速度远超RNN。
  3. 可扩展性和灵活性:其模块化设计使其易于堆叠成非常深的网络(如GPT-3有96层),并且可以轻松处理不同模态的数据。
  4. 卓越的性能:在几乎所有基准测试中,Transformer-based模型都达到了state-of-the-art(SOTA)水平。

简而言之,Transformer通过其独特的自注意力机制,实现了对序列数据的“一览众山小”式的全局理解,并通过并行计算架构实现了前所未有的效率和可扩展性,从而成为当今人工智能大模型时代的基石。