第 5 章 · 02 循环神经网络 本节摘要:本节讲专为时序数据设计的循环神经网络(Recurrent Neural Network,RNN)。第 01 节的 MLP 把每个时间点独立看待,无法利用「过去 N 天因子序列」,而 RNN 通过隐藏状态在时间步之间传递信息,天然适合捕捉金融数据的时序依赖。但原始 RNN 在长序列上会遭遇严重梯度消失,只能记短期。为此引入长短期记忆网络(LSTM),用输入门、遗忘门、输出门三个门控精确控制信息的保留与遗忘,显著提升长程记忆能力。GRU 是 LSTM 的简化版,只保留更新门与重置门,计算更轻、效果接近。华泰 AI 系列第 9 篇把 RNN/LSTM 引入选股,实证它对个股的时序特征(如过去 30 天量价序列)有不错的建模能力。
本节摘要:本节讲专为时序数据设计的循环神经网络(Recurrent Neural Network,RNN)。第 01 节的 MLP 把每个时间点独立看待,无法利用「过去 N 天因子序列」,而 RNN 通过隐藏状态在时间步之间传递信息,天然适合捕捉金融数据的时序依赖。但原始 RNN 在长序列上会遭遇严重梯度消失,只能记短期。为此引入长短期记忆网络(LSTM),用输入门、遗忘门、输出门三个门控精确控制信息的保留与遗忘,显著提升长程记忆能力。GRU 是 LSTM 的简化版,只保留更新门与重置门,计算更轻、效果接近。华泰 AI 系列第 9 篇把 RNN/LSTM 引入选股,实证它对个股的时序特征(如过去 30 天量价序列)有不错的建模能力。本节讲清 RNN 原理、梯度消失、LSTM 门控机制与金融应用。
内容来源:仓库研报 华泰 AI 系列第 9 篇(循环神经网络),知识结构化整理。
⚠️ 学习提示:RNN/LSTM 虽然强大,但训练慢、调参难。在量价选股里,它的提升相对 MLP 并不总是显著——别因为「模型更高级」就盲目上,先看是否真有时序结构可挖。
阅读完本节,你应当能够:
金融数据本质是时序数据——一只股票今天的收益,和它过去一段时间的走势、波动、成交量密切相关。比如「连续放量上涨 5 天后」与「地量横盘 5 天后」,未来走势的概率分布显然不同。这种「依赖过去序列」的结构,MLP 难以捕捉:它只看当前截面,等于丢了时间维度的信息。
RNN 正是为时序数据设计。它在每个时间步接收一个输入,并维护一个隐藏状态(hidden state),把过去的信息「压缩」进去,再传给下一个时间步。这样,当前输出就同时依赖当前输入和历史信息,形成「记忆」。
华泰 AI 系列第 9 篇把 RNN/LSTM 引入选股,动机正是利用个股的时序量价特征(如过去 30 天的开高低收成交量序列),让网络自动学习时序模式,而非只用最新一期的因子截面。实证表明,在加入时序信息后,模型的预测能力(尤其对短期反转/动量)有提升。
RNN 的核心是「循环」——同一个网络单元在时间步之间重复使用,隐藏状态在时间上传递。对时间步 t:
h_t = activation(W_hh * h_{t-1} + W_xh * x_t + b) # 隐藏状态更新 y_t = W_hy * h_t + b_y # 输出
其中 h_t 是当前隐藏状态,h_{t-1} 是上一时间步的隐藏状态,x_t 是当前输入。展开来看,RNN 相当于一个「很深」的网络,每个时间步是一层,权重共享。
直觉上,隐藏状态 h_t 就像网络的「短期记忆」,它累积了从序列开始到当前 t 的信息。每个时间步,网络一边接收新输入,一边更新记忆。最后一个时间步的隐藏状态 h_N,可以看作整个序列的「摘要」,常用来做序列级预测(如预测未来收益)。
RNN 训练用随时间反向传播(Backpropagation Through Time,BPTT),本质仍是链式法则,只是把网络在时间上展开。问题在于:当序列较长时,梯度要从最后一个时间步传回第一个,中间要乘很多次权重矩阵与激活函数导数,呈现连乘效应——这与第 01 节 MLP 的梯度消失同理,只是 RNN 更严重,因为序列长度动辄几十上百。
结果就是:原始 RNN 只能记住短期信息,长期依赖学不到。比如想让 RNN 记住「30 天前出现过大单净流入」并对今天预测产生影响,基本不可能——梯度传不到那么远,底层权重不更新。
这个局限催生了 LSTM(长短期记忆网络),专门解决长程依赖问题。
长短期记忆网络(Long Short-Term Memory,LSTM)在 1997 年提出,核心创新是引入细胞状态(cell state)和三个门控(gate),让网络能精确控制信息的保留、更新与遗忘。门控本质上是一个 Sigmoid 层(输出 0-1),0 表示「全丢弃」,1 表示「全保留」。
LSTM 单元在每个时间步做三件事:
| 门控 | 作用 | 直觉 |
|---|---|---|
| 遗忘门 f_t | 决定从细胞状态丢弃多少旧信息 | 「过去的事,还要记多少?」 |
| 输入门 i_t | 决定把多少新候选信息写入细胞状态 | 「新来的事,记多少?」 |
| 输出门 o_t | 决定细胞状态有多少输出到隐藏状态 | 「记住的事,现在用多少?」 |
更新过程用文字描述:
💡 核心直觉:细胞状态像一条贯穿时间步的「传送带」,信息可以几乎无损地流动(因为加法更新而非乘法),这就是 LSTM 能学长程依赖的原因——梯度有了一条「快车道」,不会被连乘效应吞掉。三个门控则像传送带上的「阀门」,精确控制什么时候记、什么时候忘。
门控循环单元(Gated Recurrent Unit,GRU)是 2014 年提出的 LSTM 简化版,只保留两个门:
GRU 还去掉了单独的细胞状态,直接用隐藏状态承运记忆,参数比 LSTM 少约三分之一,训练更快。
| 模型 | 门控数 | 是否有独立细胞状态 | 参数量 | 效果 |
|---|---|---|---|---|
| LSTM | 3(输入/遗忘/输出) | 有 | 多 | 长程依赖强,经典 |
| GRU | 2(重置/更新) | 无 | 少约 1/3 | 与 LSTM 接近,训练快 |
💡 选型心法:LSTM 与 GRU 在多数任务上效果接近,没有绝对优劣。数据量小、追求速度选 GRU;数据量大、追求极致效果选 LSTM。华泰 AI 9 主要用 LSTM,但实践中可两者都试。
华泰 AI 9 的应用范式:
实证结论:RNN/LSTM 在时序量价特征上,预测 IC 优于 MLP,尤其能捕捉短期反转/动量这类强时序效应。但也面临挑战:
RNN/LSTM 虽适合时序,但也有局限:
这些局限正是后来 Transformer(第 6 章 BERT 的基础)兴起的原因——它用自注意力机制并行处理整个序列,且能直接建模任意两个时间步的关系,在多数时序任务上超越了 RNN。
⚠️ 学习提示:RNN/LSTM 是理解时序建模的重要一环,但不是终点。华泰 AI 系列后续也探索了 Transformer 类结构。学本节时,重点理解「门控如何控制记忆」这个思想,它会在很多地方复用(包括第 6 章的 GAN、第 8 章的因子挖掘网络)。
h_t = activation(W_hh*h_{t-1} + W_xh*x_t + b);隐藏状态是「短期记忆」。下一节,我们看卷积神经网络(CNN)——它用卷积核扫描序列,挖掘量价数据的局部模式(如连续放量、长上影线),与 RNN 互补。