从RNN encoder到transformer encoder:参数化函数+数据统计学习
Date:
RNN Encoder 和 Transformer Encoder 都是把输入序列编码成向量表示的结构,但它们的核心机制完全不同。
RNN:记忆链条
word1 → word2 → word3 → word4
信息逐步传递。
Transformer:会议讨论
word1 ↔ word2word1 ↔ word3word1 ↔ word4word2 ↔ word3...
所有词直接沟通。
✅ 一句话总结
| 模型 | 本质 |
|---|---|
| RNN Encoder | 顺序记忆 |
| Transformer Encoder | 全局注意力 |
假设有一句话:
I love machine learning
如果计算机要理解 love 的意思,其实需要看:
I
machine
learning
因为:
谁 love? → I
love 什么? → machine learning
所以:
一个词的意思依赖整个句子。
以前的模型(RNN)是这样理解句子的:
I → love → machine → learning
一步一步传递信息。
问题:
前面的词容易被忘记
计算很慢(不能并行)
Transformer 直接让 每个词看所有词。
例如:
I love machine learning
计算时:
I 看 love machine learning
love 看 I machine learning
machine 看 I love learning
learning 看 I love machine
这就叫:
Self-Attention(自注意力)
Self-Attention 可以可以想象成:
每个词都在开会讨论。
例如:
love :我应该关注谁?
它可能认为:
I 权重 0.4
machine 权重 0.3
learning 权重 0.3
于是:
love 的新表示 = 0.4 * I + 0.3 * machine + 0.3 * learning
这样:
每个词都会得到一个“结合全句理解”的新向量。

如果你愿意,我可以再给你讲一个非常重要但很多人没讲清楚的问题:
为什么 Transformer 的复杂度是 O(n²),但仍然比 RNN 更快?
这个理解之后,你会彻底明白为什么 大模型全部是 Transformer。
Transformer 的核心是根据统计概率吗?
本质是:参数化函数 + 数据统计学习。
更准确地说:Transformer 通过大量训练数据,学习一组参数,使得输入 → 输出的概率最大。
所以:
训练阶段:是统计学习(最大化概率)——参数是训练出来的,模型会在训练中不断调整:让预测更准确。
推理阶段:是数学计算(矩阵运算)——最大化正确词出现的概率:统计概率 + 神经网络函数拟合
一、核心思想区别
1️⃣ RNN Encoder(循环编码器)
基于循环神经网络,按时间顺序处理序列。
常见结构:
Recurrent Neural Network (RNN)
Long Short-Term Memory (LSTM)
Gated Recurrent Unit (GRU)
基本思想:
h_t = f(x_t, h_{t-1})每个时间步:
输入当前 token
x_t和上一步的隐藏状态
h_{t-1}输出新的隐藏状态
h_t
因此序列必须 一步一步计算。
示例:
x1 → h1x2 + h1 → h2x3 + h2 → h3...
最后得到:
Encoder Output = {h1, h2, h3 ... hn}或使用最后一个状态:
context = hn
2️⃣ Transformer Encoder
Transformer 不使用循环结构,而是使用:
Self-Attention(自注意力)
来自论文:
Attention Is All You Need
基本思想:
每个 token 直接和所有 token 建立关系。
Attention(Q,K,V)
每个词都会计算:
token_i → attention → 所有 token
例如句子:
I love machine learning
love 会同时关注:
Imachinelearning
结构:
Input Embedding ↓Self Attention ↓Feed Forward ↓Stack N layers
二、计算方式区别
| RNN Encoder | Transformer Encoder | |
|---|---|---|
| 计算方式 | 顺序计算 | 并行计算 |
| 依赖结构 | h_t依赖h_t-1 | 所有token互相attention |
| GPU利用 | 很差 | 很好 |
| 复杂度 | O(n) | O(n²) |
三、长距离依赖能力
RNN
存在问题:
梯度消失
远距离信息难以记住
例如:
The book that you gave me yesterday is good
book 和 is 的关系很远。
RNN需要:
book → ... → ... → ... → is
信息会逐渐衰减。
即使 LSTM/GRU 也只是缓解。
Transformer
直接 Attention:
book ↔ is
路径长度:
1
所以 长距离建模能力更强。
四、训练效率
RNN
序列必须这样计算:
t1 → t2 → t3 → t4
不能并行。
GPU利用率很低。
Transformer
可以:
t1 t2 t3 t4↓ ↓ ↓ ↓同时计算
GPU利用率非常高。
这也是为什么:
大模型全部使用 Transformer
例如:
GPT-4
BERT
LLaMA
五、位置处理方式
RNN
天然有顺序:
x1 → x2 → x3
顺序信息自然存在。
Transformer
因为并行计算:
x1 x2 x3
没有顺序。
因此需要:
Positional Encoding
例如:
embedding + position
六、模型结构对比
RNN Encoder
x1 → RNN → h1x2 → RNN → h2x3 → RNN → h3...
特点:
sequential
memory state
Transformer Encoder
x1 x2 x3 x4 ↓Self Attention ↓Feed Forward ↓Stack Layers
特点:
global attention
parallel
七、性能对比总结
| 特性 | RNN Encoder | Transformer Encoder |
|---|---|---|
| 并行能力 | ❌ | ✅ |
| 长距离依赖 | ❌ | ✅ |
| 训练速度 | 慢 | 快 |
| GPU效率 | 低 | 高 |
| 可扩展性 | 差 | 极好 |
八、为什么 Transformer 取代 RNN
在 2017 年论文:
Attention Is All You Need
之后:
NLP
语音
CV
多模态
几乎全部改为 Transformer。
例如:
| 任务 | 模型 |
|---|---|
| 机器翻译 | Transformer |
| NLP理解 | BERT |
| 生成模型 | GPT |
| 多模态 | CLIP |
转载本站文章《从RNN encoder到transformer encoder:参数化函数+数据统计学习》,
请注明出处:https://www.zhoulujun.cn/html/theory/ComputerScienceTechnology/AI/9772.html