一句话定义:LSTM(Long Short-Term Memory,长短期记忆网络)和 GRU(Gated Recurrent Unit,门控循环单元)都是循环神经网络(Recurrent Neural Network, RNN)的改进版,核心是用“门”来控制信息在时间步之间保留多少、丢弃多少,从而记住更长的上下文。
普通 RNN 像每读一页就把前面内容擦淡一点,读到最后一页,早先的伏笔已经模糊。LSTM 则像带了一个记事本和三个管理员。它的细胞状态(cell state)是一条贯穿整段序列的传送带,信息在上面只做少量加减,不容易被冲散。
三个门各管一件事:
- 遗忘门(forget gate):决定旧记忆扔掉多少。比如读到“我本来很喜欢这家店,但上周去了一次,服务很差”,遇到“但”之后,前面“喜欢”的情绪就该被削弱。
- 输入门(input gate):决定新信息写进记忆多少。看到“服务很差”,输入门把这条负面信息写进记事本。
- 输出门(output gate):决定当前时刻要读出什么。预测下一个词时,可能只需要输出“负面”这个态度,而不必把“排队”“上周”全部倒出来。
这些门的开合程度由 0 到 1 之间的权重表示,通常用 sigmoid 函数算出来,所以“门”不是真的开关,而是可学习的比例。
GRU 是 LSTM 的简化版。它把遗忘门和输入门合并成更新门(update gate),再保留一个重置门(reset gate),重置门决定计算新候选记忆时参考多少旧记忆。GRU 没有独立的细胞状态,隐藏状态直接更新,因此参数通常更少、训练更快。两者谁更好没有绝对答案,常见经验是:数据少、追求速度时 GRU 是很好的基线;任务需要更细粒度地控制记忆时,LSTM 可能更合适。实际选型应以在验证集上的实验为准。
| 维度 | LSTM | GRU |
|---|---|---|
| 门的数量 | 3 个:遗忘、输入、输出 | 2 个:更新、重置 |
| 记忆载体 | 细胞状态 + 隐藏状态 | 只有隐藏状态 |
| 参数量 | 通常更多 | 通常更少 |
| 训练速度 | 相对慢一些 | 相对快一些 |
| 典型场景 | 长依赖、精细控制 | 轻量模型、快速基线 |
和相邻概念比:普通 RNN 没有门控,长序列上容易梯度消失;Transformer 用自注意力(self-attention)并行处理整段序列,不按时间步递推,在长程依赖和大规模训练上往往更强。但 LSTM/GRU 在流式处理、低延迟、小模型或传感器时序等场景仍有位置。
对从业者,看到序列任务先问三件事:序列多长、是否要求流式、算力多少。可以先用 GRU 跑基线,再用 LSTM 或 Transformer 对比。具体框架 API 的参数含义以官方文档为准。对普通人,输入法联想、语音转文字、销量和天气预测背后,可能就有这类门控结构。理解“门控”,也就理解了序列模型最朴素的一件事:不是所有过去都值得记住,关键是学会什么时候忘、什么时候写、什么时候读。
