Transformer 技术文档
Transformer 是基于自注意力机制(Self-Attention)的深度学习架构,在金融时序预测、情感分析与跨资产因子建模等领域取得突破性进展,是前沿量化策略的重要组成部分。
模型简介
Transformer 由 Vaswani 等人于 2017 年提出,其核心是多头自注意力机制(Multi-Head Self-Attention):
$$\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$
通过注意力权重捕捉序列中任意位置间的依赖关系,无需像 LSTM 那样逐步传递隐状态,在长时序金融数据上优势显著。
原始论文:Attention Is All You Need — Vaswani et al., NeurIPS 2017
金融专用变体
| 模型 | 特点 | 官方链接 |
|---|---|---|
| FinBERT | 金融文本情感分析,基于 BERT 在金融语料微调 | ProsusAI/finbert |
| Temporal Fusion Transformer (TFT) | 专为多步时序预测设计,支持静态/动态特征 | TFT 论文 |
| Informer | 针对长序列预测优化,O(L log L) 复杂度 | Informer 论文 |
| PatchTST | 将时序切片为 patch,高效捕捉局部模式 | PatchTST 论文 |
在 A 股量化策略中的应用
1. 金融新闻情感分析(FinBERT)
FinBERT 在大量金融文本(年报、研报、新闻)上预训练,可直接对 A 股公告、问询函、财经新闻进行情感分类(正面/中性/负面),输出情感分数作为 Alpha 因子:
python
from transformers import BertTokenizer, BertForSequenceClassification
import torch
tokenizer = BertTokenizer.from_pretrained('ProsusAI/finbert')
model = BertForSequenceClassification.from_pretrained('ProsusAI/finbert')
inputs = tokenizer("公司营收超预期,净利润同比增长30%", return_tensors='pt')
outputs = model(**inputs)
probs = torch.softmax(outputs.logits, dim=-1) # [negative, neutral, positive]2. 多步时序预测(TFT)
TFT(Temporal Fusion Transformer)支持多变量输入(K 线 OHLCV + 因子 + 宏观变量),同时处理静态编码特征(行业、板块)和动态时序特征,输出带分位数区间的预测,适合 A 股风险控制。
3. 跨股票注意力(Cross-Asset Attention)
使用 Transformer 编码器对同一时刻多只股票的特征做 Cross-Attention,捕捉行业内部联动效应(龙头股带动其他股票),构建图注意力选股模型。
4. Alpha 因子序列建模
将个股近 60 日的多因子截面数据作为序列输入 Transformer,利用自注意力发现因子在时序维度的强化/衰减规律,生成动态因子权重。
核心概念
| 概念 | 说明 |
|---|---|
| 位置编码 | Transformer 无序列顺序感知,需加入正弦/余弦位置编码 |
| 多头注意力 | 多组 Q/K/V 并行,捕捉不同子空间依赖 |
| Dropout | p=0.1–0.3,防止金融数据过拟合 |
| Layer Norm | 每层归一化,稳定金融数据量纲差异 |
d_model | 隐藏层维度,金融序列推荐 64–256 |
性能特点
优势:
- 自注意力天然捕捉长距离价格/因子依赖,优于 LSTM/GRU
- FinBERT 等预训练模型无需从头训练,迁移学习成本低
- 支持并行训练,比 RNN 系列训练快
劣势:
- 参数量大,A 股历史数据有限时过拟合风险高
- 训练需要 GPU,推理延迟相比树模型高
- 可解释性弱,因子重要性不如 XGBoost/LightGBM 直观
