在自然语言处理、时序预测、语音识别领域,序列依赖是绕不开的核心问题。普通全连接网络、CNN 只能处理固定长度、无先后关联的数据,无法感知文本语序、时间先后带来的语义变化。 而 RNN 及其衍生变体 LSTM、GRU,通过内置记忆传递机制,专门建模有序序列的上下文关联。本文从零拆解整套体系,无 PPT 原图、无工程代码,纯原理 + 逻辑梳理,新手也能建立完整知识框架。
一、基础 RNN:循环神经网络
1.1 核心定义与 "循环" 本质
RNN 全称 Recurrent Neural Network(循环神经网络),核心设计思路:将上一个时间步的隐藏状态,作为下一个时间步的附加输入,形成循环记忆链路。
- 普通网络:每次计算相互独立,没有历史信息留存;
- RNN 网络:每一步运算都会携带前文 / 前序时序的特征,天然适配有序数据。
单时间步固定三层结构:输入层、隐藏层、输出层 输入分为两部分:当前时刻原始特征、上一步隐藏记忆; 输出分为两部分:当前时刻预测结果、传递给下一阶段的隐藏记忆。
1.2 适用业务场景
所有存在先后逻辑的序列任务: 文本类:情感分析、用户意图识别、逐字文本生成; 时序类:销量预测、设备传感器时序故障判断; 语音类:单句语音特征提取。
举个直观逻辑:句子今天想吃火锅按字拆分依次送入模型,处理 "想" 时,模型会携带 "今天" 的记忆;处理 "火锅" 时,融合前面所有文字的语义,最终依靠完整上下文输出分类结果。
1.3 四大输入输出结构分类
根据输入、输出序列长度差异,RNN 分为 4 种应用形态:
- N 对 N(等长序列) 输入 N 个单元,输出同等长度 N 个结果;多用于对联、短句逐字生成,输入 4 个字,输出 4 个字。
- N 对 1(多输入单输出) 完整长序列输入,仅输出一个结果;主流用于文本分类、影评打分、意图识别。
- 1 对 N(单输入多输出) 单个特征作为输入,生成一整条序列;典型场景看图说话,输入图片向量,输出描述文本。
- N 对 M(变长 Seq2Seq) 输入、输出长度无强制约束,由编码器、解码器两段 RNN 拼接而成;机器翻译、长文本摘要、语音转文字均基于该架构。
1.4 内部计算逻辑
单步隐藏状态通用公式:

变量释义: :当前时间步原始输入;
:上一步循环传递的记忆;
:输入特征权重;
:循环记忆权重;
:激活函数,将数值约束在 -1,1,防止数值爆炸。
1.5 原生 RNN 优缺点
优势
- 结构极简,权重参数少,硬件算力消耗低;
- 短序列任务收敛速度快,短句、短时时序数据效果稳定。
致命缺陷
长序列反向传播时会出现梯度消失 / 梯度爆炸: 序列过长时,梯度需要连续多次矩阵连乘,梯度值会无限趋近 0 或无限放大。模型会丢失远距离信息,一篇长文本只能记住末尾十几个字符,完全无法捕捉长距离依赖。
二、LSTM:长短时记忆网络(RNN 优化方案)
2.1 模型定位
LSTM(Long Short-Term Memory)是原生 RNN 的改良变体,新增门控机制 + 独立细胞状态两条信息通路,从数学层面缓解长序列梯度消失问题,是长文本建模的经典方案。
2.2 四大核心组件(3 门控 + 细胞状态)
细胞状态是 LSTM 的核心长期记忆通道,全程仅做加减运算,梯度衰减速度极慢;三类门控通过 sigmoid 输出 0~1 权重,实现信息选择性留存、丢弃。
-
遗忘门 输入:当前数据 + 上一步隐藏记忆; 作用:筛选历史长期记忆,权重趋近 0 代表丢弃旧信息,趋近 1 代表完整保留前文内容。
-
输入门 分为两层运算:sigmoid 生成信息筛选权重、tanh 生成当前时刻新增记忆; 作用:过滤当前输入中的无效特征,把有效信息写入长期细胞状态。
-
细胞状态(长期记忆主干道) 更新公式:

遗忘门过滤旧记忆,it输入门叠加新记忆,完成长期记忆更新。
-
输出门 sigmoid 筛选细胞状态中需要对外输出的内容,配合
压缩数值,生成当前时刻隐藏状态,同时传递至下一时间步。
2.3 Bi-LSTM 双向 LSTM 拓展
单向 LSTM 仅能读取前文,无法利用后文语义,双向 LSTM 解决该问题:
- 正向分支:从序列头部遍历至末尾,记录上文特征;
- 反向分支:从序列末尾遍历至头部,记录下文特征;
- 每个时间步将正反两路特征拼接,作为最终输出。
适用场景:分词、命名实体识别、句法分析;代价是模型参数、计算量直接翻倍,训练耗时大幅提升。
2.4 LSTM 优缺点
优势
门控 + 双通道记忆结构,大幅削弱长序列梯度消失,长文本、长时序预测精度远高于原生 RNN。
劣势
内部三套门控叠加多层矩阵运算,计算逻辑复杂,同等硬件条件下训练速度远慢于 RNN。
三、GRU:门控循环单元(轻量化 LSTM)
3.1 模型定位
GRU(Gated Recurrent Unit)同样为解决长依赖而生,是 LSTM 的轻量化简化版本:取消独立细胞状态,仅保留两套门控,在精度损失极小的前提下,大幅降低计算开销。
3.2 两大核心门控
-
重置门 由 sigmoid 生成 0~1 权重,控制上一步历史记忆的复用比例;权重接近 0 时,直接抛弃全部历史,仅依靠当前输入计算。
-
更新门 平衡新旧记忆的核心组件,更新公式:

趋近 0:完全保留上一步历史记忆;
趋近 1:抛弃历史,仅使用当前新生成特征。
3.3 Bi-GRU 双向 GRU 拓展
逻辑与 Bi-LSTM 完全一致,正反双向遍历序列后拼接特征;相比双向 LSTM 参数量更少,算力不足的工程场景优先选用。
3.4 GRU 优缺点
优势
- 具备 LSTM 捕捉长距离依赖的能力,梯度消失问题得到缓解;
- 仅两套门控,参数量更少,训练、推理速度显著优于 LSTM;
- 小数据集下过拟合风险更低。
劣势
依旧无法彻底根除梯度消失;且所有 RNN 系模型存在统一短板:时序串行计算,无法并行处理序列,超长文本效率偏低,这也是后续 Transformer 诞生的核心动因。
四、RNN / LSTM / GRU 横向对比总结
| 模型 | 门控数量 | 记忆通道 | 长序列建模能力 | 训练速度 | 推荐适用场景 |
|---|---|---|---|---|---|
| 原生 RNN | 无 | 单隐藏状态 | 很差,长距离记忆丢失 | 最快 | 超短句、短时简单时序 |
| LSTM | 遗忘 / 输入 / 输出 3 个 | 细胞状态 + 隐藏状态双通道 | 最优 | 最慢 | 长文本翻译、长时序预测、高精度 NLP 任务 |
| GRU | 重置 / 更新 2 个 | 单融合记忆通道 | 中等(略弱于 LSTM) | 中等 | 工业通用场景,平衡精度与算力 |
五、核心知识点复盘
- 为什么 RNN 叫循环网络? 上一个时间步的隐藏状态循环传递,作为下一阶段输入,实现历史记忆留存。
- 原生 RNN 最大缺陷? 长序列反向传播梯度消失 / 爆炸,无法捕捉远距离上下文依赖。
- LSTM 与 GRU 核心区别? LSTM 拥有独立细胞长期记忆、三套门控,长序列精度更高;GRU 简化结构为两套门控,训练速度更快。
- 双向结构(Bi-LSTM/Bi-GRU)作用? 同时利用前文、后文双向语义信息,提升语义理解能力,但计算成本翻倍。
- Seq2Seq(N 对 M)架构用途? 适配输入输出长度不一致的任务,机器翻译、文本摘要均依赖该结构。
- 所有 RNN 变体的共同局限? 时序计算串行执行,无法并行加速,超长文本效率远低于基于自注意力的 Transformer 模型。