深度学习与因子挖掘

深度学习与因子挖掘


一、深度学习时序模型

LSTM(Long Short-Term Memory)

维度 说明
核心结构 遗忘门(决定丢弃) + 输入门(决定更新) + 输出门(决定输出)
遗忘门 f_t = sigmoid(W_f * [h_{t-1}, x_t] + b_f)
输入门 i_t = sigmoid(W_i * [h_{t-1}, x_t] + b_i)
候选记忆 C_tilde = tanh(W_c * [h_{t-1}, x_t] + b_c)
细胞状态 C_t = f_t * C_{t-1} + i_t * C_tilde
输出门 o_t = sigmoid(W_o * [h_{t-1}, x_t] + b_o)
隐状态 h_t = o_t * tanh(C_t)
LSTM vs RNN LSTM RNN
长程依赖 可捕捉(门控机制) 梯度消失/爆炸
训练稳定性 稳定 不稳定
参数量 4倍RNN 基准
竞赛推荐 时序任务首选 不推荐

GRU(Gated Recurrent Unit)

维度 说明
核心结构 重置门 + 更新门(比LSTM少一个门)
更新门 z_t = sigmoid(W_z * [h_{t-1}, x_t])
重置门 r_t = sigmoid(W_r * [h_{t-1}, x_t])
候选隐状态 h_tilde = tanh(W * [r_t*h_{t-1}, x_t])
隐状态 h_t = (1-z_t)h_{t-1} + z_th_tilde
LSTM vs GRU LSTM GRU
门数量 3个 2个
参数量 少(约3/4)
训练速度
表达能力 稍弱
竞赛建议 数据量大时 数据量小时/快速实验

时序建模实践

要点 说明
输入构造 滑动窗口:用前T步预测后1步
特征归一化 对每个特征做z-score归一化,避免量纲差异
序列长度 过短丢失长程信息,过长引入噪声,通常20~200
双向LSTM 同时利用前向和后向信息,但预测任务慎用(可能数据泄露)
多层堆叠 2~3层LSTM堆叠,增加表达能力

二、半监督学习

伪标签

步骤 说明
1. 训练初始模型 用有标签数据训练LSTM/GRU
2. 预测无标签数据 用模型预测,取高置信度样本
3. 混合训练 有标签+伪标签数据一起训练
4. 迭代优化 重复2-3,逐步提升

一致性正则

方法 说明
Dropout一致性 同一样本多次前向(不同Dropout),要求输出一致
数据扰动一致性 对输入加噪声,要求输出一致
时间扰动 对时序数据做时间偏移/缩放,要求预测一致

Mixup时序适配

维度 说明
方法 在特征空间做Mixup:x_mix = lambdax1 + (1-lambda)x2
注意 时序数据需对齐时间步再做Mixup
效果 正则化,提高泛化能力

三、高频因子挖掘

数据源

数据类型 字段 说明
订单簿(Order Book) 买/卖各10档价格和数量 反映市场供需
成交数据(Trade) 价格、数量、方向、时间 反映实际交易
K线数据 OHLCV(开高低收量) 聚合后的行情

订单簿因子

因子类别 示例因子 计算方式
价差因子 买卖价差 ask1 - bid1
深度因子 买卖力量比 sum(bid_qty) / sum(ask_qty)
加权因子 加权中间价 (bid1ask1_qty + ask1bid1_qty) / (bid1_qty + ask1_qty)
不平衡因子 订单不平衡 (bid_qty - ask_qty) / (bid_qty + ask_qty)
压力因子 买/卖压力 各档位量价加权

成交数据因子

因子类别 示例因子 计算方式
量价因子 成交量加权平均价(VWAP) sum(price*qty) / sum(qty)
方向因子 买卖比例 buy_qty / (buy_qty + sell_qty)
大单因子 大单占比 大单量 / 总成交量
动量因子 价格动量 price_t / price_{t-n} - 1

买卖单细分因子

细分维度 说明
主动买/主动卖 以卖价成交=主动买,以买价成交=主动卖
大单/中单/小单 按成交量划分,大单通常>均值+2sigma
买卖力量 主动买量 - 主动卖量,反映市场方向

联动因子

因子 说明
个股与大盘联动 个股收益率与大盘收益率的相关性
行业联动 同行业股票收益率的协动性
期现联动 期货与现货价格的价差变化

KMeans聚类因子

步骤 说明
1. 特征提取 对每只股票提取多维度特征(波动率、换手率、市值等)
2. 聚类 KMeans将股票分为K组
3. 因子构造 聚类标签作为类别因子,或组内均值/离差作为因子
4. 应用 同组股票具有相似特征,可用于配对交易或风险控制

四、因子评估

IC(Information Coefficient)

指标 公式 含义
IC corr(factor_rank, return_rank) 因子值与收益率的秩相关系数
IC均值 多期IC的平均 因子预测能力
IC标准差 多期IC的标准差 因子稳定性
ICIR IC均值 / IC标准差 风险调整后预测能力
ICIR评判标准 ICIR值 评价
优秀 > 0.5 强因子
良好 0.3 ~ 0.5 可用
一般 0.1 ~ 0.3 弱因子
无效 < 0.1 噪声

分层回测

步骤 说明
1. 排序分组 按因子值将股票分为5~10组
2. 计算组收益 每组等权/市值加权收益
3. 多空组合 顶组 - 底组收益
4. 单调性 组间收益应单调递增/递减

五、模型融合

时序竞赛融合策略

方法 说明 适用场景
简单平均 多模型预测取平均 Baseline
加权平均 按验证集表现分配权重 最常用
Rank平均 将预测转为排名再平均 预测尺度不一致时
Stacking 基模型预测作为特征训练元模型 最强但易过拟合

多模型构建

模型类型 示例 融合价值
树模型 LightGBM, XGBoost 捕捉非线性交叉
深度模型 LSTM, GRU, Transformer 捕捉时序依赖
统计模型 ARIMA, Prophet 捕捉趋势和周期
线性模型 Ridge, Lasso 稳定基线

六、竞赛实战要点

要点 说明
时间泄露 严禁用未来数据,验证集按时间划分
特征稳定性 因子在训练集和测试集上IC应一致
过拟合风险 时序数据过拟合严重,需严格时间切分验证
因子衰减 因子有效性可能随时间衰减,需定期更新
交易成本 实盘需考虑滑点、手续费,竞赛通常忽略
多频率 日频/分钟频/Tick频,不同频率因子差异大

七、TabNet

维度 说明
核心思想 针对表格数据的深度学习模型,用注意力机制做特征选择
逐层特征选择 每层通过Mask选择部分特征,类似决策树的特征分裂
稀疏正则 鼓励每层只选少量特征,提高可解释性
优势 无需特征工程即可处理表格数据,端到端训练
劣势 在结构化数据上通常不如LightGBM,训练慢
竞赛应用 作为融合多样性来源,与树模型互补

八、Temporal Fusion Transformer(TFT)

维度 说明
核心思想 面向多变量多步预测的Transformer模型,显式处理静态/动态/已知未来输入
变量类型 静态协变量(不随时间变化) + 动态已知输入(未来可知) + 动态观测输入(仅历史)
可解释性 注意力权重可视化特征重要性,变量选择模块输出特征贡献度
分位数预测 输出多个分位数(10%/50%/90%),天然支持区间预测
优势 同时处理多种输入类型,可解释性强,多步预测准确
竞赛应用 多变量多步时序预测,需要可解释性时

九、因子中性化与正交化

维度 说明
因子中性化 去除因子与行业/市值等风险因子的相关性,只保留Alpha信息
实现方式 对因子值做截面回归:factor = alpha + betamarket_cap + gammaindustry + residual,取residual
因子正交化 去除多个因子之间的相关性,使因子独立
Symmetric正交 对称正交,保持因子排序不变
竞赛价值 中性化后的因子IC更纯净,正交化后的多因子组合更有效

十、因子衰减与动态因子权重

维度 说明
因子衰减 因子有效性随时间递减,近期IC高于远期IC
半衰期 因子IC衰减到一半所需时间,不同因子半衰期不同
动态权重 根据近期IC动态调整因子权重,近期IC高的因子权重更大
实现方式 指数加权IC均值:IC_weighted = sum(w_i * IC_i) / sum(w_i),w_i随时间指数衰减
竞赛应用 时序竞赛中动态调整特征权重,适应市场变化