【小白学AI系列】NLP 核心知识点(五)Transformer介绍

news/2025/2/4 1:55:58 标签: 人工智能, 自然语言处理, transformer

Transformer

Transformer 是一种基于自注意力机制(Self-Attention Mechanism)的深度学习模型,首次由 Vaswani 等人于 2017 年在论文《Attention is All You Need》中提出。与 RNN 和 LSTM 不同,Transformer 不需要依靠序列顺序进行递归,而是通过全局注意力机制一次性处理整个输入序列,从而具备了更高的计算效率和更强的并行化能力。

Transformer 的提出彻底改变了自然语言处理(NLP)和其他领域的发展,广泛应用于机器翻译、文本生成、语言理解、图像识别等任务。


Transformer 的结构

Transformer 模型由两部分组成:

  1. 编码器(Encoder):用于将输入序列转化为上下文相关的表示。
  2. 解码器(Decoder):用于根据编码器的输出生成新的序列(如翻译成另一种语言)。

Transformer 的基本结构如下:

Transformer
├── 编码器(Encoder)
│   ├── 多头自注意力机制(Multi-Head Attention)
│   ├── 前馈神经网络(Feed-Forward Neural Network)
│   └── 残差连接与层归一化(Residual Connection + Layer Normalization)
│
└── 解码器(Decoder)
    ├── 多头自注意力机制(Multi-Head Attention)
    ├── 编码器-解码器注意力机制
    ├── 前馈神经网络
    └── 残差连接与层归一化

核心机制解析

1. 多头自注意力机制(Multi-Head Self-Attention)

自注意力机制的核心是:每个单词能够根据输入序列的上下文信息,动态地分配注意力权重,从而获得上下文相关的表示。

计算步骤

  1. 将输入序列 ( X ) 通过线性变换生成查询向量(Query, Q)键向量(Key, K)值向量(Value, V)
  2. 计算每个查询向量 ( Q_i ) 与所有键向量 ( K_j ) 之间的相似度,通过 softmax 函数获得注意力权重。
  3. 将注意力权重与对应的值向量 ( V ) 相乘,得到加权后的输出。

公式:
Attention ( Q , K , V ) = softmax ( Q K T d k ) V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V Attention(Q,K,V)=softmax(dk QKT)V
其中:

  • ( Q ):查询矩阵
  • ( K ):键矩阵
  • ( V ):值矩阵
  • ( d_k ):向量的维度(用来进行缩放)

多头注意力机制 是将多个自注意力机制并行计算,捕捉到输入序列中不同层次的信息,然后将多个头的输出拼接成最终结果。


2. 前馈神经网络(Feed-Forward Network, FFN)

在自注意力机制后,每个位置的输出会通过一个前馈神经网络(通常是两层全连接层)进行非线性变换,提高模型的非线性表达能力。

公式:
F F N ( x ) = ReLU ( x W 1 + b 1 ) W 2 + b 2 FFN(x) = \text{ReLU}(xW_1 + b_1)W_2 + b_2 FFN(x)=ReLU(xW1+b1)W2+b2
其中 ( W1 ) 和 ( W2 ) 是权重矩阵,( b1 ) 和 ( b2 ) 是偏置项。


3. 残差连接与层归一化(Residual Connection + Layer Normalization)

为了避免梯度消失和梯度爆炸问题,Transformer 在每一层增加了残差连接,并在残差连接之后进行层归一化(Layer Normalization),确保输出保持稳定,提升模型训练的稳定性。

残差连接公式:
Output = LayerNorm ( x + SubLayer ( x ) ) \text{Output} = \text{LayerNorm}(x + \text{SubLayer}(x)) Output=LayerNorm(x+SubLayer(x))
其中 ( x ) 是输入,( \text{SubLayer}(x) ) 是注意力机制或前馈网络的输出。


4. 位置编码(Positional Encoding)

由于 Transformer 不像 RNN 那样依靠序列的顺序信息,因此需要为输入序列加入位置编码,帮助模型捕获序列的时序特征。

位置编码公式:
P E ( p o s , 2 i ) = sin ⁡ ( p o s 1000 0 2 i / d ) PE_{(pos, 2i)} = \sin\left(\frac{pos}{10000^{2i/d}}\right) PE(pos,2i)=sin(100002i/dpos)
P E ( p o s , 2 i + 1 ) = cos ⁡ ( p o s 1000 0 2 i / d ) PE_{(pos, 2i+1)} = \cos\left(\frac{pos}{10000^{2i/d}}\right) PE(pos,2i+1)=cos(100002i/dpos)
其中:

  • ( pos ) 是单词在序列中的位置。
  • ( i ) 是维度索引。
  • ( d ) 是向量的维度。

位置编码将序列的位置信息注入到输入嵌入中,使得模型能够区分“第一个词”和“第二个词”。


Transformer 的应用

1. 机器翻译

Transformer 最初的应用就是机器翻译任务。在机器翻译中:

  • 编码器将源语言的句子转化为上下文表示。
  • 解码器根据上下文生成目标语言句子。

2. 文本生成

GPT(生成预训练模型)是基于 Transformer 解码器结构的文本生成模型,能够根据输入文本生成合理的续写内容。

3. 语言理解

BERT(双向编码器表示模型)是基于 Transformer 编码器结构的语言理解模型,擅长回答问题、文本分类等任务。

4. 图像识别

Vision Transformer(ViT)将图像切分成小块,并将它们视为序列输入到 Transformer 中,从而实现了图像识别任务。


Transformer 的优点和缺点

优点:

  1. 高效并行:相比 RNN 和 LSTM,Transformer 不需要逐步递归处理序列,可以并行处理整个序列,大大提高了训练效率。
  2. 捕获长距离依赖:通过自注意力机制,Transformer 能够轻松捕获长距离的上下文关系。
  3. 结构灵活:编码器和解码器模块可以根据任务需求自由组合。

缺点:

  1. 计算量大:多头自注意力机制和全连接层使得模型计算复杂度较高,对硬件资源要求较高。
  2. 需要大规模数据:Transformer 模型的训练通常需要海量的数据和时间。

经典模型发展

  • 2017 年:Transformer 提出,首次应用于机器翻译,性能超越传统 RNN 和 LSTM。
  • 2018 年:BERT 推出,将 Transformer 编码器用于双向语言理解,成为 NLP 领域的里程碑。
  • 2018 年:GPT(Generative Pretrained Transformer) 推出,将 Transformer 解码器用于文本生成。
  • 2020 年:GPT-3 震惊 NLP 领域,通过 1750 亿参数的预训练模型实现了令人惊艳的文本生成效果。

http://www.niftyadmin.cn/n/5841164.html

相关文章

自然语言处理-词嵌入 (Word Embeddings)

人工智能例子汇总:AI常见的算法和例子-CSDN博客 词嵌入(Word Embedding)是一种将单词或短语映射到高维向量空间的技术,使其能够以数学方式表示单词之间的关系。词嵌入能够捕捉语义信息,使得相似的词在向量空间中具有…

踏入编程世界的第一个博客

我,一个双非一本大一新生,普通的不能再普通了,面对宏伟庞大的计算机世界仍显得举手无措,我自以为自身仍有些许骨气,不想普普通通,甚是浑浑噩噩的度过四年大学,经历了高考的打击,双非…

Hot100之图论

200岛屿数量 题目 思路解析 把访问过的格子插上棋子 思想是先污染再治理,我们有一个inArea()函数,是判断是否出界了 我们先dfs()放各个方向遍历,然后我们再把这个位置标为0 我们岛屿是连着…

Linux环境下的Java项目部署技巧:环境安装

安装 JDK: 第上传 jdk 压缩安装包到服务器 将压缩安装包解压缩: tar -xvf jdk-8uXXX-linux-x64.tar.gz 配置环境变量: 编辑 /etc/profile 文件,在文件末尾添加以下内容: export JAVA_HOME/path/to/jdk //JAVA_HOME…

51单片机 01 LED

一、点亮一个LED 在STC-ISP中单片机型号选择 STC89C52RC/LE52RC;如果没有找到hex文件(在objects文件夹下),在keil中options for target-output- 勾选 create hex file。 如果要修改编程 :重新编译-下载/编程-单片机重…

分库分表技术方案选型

一、MyCat 官方网站,技术文档 MyCat是一款由阿里Cobar演变而来的用于支持数据库读写分离、分片的数据库中间件。它基于MySQL协议,实现了MySQL的协议和能力,并作为代理层位于应用和数据库之间,可以隐藏底层数据库的复杂性。 原理…

基于YOLO11的遥感影像山体滑坡检测系统

基于YOLO11的遥感影像山体滑坡检测系统 (价格90) 按照7:2:1随机划分:训练集 6736张 验证集 1924张 测试集 963张 包含 [slide] [山体滑坡] 1种情况 通过PYQT5构建UI界面,包含图片检测,视频检测&…

三. Redis 基本指令(Redis 快速入门-03)

三. Redis 基本指令(Redis 快速入门-03) 文章目录 三. Redis 基本指令(Redis 快速入门-03)1. Redis 基础操作:2. 对 key(键)操作:3. 对 DB(数据库)操作4. 最后: Reids 指定大全(指令文档): https://www.redis.net.cn/order/ Redis…