返回知识库
AI 模型
2026-05-14
LSTM 在量化选股中的应用
门控结构、量化管线示意、Qlib 硬件量级与 4C8G 选型建议
LSTM
深度学习
RNN
LSTM 是什么
LSTM(Long Short‑Term Memory,长短期记忆网络)是一种带显式记忆单元的循环神经网络(RNN)。相比普通 RNN,它通过门控控制信息的写入、遗忘与读出,在长序列上更能缓解梯度消失,适合把「过去一段时间的因子/行情特征」编码成向量,再用于预测下期收益、打分或排序。
下面是一张单步展开示意图(便于对照三个门在算什么;具体维度取决于你的特征维与隐藏维)。
三个门在直觉上做什么
| 门 | 作用(直觉) | 对量化的含义 |
|---|---|---|
| 遗忘门 | 决定上一时刻细胞状态里哪些信息继续保留 | 市场格局切换时,模型可以「忘掉」过时的历史模式 |
| 输入门 + 候选记忆 | 把当前这一步的新证据写入细胞状态 | 新公布的因子/价量信息如何更新「长期记忆」 |
| 输出门 | 从细胞状态中抽取当前对外可用的隐表示 | 用于对接下游打分头(如对下期收益回归或排序损失) |
在量化选股里怎么用
典型管线(与 Qlib 一类框架对齐的思路):
建模要点(实践中常被问到):
- 序列长度 L:越长不一定越好;金融序列非平稳,过长窗口会混入早已失效的机制,且算力与显存上升。
- 横截面 vs 单序列:选股一般是「多标的、多日期」,训练时需要规范的样本构造(避免泄漏标签、对齐交易日历)。
- 标签:常见是对齐后的下期超额收益、排序标签或多任务;需与训练窗口、验证切分一致。
与 GRU、Tree、Transformer 的粗略对比
| 维度 | LSTM | 备注 |
|---|---|---|
| 参数量 | 通常多于 GRU | 表达能力更强,但也更易过拟合小数据 |
| 训练稳定性 | 依赖正则、早停、标准化 | 金融噪声大,验证集设计与时间切分很关键 |
| 可扩展性 | 时间步串行度高 | CPU 上长序列、大批次会慢;GPU 更占优 |
更多对比见百科《GRU》《Transformer》《LightGBM》。
在 Qlib 中使用时的硬件与规模(经验区间)
以下按「单机、日线级因子、常见 Alpha 因子集」给出的量级感,实际占用随股票池大小、历史长度、seq_len、batch、hidden_size、是否 GPU 差一个数量级都正常。
| 环节 | CPU / 内存大致感知 | 说明 |
|---|---|---|
| 数据准备 | 内存与磁盘 IO | 全市场多年 Alpha158 加载进内存可能数 GB 级;可适当缩小 universe 或缩短区间 |
| 训练(CPU) | 4 核可行但偏慢 | 适合小 universe、较短历史、hidden_size modest;建议减小 batch,开启混合精度若走 GPU |
| 训练(GPU) | VRAM 为主要瓶颈 | 序列模型主要吃 batch×序列×宽度;8GB 以下 GPU 需保守设置 |
| 回测 | 多为 CPU + 内存 | 瓶颈常在模拟撮合/换手逻辑与存储,而非单次 forward |
你当前环境:Ubuntu 4 核 / 8GB 内存
结论(优先级):
- 日常实验与回测主线:优先《LightGBM》一类树模型 —— 同配置下更省内存、更快迭代,更适合在 8GB 上做特征筛选与基线。
- 仍想用 LSTM:可以,但建议 缩小股票池或缩短训练区间、减小
hidden_size/seq_len/ batch,并严格用时间切分验证;能接受「单次训练较慢」再上线。 - 大规模全市场 + 长历史 + 大隐藏层:更像工作站或云上 GPU 的任务;8GB 内存机上容易 swap 抖动。
若面板侧对接 Qlib 的策略模板固定,可在不改代码的前提下,优先通过缩小数据_scope与降低模型宽度把路径跑通,再逐步加码。
小结
- LSTM 通过遗忘 / 输入 / 输出门维护可跨多期传播的状态,适合序列化因子建模。
- 在量化里成败往往不在「是否 LSTM」,而在标签、泄漏、验证切分、股票池与正则。
- 4C8G:LSTM 可做小规模验证,但首推 LightGBM 作主力;要扩展规模优先考虑更多内存或 GPU。