Skip to content

Transformer通俗易懂总结

Transformer 是一种完全基于注意力机制的深度学习模型,它没有使用传统的卷积神经网络(CNN)和循环神经网络(RNN),最初是用来解决文本翻译这类 “序列转序列” 的任务(比如把英文翻译成中文),现在已经被用到自然语言处理、计算机视觉、语音处理等很多领域。

一、整体结构

Transformer 采用编码器 - 解码器的架构,就像一个翻译的过程:

  • 编码器:相当于 “听懂输入的耳朵”,负责理解输入的内容(比如听懂外语原文)。

  • 解码器:相当于 “生成输出的嘴巴”,负责根据编码器理解的内容,生成对应的输出(比如把外语翻译成中文)。

输入的内容(比如一段文字)会先经过 “嵌入”(把文字转换成电脑能看懂的向量),再加上 “位置编码”(给每个词加上顺序信息,因为 Transformer 本身不知道文字的顺序),然后分别送入编码器和解码器。

alt text

二、编码器:怎么 “听懂” 输入

编码器是由多个相同的层堆叠起来的,每层都有两个核心部分,还有防止模型训练出问题的 “残差连接 + 层规范化”:

  1. 多头自注意力:可以同时关注输入内容的不同部分的关联。比如翻译 “我爱吃苹果” 时,它可以同时关注 “我” 和 “吃”、“苹果” 和 “吃” 的关联,就像人读句子时会同时看前后的词来理解意思。它会把注意力分成多个 “小注意力”(也就是 “头”),每个小注意力关注不同的关联,最后把这些结果整合起来。

  2. 基于位置的前馈网络:对输入的每个位置的信息进行处理,而且所有位置都用同一个多层感知机(MLP)处理,就像给每个词的信息都做一次 “加工”,让信息更有用。

三、解码器:怎么 “生成” 输出

解码器也是由多个相同的层堆叠起来的,除了和编码器类似的两个部分,还多了一个关键部分:

  1. 掩蔽多头自注意力:和编码器的自注意力类似,但是它只能关注已经生成的内容,就像人说话不能提前说还没构思好的内容,翻译时要按顺序生成,不能还没翻译第一个词就先看后面的词。

  2. 编码器 - 解码器注意力:用来 “看” 编码器处理后的输入信息,也就是根据编码器理解的内容来生成输出,就像翻译时要根据听懂的外语内容来组织中文的表达。

  3. 同样也有基于位置的前馈网络,还有残差连接和层规范化。

四、核心细节:位置编码

因为 Transformer 没有 RNN 那种处理顺序的能力,所以它需要给每个输入的位置加上一个 “位置信息”,也就是位置编码,让模型知道输入的内容谁在前、谁在后,比如 “我吃饭” 和 “饭吃我” 意思不一样,靠位置编码来区分顺序。

五、Transformer 的优势

  1. 速度更快:相比 RNN 只能按顺序处理每个词,Transformer 可以并行处理所有词,就像一群人同时干活,比一个人按顺序干活快很多。

  2. 长文本处理更好:相比 CNN,Transformer 可以直接关注到输入的任意位置的关联,不用像 CNN 那样一步步传递信息,处理长文本时能更好地理解上下文的关联。

六、总结

  • Transformer是编码器-解码器架构的一个实践,尽管在实际情况中编码器或解码器可以单独使用。

  • 在Transformer中,多头自注意力用于表示输入序列和输出序列,不过解码器必须通过掩蔽机制来保留自回归属性。

  • Transformer中的残差连接和层规范化是训练非常深度模型的重要工具。

  • Transformer模型中基于位置的前馈网络使用同一个多层感知机,作用是对所有序列位置的表示进行转换。

(注:文档部分内容可能由 AI 生成) 源地址

京ICP备2024093538号-1