"海量"专题(223)——深度学习高频因子的特征工程
(以下内容从海通证券《"海量"专题(223)——深度学习高频因子的特征工程》研报附件原文摘录)
重要提示:《证券期货投资者适当性管理办法》于2017年7月1日起正式实施,通过本微信订阅号发布的观点和信息仅供海通证券的专业投资者参考,完整的投资观点应以海通证券研究所发布的完整报告为准。若您并非海通证券客户中的专业投资者,为控制投资风险,请取消订阅、接收或使用本订阅号中的任何信息。本订阅号难以设置访问权限,若给您造成不便,敬请谅解。我司不会因为关注、收到或阅读本订阅号推送内容而视相关人员为客户;市场有风险,投资需谨慎。 简介 近年来,高频数据逐渐成为量化策略中一类重要的Alpha来源。除了用传统的基于人工逻辑的方式构建高频因子外,深度学习也是一种高效、可行的高频因子构建方法。在前期的系列专题报告中,我们首先基于高频数据构建30分钟级别的特征,再通过深度学习模型生成高频因子。在后续的样本外跟踪中,因子展现出了较为稳定的选股能力。 然而,我们在日常的路演交流中发现,初涉深度学习的投资者往往对深度学习高频因子的特征工程(如,特征的构建、处理、归因和筛选)存在各种各样的研究需求。因此,本文旨在通过多方面的对比测试,为广大投资者在特征工程层面提供一定的参考。 本文共分为八个部分,第一部分引出涉及的各项内容,第二到第五部分依次讨论特征的构建、处理、归因和筛选,第六部分测试深度学习高频因子加入指数增强组合后的表现,第七部分总结全文,第八部分提示风险。 01 引言 在本系列的前期报告《选股因子系列研究(七十五)——基于深度学习的高频因子挖掘》中,我们基于高频数据构建了一系列30分钟级别的特征,并通过深度学习模型得到了深度学习高频因子。在后续的持续跟踪中(详情可参考《高频选股因子周报》),深度学习高频因子在周度上呈现出很强的选股能力。 对于初涉深度学习的投资者来说,特征工程无疑是他们面临的第一个难点。随着路演交流的增多,我们发现,投资者对于深度学习高频因子特征工程相关的疑问,可总结为如下四个方面。 1) 如何更加高效、便捷地从不同频率的高频数据中生成特征? 2) 对特征进行分布上的调整/去极值的处理/不同的标准化方式,会对最终结果产生怎样的影响? 3) 如何度量每个特征对最终预测值的贡献? 4) 如何定量筛选模型的输入特征? 基于上述问题,我们将深度学习高频因子的特征工程分解为4个步骤。 特征构建:该步骤负责从不同频率的高频数据生成原始特征。由于投资者可能存在对不同周期收益的预测需求,因此,特征构建应具有高效生成不同频率特征的能力。 特征处理:由于原始的特征常常存在各方面的问题,如,分布偏度大、异常值、量纲差异等。因此,上一步生成的特征在输入模型前通常需要进一步处理。 特征归因:该步骤负责度量特征对最终预测结果的贡献度。理论上来说,特征构建步骤可以产生成千上万的特征,但并非每一个都能对当前的预测问题有显著贡献。因此,特征归因能够帮助我们区分有效特征与冗余特征。 特征筛选:在特征归因的基础之上,我们还可进一步对特征进行筛选,从而使模型更加精简,降低过拟合的风险。 本文将在后续的4个章节中,围绕上述4个步骤展开详细讨论。 02 深度学习高频因子的特征构建 高频数据通常有不同的频率层级,具体可分为,分钟级别的K线数据、3秒级别的盘口快照与委托队列数据、0.01秒级别的逐笔成交与逐笔委托数据。高效处理不同级别的高频数据,是特征工程极为重要的第一步。我们基于自身的实践,提供两种解决方案。 1)仅依赖频率最高的数据:由于逐笔成交与逐笔委托数据中信息丰富,理论上,仅使用逐笔级数据就可还原得到频率较低的K线及盘口信息。 2)高频数据降频:顾名思义,将快照级及逐笔级数据均降频至分钟级,或将3个层级的数据统一调整至某一频率(如,5分钟、10分钟等)。 两相对比,第一种方案显然更为理想,能够完整地保存高频数据中的信息。但是,该方案对数据处理能力有着很高的要求,实践难度较大。另一方面,在预测周度收益时,模型输入特征的频率也不必过高。即使采用频率最高的数据计算特征,最终仍需将特征的频率降至分钟或者小时级别。因此,除非收益预测的周期很短,我们认为,将各类高频数据统一降频至分钟级别,不失为一种更加高效且可行的选择。 本文使用“原始数据-分钟级基础指标-目标频率衍生指标”的方式生成高频特征。首先,基于原始数据生成一系列分钟级的基础指标。这类指标旨在捕捉原始数据中的基本信息,因此计算往往不会过于复杂,它们将作为后续特征计算的输入数据。例如,基于逐笔成交数据计算分钟级的主买、主卖金额序列。有了这一步处理,在后续的计算时,就可以便捷地融合不同频率高频数据的信息,生成各种各样的特征。 得到基础指标序列后,通常有两种方式生成特征。1)固定输入,变换算子;2)固定算子,变换输入。本文使用第二种方式,即,事先确定算子,通过不断变换输入的基础指标序列生成特征。其中,算子既可以由简单的四则混合运算或统计计算衍化得到,也可以从人工逻辑因子研发经验中归纳总结。例如,从下行波动占比这一人工逻辑类高频因子出发,我们可得到如下算子: 将上述算子的输入替换为大买单金额,则可得下行大买单金额占比这一特征。 再如,从平均单笔流出金额占比这一人工逻辑类高频因子,我们可得到如下算子: 其中,#{a}代表a的数量。将上述算子的输入替换为小买单金额与单数,则可得下行小买单单均金额占比这一特征。 照此方法,我们先基于分钟K线数据、3秒盘口快照数据和逐笔成交数据生成一系列分钟级基础指标序列,再通过各种算子得到176个30分钟级别的特征(下简称176特征集合)。 下表展示了将176特征集合作为深度学习模型的输入时,训练得到的因子的周度选股能力。因子周均IC为0.072,周度胜率逾90%,TOP 10%多头组合年化超额收益达29.2%(相对所有股票平均)。2014-2022,因子每年都能获得10%以上的多头超额收益。 根据上述结果,我们认为,作为深度学习模型的输入特征,176特征集合蕴含着较为丰富的信息。下面,我们将通过因子的进一步处理和筛选,尝试提升因子的表现。 03 深度学习高频因子的特征处理 通过分钟级基础指标序列生成的特征,常常存在一些问题。如,有偏的分布、极端异常值等。因此,在将特征输入至模型前,需要对于特征进行一定的处理和校准。 3.1 特征分布调整 一般说来,特征分布的调整是特征处理的第一步。例如,使用波动率、成交金额、成交笔数和买卖单数生成的特征,通常具有较为明显的偏度。如图2所示,收益波动率的原始截面分布呈显著的右偏。这表明,有一部分数据的值显著高于其他样本,很容易对模型训练产生影响。因此,我们有必要事先对一些分布偏度较大的特征进行调整。 如图3所示,经过取自然对数调整偏度后,特征的分布更为对称,极端值也温和了许多。下表对比了176特征集合分布调整前后,训练得到的因子表现。 偏度调整后,因子的周均IC、年化ICIR、周度胜率、年化多头超额收益、年化多空收益有了一定的提升。分年度来看,分布调整主要对2015年产生了较大的影响,收益提升显著,其余年份并无显著改变。 这一现象符合我们的预期,因为2015年的市场较为特殊,5、6月份出现异常波动,个股收益波动率较易出现异常值,从而影响模型的训练效果。调整偏度后,这一影响在很大程度上被消解,故最终的改善幅度较大。 因此,我们认为,将分布调整作为特征处理的第一步是很有必要的。首先,对于本身分布较为对称的特征,调整与否并不会产生很大的影响。其次,考虑到输出特征的算子类型丰富,难免会生成一些偏度较大的特征;或是特征数量大幅减少后,有偏特征的影响会进一步凸显。那么此时,偏度处理将有助于整个深度学习模型有效性和稳定性的提升。 3.2 特征极值处理 除整体分布的问题外,特征中的极值同样也会影响模型的训练效果,因此也有必要事先调整。我们采用和常规的因子极值处理类似的方法,即,N倍标准差截断。下表展示了176特征集合在偏度调整的基础上,进一步处理极值后,训练得到的因子表现。 和仅做分布调整的结果相比,去极值后,因子的周均IC、年化ICIR、胜率、多头超额收益都得到一定幅度的提升。分年度来看,同时处理偏度与极值问题后,176特征集合的多头超额收益更加稳定,仅在2018和2019年小幅跑输无任何处理的结果。 3.3 特征标准化 和低频数据类似,高频数据,如,成交笔数、成交金额、收益率、波动率等,同样量纲差异巨大。因此,为减轻这个问题对模型训练带来的影响,标准化也是很有必要的。在系列前期报告《选股因子系列研究(七十七)——改进深度学习高频因子的9个尝试》中,我们对比了不同标准化方法下模型的效果,并发现,在生成高频因子这一情境下,横截面标准化是一个更好的选择。 但是,单一截面的标准化并不包含数据的时间序列信息,只是对特征在截面上排序。深度学习模型更像是在简单地合成特征在不同截面的相对大小,而非提炼特征的序列信息。而我们采用的GRU或LSTM等深度学习模型,其优势就在于处理时间序列数据时,可以保留序列之间的相依信息。 因此,我们尝试将单一截面的标准化调整为跨越多个截面的统一标准化(下简称跨截面标准化)。即,单一截面的标准化是在每个截面上,计算N个股票某个特征的均值与标准差;跨截面标准化则是在T个截面上,计算T*N个股票某个特征的均值与标准差。我们期望,后者可以保留部分特征的时间序列信息。 以下图表展示了采用不同标准化方式下,176特征集合训练得到的高频因子的表现。 在不对原始特征做任何处理或仅调整偏度的做法下,跨截面标准化小幅优于单一截面标准化。然而,进一步去极值后,单一截面标准化的因子表现反而更好。因此,我们认为,跨截面标准化并不如预期那般显著提升了模型效果,在实际应用中,投资者可根据实际情况和自身偏好,选择其中一种标准化方式。 04 深度学习高频因子的特征归因 前文讨论了特征输入模型前的相关处理,本部分将关注特征输入模型后的归因分析。由于输入深度学习模型的特征通常数量众多,其中难免存在冗余变量,而过多的冗余变量将带来更多的参数和更高的过拟合风险。因此,一个好的特征贡献度归因模型就显得十分重要。它有助于投资者确定特征对模型最终预测结果的贡献,并以此筛选特征、精简模型。 常见的特征归因模型大致有基于梯度(Gradient)和基于扰动(Perturbation)两类。其中,基于梯度的归因方法又称作反向传播归因法,具体包括:Saliency、Gradient*Input、DeepLift、SHAP和IG等方法。 1) Saliency法(显著性法),以输出相对输入的梯度度量特征贡献度。 2) Gradient*Input(梯度*输入),顾名思义,以输出相对输入的梯度和输入的乘积度量特征贡献度。需要注意的是,深度学习模型的非线性特点使得梯度会随着特征取值的不同而发生变化,因此,简单的梯度*输入的形式并不能精准刻画特征对最终预测结果的贡献。 3) DeepLift,全称Deep Learning Important Features,基于链式反向传导法则,先设定一个基准输入,得到相应的基准输出;再计算任意一个输入对应的输出与基准输出之间的差值;随后,将该差值分解至每一个输入特征之上,得到各特征的归因值。 4) SHAP,全称Shapley Additive Explanation,其核心思想是,通过计算模型在包含和不包含某一输入特征时的输出差,度量特征的贡献。但是,当特征数量较大时,穷尽所有的特征组合需要耗费大量的时间和计算资源。因此,在实际应用中,往往会借助其他方法对理论SHAP进行逼近,最常用的就是和梯度方法结合的DeepLiftShap以及和梯度方法结合的GraidentShap。 5) IG,全称Integrated Gradient(积分梯度),是对梯度*输入的一种改良。因为梯度*输入的方法会随输入的不同而变化,故归因的准确性得不到保障。为了改进这一不足,可在事先设定的基线模型与模型输入间确定一条路径,并沿着该路径对梯度进行积分。根据相关文献,积分梯度法具有敏感性(Sensitivity)及实现不变性(Implementation Invariance)。 基于扰动的归因方法又称作前向传播归因法,具体包括:特征删除法、特征排序法和Shapely Value Sampling等。 1) 特征删除法,将某一特征的数值替换为选定值后,模型输出的变化可用来度量特征的贡献度。 2) 特征排序法,对某一batch中的样本特征随机排序,计算与排序前模型输出之间的差值,即可度量特征的贡献度。 3) Shapely Value Sampling,和SHAP的思路相似,按照不同的顺序逐步添加输入特征,计算添加前后模型输出的变化,得到特征的贡献度。 本文选用积分梯度法进行特征归因,因为该方法具备完整性(Completeness)。即,所有特征归因后的贡献度之和为模型输出与基线输出之间的差值。下图为积分梯度法对某股票收益预测的归因结果。其中,归因项为模型输出与基线输出之间的差值,残余项为未被归因模型解释的部分。从下图的结果来看,归因效果极佳,残余项接近于0。 通过积分梯度法归因,我们亦可得到每一个特征的绝对贡献度,进而比较它们对预测结果的重要性。如下图所示,特征1、96和172的贡献度远超其他特征,而特征44、19则基本没有贡献。 进一步,我们可计算全区间内每个特征绝对贡献度的时间序列均值,从全局的角度度量特征对模型的贡献,并为特征的筛选提供参考。下表展示了2013年以来,经偏度调整、去极值及单一截面标准化后,每个特征的平均绝对贡献度。其中,特征159、87、160、88、1、162、81、19的平均绝对贡献度都在0.04以上,而特征143、119、142、95、20、71、117、137则低于0.02,特征之间的差异十分明显。 05 深度学习高频因子的特征筛选 5.1 特征的静态精选 根据特征归因模型给出的全区间平均贡献度的高低(表5),我们可对原始的176特征集合进行精选,将特征总数缩减至64个(下简称静态64特征集合)。下表展示了不同处理方式下,使用176特征集合与静态64特征集合分别训练,所得深度学习高频因子的表现。 在相同的特征处理方式下,使用静态64特征训练得到的因子在IC和年化多头超额收益上,都优于176特征集合。 分年度来看(表7),不论是单一截面标准化还是跨截面标准化,静态64特征集合训练得到的因子,其多头超额收益在绝大多数年份上都高于原始的176集合。这表明,根据贡献度精简特征之后,我们有效地剔除了冗余信息,进一步提升了深度学习模型的表现。 5.2 特征的动态精选 上一节中的特征精选是基于全区间的平均贡献度,因而必然引入了未来信息。在实际应用中,动态地筛选特征才是更为合理可行的方案。具体地, 1) 每次预测时,先使用176特征集合训练模型; 2) 使用积分梯度法进行特征归因,计算每个特征的贡献度; 3) 选取贡献度最高的128/64/32个特征(下简称动态128/64/32特征集合)再次训练模型,并生成最终的预测值。 下表展示了不同特征处理方式下,动态筛选特征后的因子表现。 当特征数量从176精简至128或64后,在任何一种处理方式下,因子的IC均未出现下降,而年化多头超额收益则进一步提升。但是,如果特征数量进一步降至32,反而有可能造成IC或多头超额收益的下降。因此,我们认为,和线性模型类似,深度学习模型的特征筛选同样是有必要且有益的。它可以剔除冗余信息、缩短训练时间、优化计算资源,并较为显著地提升模型表现。然而,过度精简特征也会损失有效信息,降低训练所得因子的选股能力,故我们需要在模型的简约和效果之间取得平衡。 以下两图分别为两种标准化方式下,动态筛选特征后,深度学习因子的分年度多头超额收益。除了2017和2020年,使用动态筛选后的特征,多头超额收益均有可能超越原始的176特征集合。 下表进一步展示了使用176特征集合和动态64特征集合训练得到的因子的分年度多头超额收益。不同处理方式下,动态64特征集合都取得了不弱于原始集合的业绩。 06 深度学习高频因子在指数增强组合中的应用与对比 为了更好地分析前文对特征的一系列处理方式,本章将深度学习模型训练得到的因子引入周度调仓的中证500和中证1000指数增强组合,考察收益风险特征的变化。与本系列前序专题报告的测试设定类似,收益预测模型中所使用的基础因子包括:市值、中盘(市值三次方)、估值、换手、反转、波动、盈利、SUE、尾盘成交占比、买入意愿占比、大单净买入占比和深度学习高频因子。 在预测个股收益时,我们首先采用回归法得到因子溢价,再计算最近12个月的因子溢价均值估计下期的因子溢价,最后乘以最新一期的因子值。 风险控制模型包括以下几个方面的约束: 1) 个股偏离:相对基准的偏离幅度不超过0.5%/1%/2%; 2) 因子敞口:市值、估值中性、常规低频因子≤ ±0.5,高频因子≤ ±2.0; 3) 行业偏离:严格中性/行业偏离上限2%; 4) 换手率限制:单次单边换手不超过30%。 组合的优化目标为最大化预期收益,目标函数如下所示: 其中,wi为组合中股票i的权重,μi为股票i的预期超额收益。为使本文的结论贴近实践,如无特别说明,下文的测算均假定以次日均价成交,同时扣除3‰的交易成本。 6.1 中证500增强组合 如下表所示,首先,同样是176特征集合,偏度调整和去极值均能大概率提升年化超额收益;其次,一定程度特征的筛选(64或128特征集合),也在绝大多数情况下,获得了优于原始集合的表现;第三,过度的特征筛选,如仅保留32个特征,则有可能损失重要信息,产生负面效应。最后,单一截面和跨截面两种标准化方式的差异较小。 作为示例,我们选取了行业偏离2%、个股偏离0.5%、单一截面标准化及偏度调整这组参数下,使用动态64特征集合训练得到的高频因子加入中证500增强后,策略的分年度收益风险特征及相对基准的强弱曲线。 2016-2022年,策略年化超额收益17.8%,2022年超额收益10.5%。全区间月度胜率86%,信息比和收益回撤比均大于3。 6.2 中证1000增强组合 如下表所示,将不同处理方式下的深度学习高频因子引入中证1000增强策略,得到了和中证500增强类似的效果和结论。即,特征的预处理,包括偏度调整和去极值,是有必要的;特征的筛选同样有助业绩的改善,但不宜过度。 同样地,我们选取了行业偏离2%、个股偏离0.5%、单一截面标准化及偏度调整这组参数下,加入动态64特征集合训练得到的高频因子后,中证1000增强策略的分年度收益风险特征及相对基准的强弱曲线。 2016-2022年,策略年化超额收益24.3%,2022年超额收益14.2%。全区间月度胜率88%,信息比接近5,收益回撤比大于6。 07 总结 特征工程是深度学习高频因子训练中的第一步,也是极为重要的一步。为此,本文从特征构成、特征处理、特征归因和特征筛选这4个方面,对特征工程的相关问题展开全方位的讨论。根据我们详尽的测试,特征处理,尤其是特征分布的调整,对深度学习模型生成的因子有相当显著的影响;特征归因,不仅有助于我们考察和评价不同特征对模型的贡献,更为进一步的特征筛选奠定了基础。 特征筛选,可以有效剔除原始特征中的冗余信息,缩短训练时间、优化计算资源,并较为显著、稳定地提升模型表现。在本文介绍的多种归因方法中,积分梯度法简单直接、易于理解,且效果良好,较为适合在实际中应用。据此筛选原始特征后,不论是单因子检验,还是加入中证500和中证1000增强,都较为明显地改善了业绩表现。 08 风险提示 市场系统性风险、资产流动性风险、政策变动风险、因子失效风险。 联系人 袁林青 021-23212230 法律声明: 本公众订阅号(微信号:海通量化团队)为海通证券研究所金融工程运营的唯一官方订阅号,本订阅号所载内容仅供海通证券的专业投资者参考使用,仅供在新媒体背景下的研究观点交流;普通个人投资者由于缺乏对研究观点或报告的解读能力,使用订阅号相关信息或造成投资损失,请务必取消订阅本订阅号,海通证券不会因任何接收人收到本订阅号内容而视其为客户。 本订阅号不是海通研究报告的发布平台,客户仍需以海通研究所通过研究报告发布平台正式发布的完整报告为准。 市场有风险,投资需谨慎。在任何情况下,本订阅号所载信息或所表述的意见并不构成对任何人的投资建议,对任何因直接或间接使用本订阅号刊载的信息和内容或者据此进行投资所造成的一切后果或损失,海通证券不承担任何法律责任。 本订阅号所载的资料、意见及推测有可能因发布日后的各种因素变化而不再准确或失效,海通证券不承担更新不准确或过时的资料、意见及推测的义务,在对相关信息进行更新时亦不会另行通知。 本订阅号的版权归海通证券研究所拥有,任何订阅人如欲引用或转载本订阅号所载内容,务必联络海通证券研究所并获得许可,并必注明出处为海通证券研究所,且不得对内容进行有悖原意的引用和删改。 海通证券研究所金融工程对本订阅号(微信号:海通量化团队)保留一切法律权利。其它机构或个人在微信平台以海通证券研究所金融工程名义注册的、或含有“海通证券研究所金融工程团队或小组”及相关信息的其它订阅号均不是海通证券研究所金融工程官方订阅号。
重要提示:《证券期货投资者适当性管理办法》于2017年7月1日起正式实施,通过本微信订阅号发布的观点和信息仅供海通证券的专业投资者参考,完整的投资观点应以海通证券研究所发布的完整报告为准。若您并非海通证券客户中的专业投资者,为控制投资风险,请取消订阅、接收或使用本订阅号中的任何信息。本订阅号难以设置访问权限,若给您造成不便,敬请谅解。我司不会因为关注、收到或阅读本订阅号推送内容而视相关人员为客户;市场有风险,投资需谨慎。 简介 近年来,高频数据逐渐成为量化策略中一类重要的Alpha来源。除了用传统的基于人工逻辑的方式构建高频因子外,深度学习也是一种高效、可行的高频因子构建方法。在前期的系列专题报告中,我们首先基于高频数据构建30分钟级别的特征,再通过深度学习模型生成高频因子。在后续的样本外跟踪中,因子展现出了较为稳定的选股能力。 然而,我们在日常的路演交流中发现,初涉深度学习的投资者往往对深度学习高频因子的特征工程(如,特征的构建、处理、归因和筛选)存在各种各样的研究需求。因此,本文旨在通过多方面的对比测试,为广大投资者在特征工程层面提供一定的参考。 本文共分为八个部分,第一部分引出涉及的各项内容,第二到第五部分依次讨论特征的构建、处理、归因和筛选,第六部分测试深度学习高频因子加入指数增强组合后的表现,第七部分总结全文,第八部分提示风险。 01 引言 在本系列的前期报告《选股因子系列研究(七十五)——基于深度学习的高频因子挖掘》中,我们基于高频数据构建了一系列30分钟级别的特征,并通过深度学习模型得到了深度学习高频因子。在后续的持续跟踪中(详情可参考《高频选股因子周报》),深度学习高频因子在周度上呈现出很强的选股能力。 对于初涉深度学习的投资者来说,特征工程无疑是他们面临的第一个难点。随着路演交流的增多,我们发现,投资者对于深度学习高频因子特征工程相关的疑问,可总结为如下四个方面。 1) 如何更加高效、便捷地从不同频率的高频数据中生成特征? 2) 对特征进行分布上的调整/去极值的处理/不同的标准化方式,会对最终结果产生怎样的影响? 3) 如何度量每个特征对最终预测值的贡献? 4) 如何定量筛选模型的输入特征? 基于上述问题,我们将深度学习高频因子的特征工程分解为4个步骤。 特征构建:该步骤负责从不同频率的高频数据生成原始特征。由于投资者可能存在对不同周期收益的预测需求,因此,特征构建应具有高效生成不同频率特征的能力。 特征处理:由于原始的特征常常存在各方面的问题,如,分布偏度大、异常值、量纲差异等。因此,上一步生成的特征在输入模型前通常需要进一步处理。 特征归因:该步骤负责度量特征对最终预测结果的贡献度。理论上来说,特征构建步骤可以产生成千上万的特征,但并非每一个都能对当前的预测问题有显著贡献。因此,特征归因能够帮助我们区分有效特征与冗余特征。 特征筛选:在特征归因的基础之上,我们还可进一步对特征进行筛选,从而使模型更加精简,降低过拟合的风险。 本文将在后续的4个章节中,围绕上述4个步骤展开详细讨论。 02 深度学习高频因子的特征构建 高频数据通常有不同的频率层级,具体可分为,分钟级别的K线数据、3秒级别的盘口快照与委托队列数据、0.01秒级别的逐笔成交与逐笔委托数据。高效处理不同级别的高频数据,是特征工程极为重要的第一步。我们基于自身的实践,提供两种解决方案。 1)仅依赖频率最高的数据:由于逐笔成交与逐笔委托数据中信息丰富,理论上,仅使用逐笔级数据就可还原得到频率较低的K线及盘口信息。 2)高频数据降频:顾名思义,将快照级及逐笔级数据均降频至分钟级,或将3个层级的数据统一调整至某一频率(如,5分钟、10分钟等)。 两相对比,第一种方案显然更为理想,能够完整地保存高频数据中的信息。但是,该方案对数据处理能力有着很高的要求,实践难度较大。另一方面,在预测周度收益时,模型输入特征的频率也不必过高。即使采用频率最高的数据计算特征,最终仍需将特征的频率降至分钟或者小时级别。因此,除非收益预测的周期很短,我们认为,将各类高频数据统一降频至分钟级别,不失为一种更加高效且可行的选择。 本文使用“原始数据-分钟级基础指标-目标频率衍生指标”的方式生成高频特征。首先,基于原始数据生成一系列分钟级的基础指标。这类指标旨在捕捉原始数据中的基本信息,因此计算往往不会过于复杂,它们将作为后续特征计算的输入数据。例如,基于逐笔成交数据计算分钟级的主买、主卖金额序列。有了这一步处理,在后续的计算时,就可以便捷地融合不同频率高频数据的信息,生成各种各样的特征。 得到基础指标序列后,通常有两种方式生成特征。1)固定输入,变换算子;2)固定算子,变换输入。本文使用第二种方式,即,事先确定算子,通过不断变换输入的基础指标序列生成特征。其中,算子既可以由简单的四则混合运算或统计计算衍化得到,也可以从人工逻辑因子研发经验中归纳总结。例如,从下行波动占比这一人工逻辑类高频因子出发,我们可得到如下算子: 将上述算子的输入替换为大买单金额,则可得下行大买单金额占比这一特征。 再如,从平均单笔流出金额占比这一人工逻辑类高频因子,我们可得到如下算子: 其中,#{a}代表a的数量。将上述算子的输入替换为小买单金额与单数,则可得下行小买单单均金额占比这一特征。 照此方法,我们先基于分钟K线数据、3秒盘口快照数据和逐笔成交数据生成一系列分钟级基础指标序列,再通过各种算子得到176个30分钟级别的特征(下简称176特征集合)。 下表展示了将176特征集合作为深度学习模型的输入时,训练得到的因子的周度选股能力。因子周均IC为0.072,周度胜率逾90%,TOP 10%多头组合年化超额收益达29.2%(相对所有股票平均)。2014-2022,因子每年都能获得10%以上的多头超额收益。 根据上述结果,我们认为,作为深度学习模型的输入特征,176特征集合蕴含着较为丰富的信息。下面,我们将通过因子的进一步处理和筛选,尝试提升因子的表现。 03 深度学习高频因子的特征处理 通过分钟级基础指标序列生成的特征,常常存在一些问题。如,有偏的分布、极端异常值等。因此,在将特征输入至模型前,需要对于特征进行一定的处理和校准。 3.1 特征分布调整 一般说来,特征分布的调整是特征处理的第一步。例如,使用波动率、成交金额、成交笔数和买卖单数生成的特征,通常具有较为明显的偏度。如图2所示,收益波动率的原始截面分布呈显著的右偏。这表明,有一部分数据的值显著高于其他样本,很容易对模型训练产生影响。因此,我们有必要事先对一些分布偏度较大的特征进行调整。 如图3所示,经过取自然对数调整偏度后,特征的分布更为对称,极端值也温和了许多。下表对比了176特征集合分布调整前后,训练得到的因子表现。 偏度调整后,因子的周均IC、年化ICIR、周度胜率、年化多头超额收益、年化多空收益有了一定的提升。分年度来看,分布调整主要对2015年产生了较大的影响,收益提升显著,其余年份并无显著改变。 这一现象符合我们的预期,因为2015年的市场较为特殊,5、6月份出现异常波动,个股收益波动率较易出现异常值,从而影响模型的训练效果。调整偏度后,这一影响在很大程度上被消解,故最终的改善幅度较大。 因此,我们认为,将分布调整作为特征处理的第一步是很有必要的。首先,对于本身分布较为对称的特征,调整与否并不会产生很大的影响。其次,考虑到输出特征的算子类型丰富,难免会生成一些偏度较大的特征;或是特征数量大幅减少后,有偏特征的影响会进一步凸显。那么此时,偏度处理将有助于整个深度学习模型有效性和稳定性的提升。 3.2 特征极值处理 除整体分布的问题外,特征中的极值同样也会影响模型的训练效果,因此也有必要事先调整。我们采用和常规的因子极值处理类似的方法,即,N倍标准差截断。下表展示了176特征集合在偏度调整的基础上,进一步处理极值后,训练得到的因子表现。 和仅做分布调整的结果相比,去极值后,因子的周均IC、年化ICIR、胜率、多头超额收益都得到一定幅度的提升。分年度来看,同时处理偏度与极值问题后,176特征集合的多头超额收益更加稳定,仅在2018和2019年小幅跑输无任何处理的结果。 3.3 特征标准化 和低频数据类似,高频数据,如,成交笔数、成交金额、收益率、波动率等,同样量纲差异巨大。因此,为减轻这个问题对模型训练带来的影响,标准化也是很有必要的。在系列前期报告《选股因子系列研究(七十七)——改进深度学习高频因子的9个尝试》中,我们对比了不同标准化方法下模型的效果,并发现,在生成高频因子这一情境下,横截面标准化是一个更好的选择。 但是,单一截面的标准化并不包含数据的时间序列信息,只是对特征在截面上排序。深度学习模型更像是在简单地合成特征在不同截面的相对大小,而非提炼特征的序列信息。而我们采用的GRU或LSTM等深度学习模型,其优势就在于处理时间序列数据时,可以保留序列之间的相依信息。 因此,我们尝试将单一截面的标准化调整为跨越多个截面的统一标准化(下简称跨截面标准化)。即,单一截面的标准化是在每个截面上,计算N个股票某个特征的均值与标准差;跨截面标准化则是在T个截面上,计算T*N个股票某个特征的均值与标准差。我们期望,后者可以保留部分特征的时间序列信息。 以下图表展示了采用不同标准化方式下,176特征集合训练得到的高频因子的表现。 在不对原始特征做任何处理或仅调整偏度的做法下,跨截面标准化小幅优于单一截面标准化。然而,进一步去极值后,单一截面标准化的因子表现反而更好。因此,我们认为,跨截面标准化并不如预期那般显著提升了模型效果,在实际应用中,投资者可根据实际情况和自身偏好,选择其中一种标准化方式。 04 深度学习高频因子的特征归因 前文讨论了特征输入模型前的相关处理,本部分将关注特征输入模型后的归因分析。由于输入深度学习模型的特征通常数量众多,其中难免存在冗余变量,而过多的冗余变量将带来更多的参数和更高的过拟合风险。因此,一个好的特征贡献度归因模型就显得十分重要。它有助于投资者确定特征对模型最终预测结果的贡献,并以此筛选特征、精简模型。 常见的特征归因模型大致有基于梯度(Gradient)和基于扰动(Perturbation)两类。其中,基于梯度的归因方法又称作反向传播归因法,具体包括:Saliency、Gradient*Input、DeepLift、SHAP和IG等方法。 1) Saliency法(显著性法),以输出相对输入的梯度度量特征贡献度。 2) Gradient*Input(梯度*输入),顾名思义,以输出相对输入的梯度和输入的乘积度量特征贡献度。需要注意的是,深度学习模型的非线性特点使得梯度会随着特征取值的不同而发生变化,因此,简单的梯度*输入的形式并不能精准刻画特征对最终预测结果的贡献。 3) DeepLift,全称Deep Learning Important Features,基于链式反向传导法则,先设定一个基准输入,得到相应的基准输出;再计算任意一个输入对应的输出与基准输出之间的差值;随后,将该差值分解至每一个输入特征之上,得到各特征的归因值。 4) SHAP,全称Shapley Additive Explanation,其核心思想是,通过计算模型在包含和不包含某一输入特征时的输出差,度量特征的贡献。但是,当特征数量较大时,穷尽所有的特征组合需要耗费大量的时间和计算资源。因此,在实际应用中,往往会借助其他方法对理论SHAP进行逼近,最常用的就是和梯度方法结合的DeepLiftShap以及和梯度方法结合的GraidentShap。 5) IG,全称Integrated Gradient(积分梯度),是对梯度*输入的一种改良。因为梯度*输入的方法会随输入的不同而变化,故归因的准确性得不到保障。为了改进这一不足,可在事先设定的基线模型与模型输入间确定一条路径,并沿着该路径对梯度进行积分。根据相关文献,积分梯度法具有敏感性(Sensitivity)及实现不变性(Implementation Invariance)。 基于扰动的归因方法又称作前向传播归因法,具体包括:特征删除法、特征排序法和Shapely Value Sampling等。 1) 特征删除法,将某一特征的数值替换为选定值后,模型输出的变化可用来度量特征的贡献度。 2) 特征排序法,对某一batch中的样本特征随机排序,计算与排序前模型输出之间的差值,即可度量特征的贡献度。 3) Shapely Value Sampling,和SHAP的思路相似,按照不同的顺序逐步添加输入特征,计算添加前后模型输出的变化,得到特征的贡献度。 本文选用积分梯度法进行特征归因,因为该方法具备完整性(Completeness)。即,所有特征归因后的贡献度之和为模型输出与基线输出之间的差值。下图为积分梯度法对某股票收益预测的归因结果。其中,归因项为模型输出与基线输出之间的差值,残余项为未被归因模型解释的部分。从下图的结果来看,归因效果极佳,残余项接近于0。 通过积分梯度法归因,我们亦可得到每一个特征的绝对贡献度,进而比较它们对预测结果的重要性。如下图所示,特征1、96和172的贡献度远超其他特征,而特征44、19则基本没有贡献。 进一步,我们可计算全区间内每个特征绝对贡献度的时间序列均值,从全局的角度度量特征对模型的贡献,并为特征的筛选提供参考。下表展示了2013年以来,经偏度调整、去极值及单一截面标准化后,每个特征的平均绝对贡献度。其中,特征159、87、160、88、1、162、81、19的平均绝对贡献度都在0.04以上,而特征143、119、142、95、20、71、117、137则低于0.02,特征之间的差异十分明显。 05 深度学习高频因子的特征筛选 5.1 特征的静态精选 根据特征归因模型给出的全区间平均贡献度的高低(表5),我们可对原始的176特征集合进行精选,将特征总数缩减至64个(下简称静态64特征集合)。下表展示了不同处理方式下,使用176特征集合与静态64特征集合分别训练,所得深度学习高频因子的表现。 在相同的特征处理方式下,使用静态64特征训练得到的因子在IC和年化多头超额收益上,都优于176特征集合。 分年度来看(表7),不论是单一截面标准化还是跨截面标准化,静态64特征集合训练得到的因子,其多头超额收益在绝大多数年份上都高于原始的176集合。这表明,根据贡献度精简特征之后,我们有效地剔除了冗余信息,进一步提升了深度学习模型的表现。 5.2 特征的动态精选 上一节中的特征精选是基于全区间的平均贡献度,因而必然引入了未来信息。在实际应用中,动态地筛选特征才是更为合理可行的方案。具体地, 1) 每次预测时,先使用176特征集合训练模型; 2) 使用积分梯度法进行特征归因,计算每个特征的贡献度; 3) 选取贡献度最高的128/64/32个特征(下简称动态128/64/32特征集合)再次训练模型,并生成最终的预测值。 下表展示了不同特征处理方式下,动态筛选特征后的因子表现。 当特征数量从176精简至128或64后,在任何一种处理方式下,因子的IC均未出现下降,而年化多头超额收益则进一步提升。但是,如果特征数量进一步降至32,反而有可能造成IC或多头超额收益的下降。因此,我们认为,和线性模型类似,深度学习模型的特征筛选同样是有必要且有益的。它可以剔除冗余信息、缩短训练时间、优化计算资源,并较为显著地提升模型表现。然而,过度精简特征也会损失有效信息,降低训练所得因子的选股能力,故我们需要在模型的简约和效果之间取得平衡。 以下两图分别为两种标准化方式下,动态筛选特征后,深度学习因子的分年度多头超额收益。除了2017和2020年,使用动态筛选后的特征,多头超额收益均有可能超越原始的176特征集合。 下表进一步展示了使用176特征集合和动态64特征集合训练得到的因子的分年度多头超额收益。不同处理方式下,动态64特征集合都取得了不弱于原始集合的业绩。 06 深度学习高频因子在指数增强组合中的应用与对比 为了更好地分析前文对特征的一系列处理方式,本章将深度学习模型训练得到的因子引入周度调仓的中证500和中证1000指数增强组合,考察收益风险特征的变化。与本系列前序专题报告的测试设定类似,收益预测模型中所使用的基础因子包括:市值、中盘(市值三次方)、估值、换手、反转、波动、盈利、SUE、尾盘成交占比、买入意愿占比、大单净买入占比和深度学习高频因子。 在预测个股收益时,我们首先采用回归法得到因子溢价,再计算最近12个月的因子溢价均值估计下期的因子溢价,最后乘以最新一期的因子值。 风险控制模型包括以下几个方面的约束: 1) 个股偏离:相对基准的偏离幅度不超过0.5%/1%/2%; 2) 因子敞口:市值、估值中性、常规低频因子≤ ±0.5,高频因子≤ ±2.0; 3) 行业偏离:严格中性/行业偏离上限2%; 4) 换手率限制:单次单边换手不超过30%。 组合的优化目标为最大化预期收益,目标函数如下所示: 其中,wi为组合中股票i的权重,μi为股票i的预期超额收益。为使本文的结论贴近实践,如无特别说明,下文的测算均假定以次日均价成交,同时扣除3‰的交易成本。 6.1 中证500增强组合 如下表所示,首先,同样是176特征集合,偏度调整和去极值均能大概率提升年化超额收益;其次,一定程度特征的筛选(64或128特征集合),也在绝大多数情况下,获得了优于原始集合的表现;第三,过度的特征筛选,如仅保留32个特征,则有可能损失重要信息,产生负面效应。最后,单一截面和跨截面两种标准化方式的差异较小。 作为示例,我们选取了行业偏离2%、个股偏离0.5%、单一截面标准化及偏度调整这组参数下,使用动态64特征集合训练得到的高频因子加入中证500增强后,策略的分年度收益风险特征及相对基准的强弱曲线。 2016-2022年,策略年化超额收益17.8%,2022年超额收益10.5%。全区间月度胜率86%,信息比和收益回撤比均大于3。 6.2 中证1000增强组合 如下表所示,将不同处理方式下的深度学习高频因子引入中证1000增强策略,得到了和中证500增强类似的效果和结论。即,特征的预处理,包括偏度调整和去极值,是有必要的;特征的筛选同样有助业绩的改善,但不宜过度。 同样地,我们选取了行业偏离2%、个股偏离0.5%、单一截面标准化及偏度调整这组参数下,加入动态64特征集合训练得到的高频因子后,中证1000增强策略的分年度收益风险特征及相对基准的强弱曲线。 2016-2022年,策略年化超额收益24.3%,2022年超额收益14.2%。全区间月度胜率88%,信息比接近5,收益回撤比大于6。 07 总结 特征工程是深度学习高频因子训练中的第一步,也是极为重要的一步。为此,本文从特征构成、特征处理、特征归因和特征筛选这4个方面,对特征工程的相关问题展开全方位的讨论。根据我们详尽的测试,特征处理,尤其是特征分布的调整,对深度学习模型生成的因子有相当显著的影响;特征归因,不仅有助于我们考察和评价不同特征对模型的贡献,更为进一步的特征筛选奠定了基础。 特征筛选,可以有效剔除原始特征中的冗余信息,缩短训练时间、优化计算资源,并较为显著、稳定地提升模型表现。在本文介绍的多种归因方法中,积分梯度法简单直接、易于理解,且效果良好,较为适合在实际中应用。据此筛选原始特征后,不论是单因子检验,还是加入中证500和中证1000增强,都较为明显地改善了业绩表现。 08 风险提示 市场系统性风险、资产流动性风险、政策变动风险、因子失效风险。 联系人 袁林青 021-23212230 法律声明: 本公众订阅号(微信号:海通量化团队)为海通证券研究所金融工程运营的唯一官方订阅号,本订阅号所载内容仅供海通证券的专业投资者参考使用,仅供在新媒体背景下的研究观点交流;普通个人投资者由于缺乏对研究观点或报告的解读能力,使用订阅号相关信息或造成投资损失,请务必取消订阅本订阅号,海通证券不会因任何接收人收到本订阅号内容而视其为客户。 本订阅号不是海通研究报告的发布平台,客户仍需以海通研究所通过研究报告发布平台正式发布的完整报告为准。 市场有风险,投资需谨慎。在任何情况下,本订阅号所载信息或所表述的意见并不构成对任何人的投资建议,对任何因直接或间接使用本订阅号刊载的信息和内容或者据此进行投资所造成的一切后果或损失,海通证券不承担任何法律责任。 本订阅号所载的资料、意见及推测有可能因发布日后的各种因素变化而不再准确或失效,海通证券不承担更新不准确或过时的资料、意见及推测的义务,在对相关信息进行更新时亦不会另行通知。 本订阅号的版权归海通证券研究所拥有,任何订阅人如欲引用或转载本订阅号所载内容,务必联络海通证券研究所并获得许可,并必注明出处为海通证券研究所,且不得对内容进行有悖原意的引用和删改。 海通证券研究所金融工程对本订阅号(微信号:海通量化团队)保留一切法律权利。其它机构或个人在微信平台以海通证券研究所金融工程名义注册的、或含有“海通证券研究所金融工程团队或小组”及相关信息的其它订阅号均不是海通证券研究所金融工程官方订阅号。
大部分微信公众号研报本站已有pdf详细完整版:https://www.wkzk.com/report/(可搜索研报标题关键词或机构名称查询原报告)
郑重声明:悟空智库网发布此信息的目的在于传播更多信息,与本站立场无关,不构成任何投资建议。