样本外泛化性不足是机器学习及深度学习模型共同面临的问题。股票市场中,股票特征的分布以及股票特征与预期收益的关系可能是时变的,经济环境的变化、政策预期的变化以及突发事件等都会对其造成显著的影响。未能考虑到这种分布偏移的模型可能会在市场状态频繁切换或剧烈变化的场景中出现回撤。训练数据与测试数据的采样偏差、真实市场环境的不确定性、训练数据量的局限性等是实践过程中产生分布偏移的因素。本报告中介绍了两种解决方法:融合市场状态、对抗训练。前者通过不同环境中交易模式的调整来实现样本外泛化,即以变化实现泛化,后者寻找不变的因果特征,即以不变实现泛化。
基础模型FactorVAE具有良好的选股效果。其包括四个部分:状态提取器、编码器、解码器以及预测器。状态提取器从输入的股票高频与低频量价序列中提取时序特征,并通过股票间的关联性进行调整;编码器借助未来收益率的后验信息将截面上的股票特征编码为一组风险因子收益分布;解码器利用个股特征生成风险因子暴露与超额收益,然后结合风险因子收益率生成股票收益;预测器类似于编码器,区别在于其不使用后验信息,而是直接将截面股票特征转化为先验风险因子收益率分布,在推理阶段替代编码器的功能。模型逐年滚动训练,生成因子月频Rank IC:14.20%,ICIR:1.31,五分组多头年化超额:14.08%。
融合市场状态信息对模型提升明显。从风格切换、估值、流动性、资金、情绪与风险共5个维度选择指标,希望给模型提供更全面的当前市场状态信息。将指标与股票特征进行融合,使模型能够适应不同状态的切换,进而提升模型的稳健性。该模块利用GRU从不同的市场序列中提取特征并映射为多组市场隐状态,即驱动市场特征变化的因素,最后利用交叉注意力得到市场信息对股票产生的影响并与股票特征进行拼接。基础模型在融合市场状态信息后,因子月频Rank IC:14.63%,ICIR:1.35,五分组多头年化超额:15.10%。
对抗训练通过筛选与生成不变特征提升模型的稳健性。训练分为三部分,不变特征生成模块、环境相关的预测模块与环境无关的预测模块。不变特征生成模块旨在从原始特征集中筛选或生成出预测能力不随环境变化而变化的特征,两个下游的预测器共享这组特征。该模块通过对不变特征的不断调整来缩小两个预测器的差距,即降低市场状态的信息增益。这种训练方式生成因子Rank IC:13.91%,ICIR:1.46,五分组多头年化超额:13.90%。
基于样本外泛化提升综合因子的指数增强策略表现优异。将融合市场状态、对抗训练以及前期报告中的分状态微调得到的因子合成为综合因子。基于综合因子的沪深300增强组合年化超额11.44%,中证500增强为 13.10%,中证1000增强为16.63%,国证2000增强为20.53%。
风险提示:以上分析基于模型结果和历史测算,存在模型失效风险。
在量化领域中,机器学习的一个重要目标就是生成优异且稳定的Alpha因子。然而,大多数机器学习模型通常会面临样本外泛化性(Generalization)不足的问题,即模型在训练集中的表现难以在测试集中持续。这个问题很大程度上来源于模型对样本的独立同分布假设。事实上,对于股票市场而言,股票特征的分布以及特征与未来收益的关系可能是时变的,例如政治和经济环境的变化、财务报告公布等定期事件以及地缘冲突等不可预见事件均可能会对投资者情绪和市场动态产生显著影响。这种变化被称为分布偏移(Distribution shift),未能考虑到这些分布变化的模型可能会在市场风格频繁切换或剧烈变化的场景中出现大幅回撤,稳健性的缺乏可能导致其难以适合于未来的市场应用。
一般来说,产生数据分布偏移的因素有很多,例如,训练数据与测试数据采样过程中的偏差,对数据集的分段划分可能会导致训练数据与测试数据来自于不同的时间与环境,之间可能存在着结构性差异;真实市场环境的不确定性,训练过程往往基于历史,未来的市场状态很难预知,也可能不存在于历史中;训练数据量的局限性,市场数据通常是有限的,难以反映出真实的全局特性。
对于分布偏移问题,目前的一般做法包括:数据增强(Data augmentation),即对于数据集进行变换、增加适当的噪声从而使数据分布多样化;异常值检测(Outlier detection),通过识别异常信息进行剔除或对模型加以提示等。本文主要尝试两类方式,包括融合市场状态与对抗训练(Adversarial training),前者将与识别市场状态有关的风格切换信息、市场情绪与风险信息等与股票特征进行融合,使用市场数据对当前环境做出分析,从而对模型加以提示,使其能够适应不同状态的切换,进而提升模型的稳健性;后者旨在从众多特征中筛选或生成真正影响未来收益的因素,期望这些因素同未来收益的关系与市场环境的变化无关,称之为不变特征(Invariant feature),其主要目的使寻找领域无关(Domain-irrelevant)的不变表示。
简而言之,融合市场状态方法通过不同环境中交易模式的轮动来实现样本外泛化,这与前期报告《适应市场状态与股票关联性的因子生成模型——机器学习系列之六》中分状态微调子模型殊途同归,即以变化实现泛化。而对抗训练则是寻找不变的因果特征,以不变实现泛化。
在前期系列报告中,我们专注于时间序列的建模与研究,从时间序列特征变换方法Signature与Log-signature到处理多变量混合频率的统一性架构 GSM,逐一进行介绍并应用于因子生成。
《基于Logsig-RNN的高频数据低频化选股因子——机器学习系列之三》详细地介绍了路径的Signature和Log-signature概念与性质,并初步尝试了Log-signature与RNN类网络的结合模型,即将长序列分割为不同的patch,在每个patch上使用Log-signature提取特征,然后使用RNN类网络融合各个patch上的特征,该篇作为Signature方法的应用初探。
《日内成交量分布因子及Logsig-Alpha因子生成——因子选股系列之六》创新地将Logsig特征提取器与带正交层的MLP相结合,前者能够从时间序列中提取全局信息,后者将信息进行转化,生成一批两两近似正交的因子,实现对单序列信息的高效挖掘与快速因子生成。
《强化学习与基于RRL的因子合成方法——机器学习系列之四》同样使用Logsig-Alpha因子生成器,但在输入层面进行多样化改进。分别实现了对成交量、收盘价、收盘价与开盘价、最高价与最低价四个输入组合的因子生成。合成因子表现优异。
《GSM-Alpha:提取时序特征的统一框架——机器学习系列之五》介绍了时间序列特征提取的统一框架GSM,在高频与混合频率特征提取场景中较传统方法优势显著。GSM支持梯度传播与GPU加速,使其能够嵌入到任何一个现有的神经网络架构中,有较强的灵活性。GSM-Alpha通过时序特征提取、特征间混合以及股票间关联信息的挖掘贡献显著的Alpha收益。
《适应市场状态与股票关联性的因子生成模型——机器学习系列之六》介绍了一种能够适应市场状态切换与股票关联性的变动的因子生成模型Adaptive-GSM-Alpha,突破了传统方法仅构建单一交易模式的局限性,提升了组合的稳定性。通过风险因子捕捉股票间的关联关系,趋势和波动性指标对市场状态进行划分,在原始模型的基础上进行微调并对每个状态构建子模型,子模型间动态加权使其能够适应状态的变化。
本报告的内容安排如下:
第2章介绍基础模型FactorVAE架构以及数据处理与模型训练过程,测试结果作为基准(Baseline);第3章主要介绍样本外泛化的两种方式,融合市场状态方法与对抗训练方法,之后的对比测试结果验证了方法的有效性,最后将多种泛化提升方法下的因子进行合成,展示合成因子在不同选股域中的表现以及基于合成因子的指数增强策略;第4章总结。
在数据输入方面,样本序列包括窗口期20天的分钟级行情数据以及窗口期60天的日级行情数据,基本行情包括OHLCV。风险因子数据选择与前期报告相同,选择流动性、杠杆、盈利波动性、盈利质量、盈利能力、投资质量、账面市值比、盈利率、长期反转、成长、动量、中市值、规模、Beta、特异性波动率以及股息率共计16个大类因子,数据来自于Ricequant。
数据处理方面,对于每个样本的行情数据序列,对成交量序列做对数处理,价格序列统一除以样本中的最后一个收盘价,最后进行时序 z-score 标准化;对于风险因子数据进行截面标准化。标签选择行业市值中性化以及截面标准化后的未来20日收益率。
每个交易日的所有股票数据作为一个batch。损失函数(Loss function)参考[1],包括3个部分,设定如下:
从2018年开始逐年滚动训练模型,训练模型时向过去回溯5年,前4年剔除末月为训练集,后1年剔除末月为验证集。设置早停轮数为20,最大迭代轮数为100。为降低随机性,每次使用不同的随机种子分别训练3组模型。
下面是模型生成因子的测试结果,回测区间为2018年1月2日至2024年10月31日,在全市场范围内进行五分组月频回测,等权配置,基准选择为全A等权组合。回测时对因子做去极值、标准化处理。另有因子值行业市值中性化的回测结果,进行对比。因子回测过程暂未考虑交易费用。
回测结果显示基础模型表现良好,超额收益具有较强的稳定性,但可能会受到一些市值与行业等风险暴露的影响。因子中性化后Rank IC有所下降但稳定性提升明显,在剔除了市值的影响后,2024年初因子的回撤有所改善,但在极端上涨的行情中适应性较弱。
下面展示基础模型在不同选股域中的结果。
整体而言,基础模型在相对小市值的股票池中优势更为明显。
为实现更好的样本外泛化效果,本节考虑将市场的状态信息融入模型,期望模型可以基于市场状态的变动调整其交易模式。
市场的状态信息众多,这里我们从风格切换、估值、流动性、资金、情绪与风险共5个维度选择指标。希望给模型提供更全面的当前市场状态信息,辅助模型进行决策。
风格切换方面主要包括中证800指数、小盘成长指数、小盘价值指数、大盘成长指数、大盘价值指数的日收益率序列。旨在识别大市值与小市值风格、成长与价值风格的相对强弱。
估值方面选择中证800指数的市盈率PE-TTM,流动性方面选择中证800指数的日换手率。估值与流动性作为市场的风险指标,估值分位数的高低与交易拥挤度的大小对交易模式具有显著的影响。
资金面我们选择融资买入占比,即融资买入金额占总成交金额的比例,反应投资者看多的情绪。
情绪与风险方面选择了三个指标,基于上证50ETF期权计算的VIX与隐含偏度SKEW,沪深300股指期货IF基差(年化)。上证50ETF期权上市时间较早,且成交量相对更高,其价格的隐含波动率(Implied volatility)代表对市场未来波动的预期。VIX是当日上证50ETF对应期权隐含波动率的综合指标。SKEW描述市场预期收益的偏移程度,作为极端事件的预警指标。沪深300股指期货的基差反映市场对未来的预期。这三个指标均描述短期的情绪变化与风险水平。
由于上证50ETF期权上市时间的原因,早期的VIX与SKEW指数我们使用上证50指数的历史数据估算代替,但估算数据量占整体比例很小,对最终结果的影响不大。
在每个交易日,我们选择窗口期为60日的中证800指数、小盘成长指数、小盘价值指数、大盘成长指数、大盘价值指数的日收益率序列以及中证800指数的市盈率与日换手率序列,另外包括融资买入占比序列、VIX序列、SKEW序列和IF基差序列共计11组市场状态信息。
市场序列标准化处理时,对于各指数日收益率序列我们希望保留时序变动信息与截面相对强弱信息,所以在每个样本内对各指数日收益率统一做z-score标准化。对于估值、流动性、资金、情绪及风险指标,我们更关注其历史分位数,即时序相对大小,所以分别对单序列进行全历史区间上的时序z-score标准化。
由于收益率信息与指标信息的差异性,在市场状态信息融合时分别使用两个不同的GRU网络去提取后拼接。另外,市场信息与股票特征融合时,一个简单的想法是直接进行拼接,但这样会使得同一交易日内的股票共享一部分特征,这可能会给模型带来噪声。
本节参考[3]中的方式,将市场状态序列信息与股票特征进行融合。
在训练时,损失函数以及其他设定均与基础模型一致。
在推理时,由于没有后验信息的输入,(3)中的步骤省略,(5)中只需要对收益进行预测。另外,此时模型中所有的分布采样操作均用均值代替。
回测设定与基础模型一致,下面是测试结果。
从回测结果可以看出,在融入市场状态信息后,因子表现提升明显,尤其是在Rank IC与多头收益上,另外因子稳定性也有一定程度的提升,这得益于市场状态信息对股票特征的调整,使模型可以更好地适应不同的环境。
前一节通过交易模式的变化来实现样本外泛化,本节介绍另外一种思路,即通过选择或生成与环境无关的特征来实现样本外泛化。
不变学习(Invariant learning)侧重于开发在不同环境中保持不变的表示或模型。这种不变特征与因果关系密切相关。不变特征的找寻方法可以分为不变风险最小化(Invariant risk minimization; IRM)[4]以及领域无关的表示学习(Domain-irrelevant representation learning)[5]。本节主要参考[6][1]以对抗训练的方式寻找不变特征。
训练分为三部分,不变特征生成、环境相关的预测模块与环境无关的预测模块。环境无关的预测模块这里我们设定为前文中的基础模型,环境相关的预测模块设定为融合市场状态的模型。环境相关的模型加入了市场状态信息,通过市场状态对股票特征进行调整,使交易模式能够适应环境的变化,从而提升模型的稳健性。不变特征生成模块的输入为经过GSM提取后的时序特征,该模块旨在从原始特征集中筛选或生成出预测能力不随环境变化而变化的特征,两个下游的预测器共享这组特征。
不变特征生成模块主要由一组可学习的权重向量与标准化层组成,目的是赋予不变特征更大的权重,另外降低环境依赖的噪声特征权重。期望在标准化后,噪声特征值接近0,而不变特征值更加显著。
前两项的目的是使环境相关的预测模块与环境无关的预测模块的重构收益接近,第三项的目的是缩小两个模块间风险因子收益分布的差距,包括先验与后验。整体的目的是通过不断调整不变特征来降低环境对模型的影响。
在不变特征生成器一轮优化完成后,依次基于对应的目标函数优化环境相关的预测模块与环境无关的预测模块,循环进行,直至收敛。最终的稳定状态为生成器生成的特征为环境不变特征,且环境信息无法提供增益。
推理时,只使用不变特征生成器与环境无关的预测模块。训练与回测设定与前文一致,下面是回测结果。
结果说明,在应用对抗训练方法后,模型生成因子的稳定性有所提升,回撤也有很大程度降低,但Rank IC与多头收益有所下降。这说明不变特征包含股票价格上行的长期稳定驱动信息,但可能缺乏轮动,故呈现出表现稳定但收益略降的结果。
前期报告《适应市场状态与股票关联性的因子生成模型——机器学习系列之六》中的分市场状态微调子模型作为样本外泛化的一类方法,本章前两节又提供了两种方式,即融入市场信息与对抗训练。这里我们将结果进行对比,并合成为综合因子,期望具有更强的样本外泛化表现。
从回测结果来看,三种样本外泛化方法对模型均有一定的提升作用,其中对抗训练通过生成不变特征提升了模型的稳定性,融合市场状态与分状态微调方法主要通过市场状态的变化来调整交易模式,从而提升模型的综合表现。
各方法之间的相关性相对较高,所以这里对各因子做截面z-score标准化后等权合成为综合因子。
综合各样本外泛化方法后,合成因子相较基础因子提升显著。中性化后因子稳定性有进一步增强,近期回撤有所降低。
整体来看,各因子均有一定程度的低波动、低流动性的风格偏向性。对比来看,对抗训练下的因子风格偏向性更低,综合因子风格偏向更明显。
本小节分沪深300、中证500、中证1000、国证2000四个选股域测试模型表现。
整体来看,合成因子表现稳定。分选股域来看,模型在偏小市值的股票池中有更好的表现。
本节利用合成因子分别构建沪深300、中证500、中证1000、国证2000的指数增强组合,构建说明如下:
回测区间为2018年1月2日至2024年10月31日,构建月频调仓策略,以次日vwap价格成交,选股范围为全市场不含北交所,剔除ST/*ST 股票以及当日停牌、涨跌停的股票。优化目标为指标最大化,个股权重偏离上限约束1%,年化跟踪误差约束为5%,成分股权重占比不低于80%,行业偏离限制正负2%,风格偏离限制在0.3倍标准差以内。交易费用设定为双边千三。
下表为各指数增强策略表现:
指数增强策略表现良好,超额持续稳定且回撤较小,策略在控制组合风险暴露的基础上取得了优异的表现。
样本外泛化性不足是机器学习及深度学习模型共同面临的问题。股票市场中,股票特征的分布以及股票特征与预期收益的关系可能是时变的,经济环境的变化、政策预期的变化以及突发事件等都会对其造成显著的影响。未能考虑到这种分布偏移的模型可能会在市场状态频繁切换或剧烈变化的场景中出现回撤。训练数据与测试数据的采样偏差、真实市场环境的不确定性、训练数据量的局限性等是实践过程中产生分布偏移的因素。本报告中介绍了两种解决方法:融合市场状态、对抗训练。前者通过不同环境中交易模式的调整来实现样本外泛化,即以变化实现泛化,后者寻找不变的因果特征,即以不变实现泛化。
基础模型FactorVAE具有良好的选股效果。其包括四个部分:状态提取器、编码器、解码器以及预测器。状态提取器从输入的股票高频与低频量价序列中提取时序特征,并通过股票间的关联性进行调整;编码器借助未来收益率的后验信息将截面上的股票特征编码为一组风险因子收益分布;解码器利用个股特征生成风险因子暴露与超额收益,然后结合风险因子收益率生成股票收益;预测器类似于编码器,区别在于其不使用后验信息,而是直接将截面股票特征转化为先验风险因子收益率分布,在推理阶段替代编码器的功能。模型逐年滚动训练,生成因子月频Rank IC:14.20%,ICIR:1.31,五分组多头年化超额:14.08%。
融合市场状态信息对模型提升明显。从风格切换、估值、流动性、资金、情绪与风险共5个维度选择指标,希望给模型提供更全面的当前市场状态信息。将指标与股票特征进行融合,使模型能够适应不同状态的切换,进而提升模型的稳健性。该模块利用GRU从不同的市场序列中提取特征并映射为多组市场隐状态,即驱动市场特征变化的因素,最后利用交叉注意力得到市场信息对股票产生的影响并与股票特征进行拼接。基础模型在融合市场状态信息后,因子月频Rank IC:14.63%,ICIR:1.35,五分组多头年化超额:15.10%。
对抗训练通过筛选与生成不变特征提升模型的稳健性。训练方式分为三部分,不变特征生成模块、环境相关的预测模块与环境无关的预测模块。不变特征生成模块旨在从原始特征集中筛选或生成出预测能力不随环境变化而变化的特征,两个下游的预测器共享这组特征。该模块通过对不变特征的不断调整来缩小两个预测器的差距,即降低市场状态的信息增益。这种训练方式生成因子Rank IC:13.91%,ICIR:1.46,五分组多头年化超额:13.90%。
基于样本外泛化提升综合因子的指数增强策略表现优异。将融合市场状态、对抗训练以及前期报告中的分状态微调得到的因子合成为综合因子。基于综合因子的沪深300增强组合年化超额11.44%,中证500增强为 13.10%,中证1000增强为16.63%,国证2000增强为20.53%。
[1] Cao, H. et al. InvariantStock: Learning Invariant Features for Mastering the Shifting Market, 2024.
[2] Duan, Y., Wang, L., Zhang, Q. & Li, J. FactorVAE: A Probabilistic Dynamic Factor Model Based on Variational Autoencoder for Predicting Cross-Sectional Stock Returns, 2022.
[3] Zhu, P. et al. MCI-GRU: Stock Prediction Model Based on Multi-Head Cross-Attention and Improved GRU, 2024.
[4] Arjovsky, M., Bottou, L., Gulrajani, I. & Lopez-Paz, D. Invariant Risk Minimization, 2020.
[5] Ganin, Y. & Lempitsky, V. Unsupervised Domain Adaptation by Backpropagation, 2015.
[6] Chang, S., Zhang, Y., Yu, M. & Jaakkola, T. S. Invariant Rationalization, 2020.
分析基于历史数据与模型,存在模型失效风险,历史数据回测结果不代表未来表现。
完整正式报告请参见东北证券金融工程研究报告《市场信息的融合与深度学习的样本外泛化——机器学习系列之七》--2024/11/22
首席分析师:王琦
执业证书编号:S0550521100001
联系方式:wangqi_5636@nesc.cn
分析师:贾英
执业证书编号:S0550524060004
联系方式:jiaying@nesc.cn
王琦:帝国理工学院数学与金融荣誉硕士,南开大学统计学学士。2021年加入东北证券上海证券研究咨询分公司任金融工程首席分析师,研究方向为金融工程。曾任职于兴业财富资产管理有限公司,任FOF投资经理。
贾英:伦敦大学学院金融数学荣誉硕士,厦门大学数学与应用数学本科。2022年加入东北证券,研究方向为因子选股、机器学习,现任东北证券上海证券研究咨询分公司金融工程组分析师。
张栋梁:复旦大学金融硕士,南京大学金融学本科。2022年加入东北证券,研究方向为因子选股,现任东北证券上海证券研究咨询分公司金融工程分析师。
江雨航:加州大学洛杉矶分校金融工程硕士,南开大学理学/经济学学士。2023年加入东北证券,研究方向为量化固收策略,现任东北证券上海证券研究咨询分公司金融工程组研究人员。
田靖航:北京大学金融硕士,上海财经大学经济学学士。2023年加入东北证券,研究方向为基金研究,现任东北证券上海证券研究咨询分公司金融工程组研究人员。
刘昱亨:北京大学计算机硕士,北京航空航天大学工学学士。2023年加入东北证券,研究方向为机器学习与衍生品量化研究,现任东北证券上海证券研究咨询分公司金融工程组研究人员。