循环神经网络(Recurrent Neural Network,RNN)是一类专门处理序列数据的神经网络,它让信息在隐藏状态中循环传递,从而对前后有先后关系的数据保持「记忆」。循环结构的雏形在20世纪80年代就已出现,2010年代在自然语言处理领域大放异彩。
工作原理
- 每处理一个时间步的输入,都结合上一步留下的隐藏状态,把信息一步步往后传
- 相当于网络「一边读一边记」,后面的输出理论上能看到更早的内容
- 但在很长的序列上会出现梯度消失或梯度爆炸,导致「记不住」太远的信息
- LSTM(长短期记忆)和GRU(门控循环单元)是RNN最著名的改进,引入「门」机制控制记忆的写入与遗忘,显著缓解了长距离依赖问题
- 即便如此,RNN仍须按顺序逐词串行计算,无法像Transformer那样并行加速,训练效率成为硬伤
- 2017年Transformer凭借并行计算与全局注意力横空出世,在机器翻译、语言建模等任务上快速全面超越RNN
- 如今主流大语言模型几乎都是Transformer架构,RNN更多活跃在低算力嵌入式场景、部分在线预测任务,以及教学与历史研究中,但其「带记忆处理序列」的思想仍被后世模型借鉴。