1. 课程导入
欢迎进入《TFT多变量金融预测与可解释性实战》。在正式动手写模型之前,我们需要先建立一张“全局地图”:这门课到底解决什么问题、TFT(Temporal Fusion Transformer)在金融场景中扮演什么角色、可解释性为什么不是附加功能,以及我们将沿着怎样的路线从数据走到可解释的预测结果。本章不涉及复杂公式推导,而是帮助你在脑中搭建一个清晰、可复用的知识骨架。
一、学习目标:从“能预测”到“能解释、能落地”
金融预测与一般时间序列预测最大的区别在于:市场存在低信噪比、非平稳、多因子耦合和强监管约束。一个只追求误差指标的“黑箱”模型,很难通过风控、投研或合规评审。因此,本课程设定四个递进目标:
- 理解TFT结构:掌握变量选择网络、门控残差网络、静态协变量编码器、时序融合解码器与分位数输出之间的协作关系。
- 构建多变量预测管线:能够把价格、成交量、宏观指标、情绪因子等异构输入组织成TFT可消费的数据集。
- 掌握可解释性工具:读懂注意力权重、变量重要性、时序显著性,并能把解释结果翻译成业务语言。
- 完成端到端实战:从数据清洗、特征工程、训练调参到回测评估与解释报告,形成可复现的工程闭环。
二、核心概念:TFT为什么适合金融多变量预测
TFT最初由Google在2019年提出,用于多步时间序列预测。它的核心价值在于同时处理三类输入:静态协变量(如行业、板块)、已知未来输入(如日历、财报日期)和仅历史可观测输入(如历史收益率、成交量)。金融预测恰好需要这种“混合信息”能力。
与LSTM、Transformer或XGBoost相比,TFT的差异化能力体现在三点:第一,变量选择网络为每个输入特征学习权重,自动抑制噪声因子;第二,门控机制让模型在不同市场状态下动态调节信息流;第三,分位数输出直接给出预测区间,而不是单点估计。这三点共同支撑了金融场景对鲁棒性和可解释性的要求。
三、方法流程:一条可复现的实战主线
为了让课程内容可落地,我们把整个项目拆成六个阶段。每个阶段都有明确的输入、输出和验收标准,避免“训练完却不知道结果是否可信”。
| 阶段 | 核心任务 | 关键产出 | 常见风险 |
|---|---|---|---|
| 数据准备 | 对齐时间索引、处理缺失与停牌 | 统一频率的多变量面板 | 未来信息泄露 |
| 特征工程 | 构造滞后、滚动、日历与静态特征 | 训练/验证/测试数据集 | 窗口重叠导致过拟合 |
| 模型训练 | 配置TFT超参数与分位数损失 | 可复现的训练检查点 | 学习率与批量设置不当 |
| 回测评估 | 滚动预测、误差与区间覆盖率 | 样本外评估指标 | 只看MSE忽略方向性 |
| 可解释分析 | 提取注意力与变量重要性 | 因子贡献排序与热力图 | 把相关性当因果 |
| 报告输出 | 整合图表与业务结论 | 可评审的解释报告 | 解释与预测脱节 |
在工程实现上,我们推荐使用PyTorch Forecasting或直接基于PyTorch Lightning构建训练循环。下面是一个最小化的配置片段,用于说明TFT的关键参数如何组织:
tft_config = {
"hidden_size": 64,
"lstm_layers": 2,
"dropout": 0.1,
"attention_head_size": 4,
"max_encoder_length": 60,
"max_prediction_length": 5,
"quantiles": [0.1, 0.5, 0.9],
"learning_rate": 1e-3,
"batch_size": 128,
"max_epochs": 50
}
四、案例场景:用TFT预测多因子股票收益
假设我们要预测某只股票未来5个交易日的收益率区间。输入包括:过去60天的开高低收、成交量、换手率,同期的大盘指数收益率、行业指数收益率、利率与汇率,以及静态的行业分类和市值分组。模型输出0.1、0.5、0.9三个分位数。
训练完成后,我们不仅得到预测区间,还能回答三个业务问题:第一,过去60天中哪些交易日对当前预测影响最大;第二,在全部输入因子中,哪些因子的变量选择权重最高;第三,当市场波动率上升时,模型是否自动降低了对情绪因子的依赖。这些答案正是可解释性层要交付的内容。
五、误区与复盘:初学者最容易踩的五个坑
- 把TFT当成万能黑箱:不配置静态协变量和已知未来输入,模型退化为普通序列模型,解释性也大打折扣。
- 忽略数据泄露:在滚动窗口中使用未来信息构造标签,导致回测虚高。
- 只看点预测:金融决策更关心区间和尾部风险,分位数输出必须纳入评估。
- 过度解读注意力:注意力权重反映模型内部信息流,不等同于因果效应。
- 解释与预测分离:解释结果没有回写到特征迭代或风控规则中,导致课程结束后无法复用。
本章建立了课程的整体认知框架:以多变量金融数据为输入,以TFT为核心模型,以可解释性为交付标准,以六阶段实战路线为推进节奏。接下来,你将逐步进入数据、模型与解释的具体环节,把这张地图变成可运行的代码与可评审的结论。