人工智能系列之64:从九坤Kaggle量化大赛高分方案中寻找借鉴。本文梳理2022年九坤Kaggle量化大赛高分队伍解决方案,提炼出特征工程、损失函数、交叉验证、模型集成四个主要方向,并应用于华泰人工智能中证500指数增强策略改进。结果表明:(1)特征工程引入均值因子对神经网络有效;(2)CCC损失优于MSE损失和IC损失;(3)时序交叉验证作用不明显;(4) 集成神经网络和决策树类模型提升较稳定。对比整合多项改进的模型与基线模型,回测期2011年至2022年内,年化超额收益从14.2%提升至17.0%,信息比率从2.3/2.4提升至2.7。
多家头部量化机构在Kaggle发布竞赛,九坤竞赛贴近实际量化选股场景
随着数据科学在线社区日益成熟,越来越多的爱好者投身于网络编程竞赛之中。Kaggle是全球知名的数据科学在线平台之一,Two Sigma、Optiver等头部量化机构曾在Kaggle发布挑战竞赛。国内量化私募九坤投资于2022年1月启动Kaggle竞赛,吸引两千多只队伍参赛。比赛具体任务为基于给定的A股匿名特征,预测股票未来短期收益,最终评价指标为预测收益和真实收益的IC值,属于典型的监督学习问题,和实际量化选股场景较贴近。
四个改进方向:引入均值因子,引入CCC损失,时序交叉验证,模型集成
我们梳理九坤Kaggle量化大赛高分队伍解决方案,提炼出四个改进方向。(1)特征工程引入截面上全部股票因子的均值,均值因子可能反映原始因子整体分布的时变特性,是市场环境的一种简单表达。(2)损失函数引入一致性相关系数CCC,可视作IC和MSE的融合,兼顾相关性和距离。(3)采用时序交叉验证选取最优超参数。(4)集成不同类型机器学习模型。以神经网络和XGBoost构建中证500指数增强策略作为基线,测试上述技巧的改进效果。
均值因子对神经网络有效,加权CCC损失回测表现好,模型集成提升稳定
四项改进技巧效果各异。特征工程引入的均值因子对神经网络有提升,但削弱了XGBoost模型。损失函数中,MSE表现不突出;IC损失单因子测试表现好,但指增组合回测表现差;CCC损失在单因子测试表现一般,但指增组合回测表现较好;加权均优于等权。交叉验证调参改进不显著,考虑到时间开销大,性价比不高,算力有限前提下,使用经验超参数即可。模型集成提升较稳定,神经网络类和决策树类模型有互补效果。
讨论:(1)如何使用弱因子;(2)因子合成和组合优化的目标错配问题
研究发现均值因子对神经网络有效但对XGBoost无效。均值因子属于弱因子,有用但比重不宜过大。XGBoost引入弱因子后,特征采样使原始因子可能被排除在外,从而削弱模型。神经网络可通过预处理缩小取值,有限度地使用弱因子。研究还发现IC损失单因子测试优于MSE损失,但指增组合表现差,本质是因子合成和组合优化的目标错配。IC属于全局统计量,不会侧重于个别头部样本,但这些样本可能对组合优化影响较大。MSE的特点之一是给予极端误差较大惩罚,恰好弥补IC弱点。CCC融合IC和MSE,兼顾共性和个性,是一类理想的损失函数。
04 结果
05 讨论
均值因子在神经网络和XGBoost间的差异,兼谈如何使用弱因子
MSE和IC损失函数的差异,兼谈因子合成和组合优化的目标错配问题
06 总结
参考文献
风险提示
01 研究导读
得益于数据科学在线社区日益成熟,机器学习和大数据的学习门槛逐渐降低,全球的爱好者都可以通过在线平台参与编程训练和竞赛项目,和顶尖团队进行较量和探讨。Kaggle正是影响力较大的平台之一,囊括了超过500项竞赛、5万个数据库和40万组代码。美国白宫、斯坦福大学、北京大学、微软、谷歌等机构和企业都曾在Kaggle发布竞赛,征集解决方案。
量化投资和机器学习、大数据关系紧密,多家量化投资机构也在Kaggle平台发起挑战竞赛,发布方不乏Winton、Two Sigma等知名对冲基金,也包含Jane Street、Optiver等头部做市商。项目内容大多是基于资产历史行情、新闻数据或匿名特征,预测未来收益率或波动率。下表整理了Kaggle平台量化投资相关竞赛。2022年1月,国内量化私募九坤投资也上线Kaggle竞赛,受到市场关注,2893支队伍参赛,最终前10名队伍获得10万美元奖金。
本文的主题是“抄作业”,九坤Kaggle量化大赛高手云集,高分队伍是否有经验值得借鉴?我们梳理了部分高分队伍公布的解决方案,提炼出有共性的四个方向——特征工程、损失函数、交叉验证和模型集成,并应用于中证500指数增强策略的改进。结果显示,改进策略相比基线策略有稳定提升,回测期2011年至2022年内,年化超额收益从14.2%提升至17.0%,信息比率从2.3/2.4提升至2.7。测试的改进技巧中,神经网络引入均值因子、CCC损失、模型集成提升作用较显著。
02 九坤Kaggle量化大赛高分方案解析
九坤Kaggle量化大赛的具体任务为:基于给定的A股匿名特征,采用机器学习或深度学习算法,预测股票未来短期收益,评价指标为预测收益和真实收益的IC值均值,属于典型的监督学习问题。
比赛于2022年1月开始,7月公布最终成绩,部分排名靠前队伍公开了解决方案,如上表。我们从众多方案中提炼具有共性的技巧,从特征工程、损失函数、交叉验证和模型集成四个方向展开介绍。
特征工程
特征工程是模型搭建前的数据预处理和新特征构造工作,特征工程的质量一定程度上决定了预测结果的好坏。数据预处理主要包括缺失值填充、异常值剔除和标准化;新特征的构造则依赖投资者的经验和对市场的理解。原始特征可能无法很好反映样本和潜在问题的关系,通过引入对原始特征处理和组合后的新特征,或可提升模型训练效果。
九坤量化大赛中,原始数据进行了预处理和匿名处理,无法基于因子含义构造新特征,这给特征构造增加了困难。我们发现多数高分队伍都进行了新特征的构造,仅有少数方案只使用原始的300维特征。第1、2、8名队伍都提到了构造“按照时间ID取平均的均值因子”,他们指出均值因子的引入对于模型效果有显著提升。
具体而言,假设f_0为某个因子,在每个交易日对全部股票的f_0求均值,即得到该交易日股票的均值因子f_mean_0。该交易日全部股票的f_mean_0取值相同,在交易日间有差异,反映f_0因子整体分布的时变特性。这一操作在传统机器学习中似乎不常见,构造一个全部股票取值相同的因子也略显反常,但在九坤量化大赛中有效。
关于均值因子的有效性和背后的含义,我们猜想:与其他领域的预测问题相比,股票收益率预测有其特殊性——未来表现不仅和股票本身特征相关,还与市场整体环境(如宏观状态、市场风格等)相关,规律存在时变特性,因此有必要引入特征刻画市场环境变化。均值因子反映原始因子整体分布的时变特性,是市场环境的一种简单表达,可能具备一定信息量。
损失函数
损失函数决定了模型的优化方向,损失函数的选择取决于评价指标、下游任务等因素。九坤量化大赛的最终评价指标为预测收益和真实收益的Pearson相关系数,即IC值,衡量预测值和真实值的线性相关程度,部分高分队伍直接采用IC值的相反数作为损失函数:
均方误差MSE是回归任务中常用的损失函数之一,衡量预测值和真实值间的距离,对偏离真实值的预测给予较大惩罚。部分高分队伍也采用MSE或RMSE(MSE的平方根)作为损失函数:
九坤量化大赛的讨论区里,有选手提出使用一致性相关系数CCC(concordance correlation coefficient)作为IC和MSE的融合,同时考虑相关性和距离。CCC由Lawrence I-Kuei Lin在1989年于Biometrics发表的论文A concordance correlation coefficient to evaluate reproducibility中提出:
Pandit和Schuller在2019年于arXiv平台发布的论文The many-to-many mapping between the concordance correlation coefficient and the mean square error推导了其等价形式:
观察CCC的定义,(1)式分子中的ρxy代表x和y的Pearson相关系数,即IC;(2)式分母包含MSE。直观来看,分子考虑两组数据的相关性,分母对两组数据均值的偏离度进行了惩罚。实际使用中,可以取CCC的相反数作为损失函数。尽管高分队伍未使用CCC损失,我们仍可以从讨论区中获得启发。
交叉验证
交叉验证主要用于选择模型超参数。最简单的方式是单次验证,即选择固定比例的训练集和验证集。常用的方式是K折交叉验证,将原始数据分成K份,每次使用K-1份训练模型,使用剩余1份评价模型,对K次评价取平均作为该组超参数的整体评价。但K折的缺点是可能使用未来信息,第1、7名队伍均提到该问题,并提出使用时序交叉验证。
我们在《人工智能14:对抗过拟合:从时序交叉验证谈起》(2018-11-28)中介绍过该方法。时序交叉验证将原始数据按时间顺序划分为K份,第i次验证时,使用1至i份训练模型,第i+1份评价模型,避免未来信息,使用数据量约是K折交叉验证的一半。总的来看,时序交叉验证的优点是无未来信息,且使用数据量少时间开销低,缺点是可能存在欠拟合风险。
模型集成
模型集成可以看成机器学习中“免费的午餐”。完美训练单个模型难度很大,模型集成通过融合多个子模型,实现取长补短,为比赛中多数高分队伍采用。第1、8、17名集成了多种不同类型的子模型,如决策树类模型和神经网络模型;第2、3名集成了多个同类型的子模型。尽管投票法、Stacking等模型集成方法层出不穷,比赛中仍主要采用最简单的等权法。
高分队伍使用决策树类模型和神经网络模型作为子模型,两者有各自优势,集成能起到互补效果。决策树类模型对于数据的要求相对较低,对异常值、缺失值和特征间数量级不敏感,是在实操中较常用的一类模型。神经网络一般要求数据数量级一致、不能有缺失值,但可以通过批量训练将多个截面的信息一并地输入到模型中,自动构造出有效的新特征。
除上述四项外,高分队伍在模型架构上亦有可取之处,如第1名采用TabNet,第3名采用Transformer,但模型本身不是本研究关注的重点,故不作进一步测试。有少数队伍采用了独特的训练技巧,如第3名使某些特征随机变为0,第5名对预测目标取对数,对特征做分位数转换(未指明转换成何种分布),上述个性化处理也不在后文讨论之列。
03 方法
本研究在现有周频中证500指增模型基础上,引入九坤量化大赛中的技巧,测试改进效果。全部测试模型如下表。
基线模型为全连接神经网络(nn)和XGBoost(xgb),特征为42个常规的基本面和量价因子,标签为未来10个交易日收益率在截面上的排序,损失函数为加权mse(wmse),以截面上个股收益率排序进行衰减加权。交叉验证方法为单次验证,以252*6个交易日为训练集,252*2个交易日为验证集,252*0.5个交易日为测试集,相当于约半年滚动训练一次。交叉验证配合早停,仅用于确定模型的迭代次数,其余超参数均为固定值。
04 结果
全部测试模型因子评价指标及回测绩效如下列图表。核心结论如下:
特征工程
对比引入均值因子前后的表现。神经网络无论在Top组收益,还是在指增组合年化超额收益、信息比率方面,均有显著提升。但XGBoost在上述指标均有较大削弱。原因可能是XGBoost对均值因子的“过度”使用,具体将在后文探讨。
损失函数
交叉验证
模型集成
对比模型集成后的表现,各集成模型在单因子加权RankIC均值、多空收益、指增组合年化超额收益、信息比率上均有显著提升。并且子模型为改进模型(后3组)的表现优于子模型为原始模型(nn+xgb)。对比前述特征工程、损失函数、交叉验证的技巧,模型集成带来的提升幅度更大且效应更稳定。
05 讨论
均值因子在神经网络和XGBoost间的差异,兼谈如何使用弱因子
最后,从理论角度分析两类模型训练过程。XGBoost对特征进行随机采样,在采样的候选特征中寻找最优划分方式,并非从全部特征中搜索。XGBoost引入均值因子这类弱因子后,原始特征被采样到的概率下降,可能被排除在候选特征外,导致模型预测效果下降。神经网络不涉及特征采样操作,因此可以通过缩小取值的方式,在合理限度内使用弱因子。
MSE和IC损失函数的差异,兼谈因子合成和组合优化的目标错配问题
06 总结
参考文献:
风险提示:
人工智能挖掘市场规律是对历史的总结,市场规律在未来可能失效。人工智能技术存在过拟合风险。深度学习模型受随机数影响较大,本文未进行随机数敏感性测试。本文测试的选股模型调仓频率较高,假定以vwap价格成交,忽略其他交易层面因素影响。
相关研报
研报:《人工智能64:九坤Kaggle量化大赛有哪些启示?》2023年1月30日
林晓明 S0570516010001 | BPY421
李子钰 S0570519110003 | BRV743
何 康 S0570520080004 | BRB318
关注我们
https://inst.htsc.com/research
访问权限:国内机构客户
https://intl.inst.htsc.com/mainland
免责声明
▲向上滑动阅览
本公众号不是华泰证券股份有限公司(以下简称“华泰证券”)研究报告的发布平台,本公众号仅供华泰证券中国内地研究服务客户参考使用。其他任何读者在订阅本公众号前,请自行评估接收相关推送内容的适当性,且若使用本公众号所载内容,务必寻求专业投资顾问的指导及解读。华泰证券不因任何订阅本公众号的行为而将订阅者视为华泰证券的客户。
本公众号转发、摘编华泰证券向其客户已发布研究报告的部分内容及观点,完整的投资意见分析应以报告发布当日的完整研究报告内容为准。订阅者仅使用本公众号内容,可能会因缺乏对完整报告的了解或缺乏相关的解读而产生理解上的歧义。如需了解完整内容,请具体参见华泰证券所发布的完整报告。
本公众号内容基于华泰证券认为可靠的信息编制,但华泰证券对该等信息的准确性、完整性及时效性不作任何保证,也不对证券价格的涨跌或市场走势作确定性判断。本公众号所载的意见、评估及预测仅反映发布当日的观点和判断。在不同时期,华泰证券可能会发出与本公众号所载意见、评估及预测不一致的研究报告。
在任何情况下,本公众号中的信息或所表述的意见均不构成对任何人的投资建议。订阅者不应单独依靠本订阅号中的内容而取代自身独立的判断,应自主做出投资决策并自行承担投资风险。订阅者若使用本资料,有可能会因缺乏解读服务而对内容产生理解上的歧义,进而造成投资损失。对依据或者使用本公众号内容所造成的一切后果,华泰证券及作者均不承担任何法律责任。
本公众号版权仅为华泰证券所有,未经华泰证券书面许可,任何机构或个人不得以翻版、复制、发表、引用或再次分发他人等任何形式侵犯本公众号发布的所有内容的版权。如因侵权行为给华泰证券造成任何直接或间接的损失,华泰证券保留追究一切法律责任的权利。华泰证券具有中国证监会核准的“证券投资咨询”业务资格,经营许可证编号为:91320000704041011J。