【专题报告】CrossGRU-2:基于Patch与多尺度时序改进端到端模型

职场   财经   2024-08-01 17:22   上海  

华创专题报告

根据《证券期货投资者适当性管理办法》及配套指引,本资料仅面向华创证券客户中的金融机构专业投资者,请勿对本资料进行任何形式的转发。若您不是华创证券客户中的金融机构专业投资者,请勿订阅、接收或使用本资料中的信息。本资料难以设置访问权限,若给您造成不便,敬请谅解。感谢您的理解与配合。

摘要



时序数据在不同尺度表达下的特征模式可能并不完全相同。例如,股票在分钟、日、周、月尺度上呈现不同的趋势与波动。对于较长的序列,我们希望端到端模型可以更好处理序列的局部短期与整体长期的关系,实现不同尺度的信息提取与交互。


时序深度学习模型中的“patch”通常指将时间序列中连续的时点聚合成子序列,可以帮助模型更有效地学习局部的时间特征。我们将时序模块改为双分支结构,每个分支使用不同patch设置以提取不同时间尺度的信息,通过门控循环单元(GRU)处理同一尺度内的时序信息交互,再通过交叉注意力处理不同尺度间的信息交互。在此基础上,我们继续引入先前报告中的截面模块,构建一个双分支时序+截面的端到端模型,进行量价因子挖掘任务。


CrossGRU-2在30D、90D、30min数据集的10日RankIC分别为12.3%、12.5%、11.9%;分组测试中TOP组在上述三个数据集的年化收益分别为28.60%、32.01%、23.26%,相比GRU实现了7.1%、8.3%、4.2%的提高;2024年TOP组在上述数据集的累计收益分别为7.4%、10.4%、-11.7%,均高于GRU模型的-8.5%、-6.2%、-14.6%。


我们对双分支时序、截面模块进行一系列消融测试。在大多情况下同时加入双分支模块、截面模块的模型实现最优表现;在较长序列的数据集上加入Patch改进明显:对90D、30min数据集,GRU加入patch后因子TOP组收益提高2~3%,改为双分支的多尺度结构后表现进一步提高;我们取CrossGRU-2最优模型在中证1000构建指增组合,组合实现超额收益年化19.4%,跟踪误差6.2%。



风险提示:策略基于历史数据回测,不保证未来数据的有效性;深度学习模型存在过拟合风险;深度学习模型受随机数影响。


1


概述

在先前的报告《CrossGRU:基于交叉注意力的时序+截面端到端模型》中(后记为CrossGRU-1),我们基于交叉注意力机制实现了一个截面模块,使端到端模型学习截面股票间的交互作用,相比于GRU基线模型取得了改善。

在本篇报告中,我们探索了模型在时序维度上的改进方法。端到端的深度学习模型利用过去一段时期的量价时序数据进行因子挖掘。我们认为量价数据在不同时间尺度下存在差异,例如,日度K线包含相对丰富的“局部”信息,而周度K线则更多地体现为“整体”的走势特征。我们希望模型在处理较长序列时,能够兼顾短期的局部特征与长期的整体信息。


基于以上考虑,我们从“局部-整体”思路出发,使模型学习不同尺度内的特征模式,以及不同尺度间的信息交互。为了实现这一目标,我们引入了近年来时序网络中常见的Patch设计,我们使用一个双分支的时序模块,通过不同的Patch设置得到不同时间尺度下的表征,通过GRU模型实现每个尺度内的时序信息交互,并通过交叉注意力实现不同尺度间的信息交互。

在上述双分支时序模块的基础上,我们继续使用CrossGRU-1中的截面模块,构建一个双分支时序+截面模块的端到端模型。


由于模型的基础机制仍然是交叉注意力(CrossAttention)与GRU,我们将本篇报告提出的模型记为CrossGRU-2。我们在30D以及两个序列长度更长的90D和30min量价数据集上对模型进行了测试,我们还进一步通过消融测试初步探讨了时序模块和截面模块在不同输入数据集上的表现差异,以及在长序列输入中引入Patch对GRU模型的改进效果。


2


模型介绍

本篇报告的模型简化流程下图所示,模型大致分为时序、截面、特征三个模块,其中截面与特征维度的模块与先前报告CrossGRU-1相同。


2.1 主要机制

交叉注意力

交叉注意力是注意力机制的一种运用方式,涉及Query、Key、Value三个中间变量(简写为Q、K、V),公式表达如下:

交叉注意力与自注意力的核心公式同为上式。自注意力机制捕捉同一序列内部的依赖关系,Q、K、V由同一个序列经过映射得到,计算复杂度为Ο(𝑛2),其中n是序列长度;交叉注意力机制的Q、K、V则来自于两个序列,核心思想是将两个不同的输入序列进行交互,以捕捉它们之间的相关性,计算复杂度为Ο(𝑚·𝑛),其中m、n分别是两个序列的长度。交叉注意力机制常被运用于多模态类的任务场景,例如机器翻译、文本+图片等,是处理数据对齐场景的一种灵活机制。

时序 Patch

时序Patch通常做法是在模型Embedding步骤前,将时间序列数据划分为多个固定长度的连续子序列。patch通过设置特定大小的窗口,在原序列进行“滑动截取”得到多个子序列(当滑动的步长不等于滑动窗口的大小时,一个时点的值可以存在于多个子序列中),将一个子序列视为一个token进行后续的Embedding步骤。Patch的逻辑与优势在于:(1)使单个token包含更多信息:不同于自然语言序列中的“字”,时序的每一个时点的取值意义有限,Patch将局部连续的时点取值看成一个整体并视为一个token,单个token信息更加丰富;(2)Patch处理后输入序列长度明显降低,能减少模型计算开销或接受更长的序列;


2.2 时序交互模块

在时序模块的设计上我们参考了CrossVit(Chenetal.,2021)的双分支结构。对过去一段时间的量价时序输入使用不同的Patch大小进行采样,构建一个双分支结构;

对时序模块的一个分支,流程如下图所示:

在第一步,我们通过一个1D卷积实现patch与Embedding,两个分支的kernelsize设置为不同的大小,kernelsize较小的分支每个token表示相对更高频、局部的信息,kernelsize较大的分支每个token表示相对更低频、整体的信息;在第二步,我们将上一步的输出序列输入GRU模型;


上述步骤后,我们得到了每只个股在两个不同的时间尺度下的表征序列,对每一种尺度表度,我们用GRU学习时序维度的信息交互。接下来我们使用交叉注意力的对两个表征序列进行融合:对频率相对高频的分支,取GRU最后一个时间步并作为交叉注意力的Query,取频率相对低频的分支GRU的所有时间步的输出,并作为交叉注意力的Key和Value:


2.3 截面交互模块

截面交互以及后续的特征模块与CrossGRU-1报告相同,简要流程如下:


2.4 特征交互模块

对特征维度,我们通过一个FFN层实现特征维度交互:


3


因子测试


3.1 数据集介绍

数据集变量

  • 30D、90D数据集:日频的高、开、低、收、均价、成交量6个变量;

  • 30min数据集:30分钟频的高、开、低、收、换手率5个变量;

采样方法

以每周的最后一个交易日t为一个采样截面,在每个采样截面首先通过如下条件对股票进行排除:(1)剔除上市不满120天的股票;(2)剔除截面市值最小的10%股票。

对日频数据集,取采样截面t对应的Nt个股票过去T日的量价时间序列,滚动生成数据截面(N1,T,6)、(N2,T,6)…(Nt,T,6),在第一个维度上进行拼接得到全部训练数据。我们对T分别取30和90,即30D、90D数据集;

对30分钟频数据,回溯截面上Nt个股票过去10个交易日的数据(序列总长度为80),其余步骤同上,后续记为30min数据集;


模型按年滚动训练,每年年底重新训练模型;回溯过去11年作为训练集+验证集,其中最近的一年为验证集,次年为测试集,如下图所示:

在进行模型重训练时,设置3个随机种子,将3次预测结果合成作为最终结果。

标准化方法

(1)MAD法对异常值进行缩尾处理;(2)除换手率外,每个截面用最后一个交易日收盘价/成交量作为分母进行缩放归一化;(3)进行Z-score标准化;验证集与测试集标准化涉及的统计量采用训练集的拟合结果。

模型预测标签

预测标签为未来10日收益(t+1日收盘价~t+11日收盘价计算,rank标准化处理);MLP预测头输出维度为64,取64个值的均值作为每只股票的因子得分;损失函数为IC。

主要参数设定

1D卷积输出通道为64、GRUhiddenstate设置为64、层数为1;注意力机制的头数为4;FFN层的乘数为2;截面模块的市场隐状态数为30;CrossGRU模型中双分支时序的patch大小设置为:对30D、90D数据集patchsize取3、5;在30min数据集取2、8。

训练策略涉及相关参数为:

在下一节,我们首先展示包含双分支时序+截面模块的模型因子测试结果(记为CrossGRU-2模型)。我们的对比基准为GRU+MLP(后续记为GRU模型)。在消融测试小节,我们再展示模块逐个删减的测试结果。    


3.2 测试结果

本节我们对不同深度学习模型得出的量价因子进行检验与对比。回测区间为2018年1月1日~2024年5月31日、股票池为中证全指。

IC测试结果

本部分展示不同数据集上深度学习因子的IC测试结果,因子数值为周度频率,我们计算5日与10日IC:

从不同数据集的结果看,CrossGRU-2与GRU模型在IC各指标上表现相近;10日RankIC指标上,表现最佳的模型为基于90D数据集的CrossGRU-2,RankIC为12.5%。

分组测试结果

本部分我们对因子进行分组测试,分组数设置为20,每周最后一个交易日根据因子值分组,次周第一个交易日收盘价进行调仓操作,不计交易成本;超额收益的计算基准为中证全指。

下图依次展示在每个数据集上,CrossGRU-2与GRU不同分组年化收益,以及多头TOP组(第20分组)的超额收益走势对比:

上表展示了3个数据集的分组测试结果。相较于IC指标,两个模型在分组测试特别是TOP分组的表现上呈现较大差异:

  • 在所有数据集上,CrossGRU-2的TOP组表现均优于GRU模型,在30D、90D、30min数据集上,年化超额收益率分别为31.13%、34.54%、25.79%,相比基准分别高出7.1%、8.3%、4.2%。

  • 2024年因子TOP组在上述三个数据集的表现为:累计收益7.4%、10.4%、-11.7%,均高于GRU模型的-8.5%、-6.2%、-14.6%;最大回撤分别为16.2%、16.1%、24.6%,均低于GRU模型的22.9%,23.3%,28.1%;


4


消融测试

本节我们进一步探讨CrossGRU-2模型中双分支时序模块、截面模块的影响。


4.1剔除时序或截面模块

我们首先考虑,剔除时序或截面模块后,模型表现如何变化。下面我们逐个剔除CrossGRU-2的组件:

CrossGRU-2为基线模型,剔除截面模块后记为CrossGRU-2w/oCSAttn;剔除双分支时序结构后记为CrossGRU-2w/oTSAttn(此时模型与CrossGRU-1报告中的模型相同)。

鉴于不同模型IC差异仍然较小,下面仅展示分组测试结果:

我们发现在不同的数据集上的消融测试的结论并不完全一致:

  • 对基于日频数据的30D、90D数据集,同时加入双分支时序、截面模块后效果好于仅使用单个时序或截面模块;在30D数据集上,剔除截面模块会造成模型效果的显著下降;包含截面模块的模型在24年的回撤明显更少;

  • 对基于分钟数据的30min数据集,同时加入双分支时序、截面模块的效果弱于仅加入时序模型或仅加入截面模块,30min数据集上最优的模型为CrossGRU-2w/oCSAttn,即仅用双分支时序模块;截面模块在分钟数据集上的增量弱于日频数据集,我们认为这可能是因为分钟频视角更倾向于个股的局部、特质信息,股票间的交互关系更为复杂。


4.2 时序Patch

在本部分,我们单独讨论时序Patch的作用,特别是在较长序列中Patch的应用。GRU设计的初衷是为了缓解RNN的长期依赖问题,它通过引入门控机制控制信息的流动更好地捕捉长期依赖关系,但随着序列长度的增加,长期依赖问题仍然可能会存在,另一方面,随着序列长度的增加,GRU模型的训练时间和推理时间都会变长。

本篇报告加入了90D、30min数据集,对应序列长度分别为90、80,当我们用更长的输入序列时,GRU模型是否能很好地捕捉到长序列中的增量信息?

我们采用1D卷积实现了通道混合的时序Patch(卷积核的大小表示patchsize,卷积步长与卷积核大小相同),下面我们对比三个模型:

  • GRU基线模型,与上文相同;

  • Patch+GRU,在基线模型的基础上,数据输入GRU前进行Patch;

  • TS-CrossGRU,在Patch+GRU的基础上更改为双分支,并通过交叉注意力进行尺度融合,即CrossGRU-2剔除截面模块,与上节的CrossGRU-2w/oCSAttn相同。

第一、第二个模型我们希望观察Patch对GRU模型的影响;第二、第三个模型我们观察双分支的多尺度Patch设计相对单个Patch的提升。

Patch+GRU模型的patchsize为:30D、90D数据集为3;30min数据集为2;TS-CrossGRU模型的patchsize为:30D、90D数据集两个分支的patchsize均分别设置为3、5;30min数据集上两个分支的patchsize分别为2、8;

下面我们展示分组多头测试结果:

以上结果显示:

  • 对比单分支与双分支Patch:在所有数据集上双分支效果好于单分支,双分支相比单分支在年化收益率提高幅度约2%;

  • 对比单分支与基线模型:在30D数据集上加入Patch无法跑赢GRU基线;而在较长的输入序列的数据集,例如90D和30min数据集,加入Patch的后模型强于GRU基线,GRU+Patch在两个长序列数据集上相比GRU模型在年化收益指标提高约4%。

下面我们展示两个序列较长的数据集90D、30min,20分组以及TOP组结果的对比图:

综合以上结果,我们可以初步得出结论:

  • 序列长度可能对Patch效果存在影响,在更长的序列中Patch效果更好。对输入较长序列的90D数据集和30min数据集,GRU加入Patch的优势明显——Patch在提升模型因子表现的同时拥有更高的训练效率;对于序列长度较短的30D数据集,加入Patch后因子表现略微下降。

  • 增长量价输入序列能带来一定的增量信息;例如对两个同样基于日频的数据集30D、90D,不同模型在90D数据集均有好于30D的表现;仅使用GRU模型处理较长时序可能并没有充分发掘数据中的信息。

  • 多分支Patch优于单分支Patch。考虑不同时间尺度下的特征,效果相比于一个固定的Patch更好,我们认为这是因为时序数据特别是较长的时间序列,在不同的尺度下存在并不完全相同特征,且不同尺度间存在交互作用。


4.3 小结

在本章中,为了进一步验证双分支时序模块、截面模块的作用,我们进行了一系列消融测试得出了以下结论:

  • 对于30D和90D数据集,同时加入双分支时序模块、截面模块的模型表现最优,加入截面模块后2024年回撤明显减少;对30min数据集,只加入双分支时序模块实现最优表现;

  • 我们进一步讨论了长序列输入、时序Patch以及时序多尺度交互,我们发现(对于GRU模型而言)更长的量价序列存在增量,在长序列加入Patch后同时提高因子表现和模型效率,通过多分支的Patch实现多尺度信息提取比单个Patch效果更优;

  • 总体而言,在GRU/CrossGRU-1的基础上引入多尺度时序模块增强了模型表现。对于分钟频、日频数据集各自特点带来的结论差异,我们将在后续报告中继续研究模型的混合频率问题。


最后,我们取表现最优的模型——90D数据集上的CrossGRU-2,在中证1000上进行指增测试:

约束条件(1)指数成分股占比大于80%(2)单只股票权重上限为0.8%,下限为0%(3)市值暴露小于3%(4)行业暴露小于3%(5)每期换手30%;

调仓频率为周频,根据每周最后一个交易日的因子值在次周首个交易日进行调仓,持有期为10天;回测交易成本双边千2.5。

以下图表展示了指增组合的超额走势及逐年累计收益。1000指增超额收益年化19.43%,年化跟踪误差为6.2%,每期换手平均32%。


5


总结

  • 本篇报告我们提出了CrossGRU-2模型,在先前报告的基础上进一步考虑了时间序列的“多尺度”交互,我们使用更长输入序列的数据集,通过Patch方法构建了一个双分支的时序模块让模型学习不同尺度的信息并通过交叉注意力实现交互。

  • 我们以GRU模型作为对比基准,CrossGRU-2在30D、90D、30min数据集的10日RankIC分别为12.3%、12.5%、11.9%;因子TOP组在上述三个数据集的年化收益分别为28.60%、32.01%、23.26%,相比GRU实现了7.1%、8.3%、4.2%的提高;2024年TOP组在上述数据集累计收益分别为7.4%、10.4%、-11.7%,均高于GRU模型的-8.5%、-6.2%、-14.6%;

  • 我们对双分支时序、截面模块进行一系列消融测试:在大多情况下,同时加入双分支模块、截面模块的模型实现了最优表现;我们发现对较长的输入序列使用Patch后能够改善模型的表现,且使用双分支形式的多尺度Patch效果更优;我们以最优的CrossGRU-2模型为基础,在1000指增应用中,组合实现超额收益年化19.43%,跟踪误差6.2%。


5

6

风险提示

    本报告中所有统计结果和模型方法均基于历史数据,不代表未来趋势。

    具体内容详见华创证券研究所7月5日发布的报告《CrossGRU-2:基于Patch与多尺度时序改进端到端模型》。

欢迎扫码创见小程序阅读华创金工历史报告


华创金工团队

首席分析师、组长:王小川

执业编号:S0360517100001

电话:021-20572557

邮箱:wangxiaochuan@hcyjs.com

高级分析师:秦玄晋

电话:15801746890

邮箱:qinxuanjin@hcyjs.com



华创证券研究所定位为面向专业投资者的研究团队,本资料仅适用于经认可的专业投资者,仅供在新媒体背景下研究观点的及时交流。华创证券不因任何订阅本资料的行为而将订阅人视为公司的客户。普通投资者若使用本资料,有可能因缺乏解读服务而对报告中的关键假设、评级、目标价等内容产生理解上的歧义,进而造成投资损失。

本资料来自华创证券研究所已经发布的研究报告,若对报告的摘编产生歧义,应以报告发布当日的完整内容为准。须注意的是,本资料仅代表报告发布当日的判断,相关的分析意见及推测可能会根据华创证券研究所后续发布的研究报告在不发出通知的情形下做出更改。华创证券的其他业务部门或附属机构可能独立做出与本资料的意见或建议不一致的投资决策。本资料所指的证券或金融工具的价格、价值及收入可涨可跌,以往的表现不应作为日后表现的显示及担保。本资料仅供订阅人参考之用,不是或不应被视为出售、购买或认购证券或其它金融工具的要约或要约邀请。订阅人不应单纯依靠本资料的信息而取代自身的独立判断,应自主作出投资决策并自行承担投资风险。华创证券不对使用本资料涉及的信息所产生的任何直接或间接损失或与此有关的其他损失承担任何责任。

本资料所载的证券市场研究信息通常基于特定的假设条件,提供中长期的价值判断,或者依据“相对指数表现”给出投资建议,并不涉及对具体证券或金融工具在具体价位、具体时点、具体市场表现的判断,因此不能够等同于带有针对性的、指导具体投资的操作意见。普通个人投资者如需使用本资料,须寻求专业投资顾问的指导及相关的后续解读服务。若因不当使用相关信息而造成任何直接或间接损失,华创证券对此不承担任何形式的责任。

未经华创证券事先书面授权,任何机构或个人不得以任何方式修改、发送或者复制本资料的内容。华创证券未曾对任何网络、平面媒体做出过允许转载的日常授权。除经华创证券认可的媒体约稿等情况外,其他一切转载行为均属违法。如因侵权行为给华创证券造成任何直接或间接的损失,华创证券保留追究相关法律责任的权利。

订阅人若有任何疑问,或欲获得完整报告内容,敬请联系华创证券的机构销售部门,或者发送邮件至jiedu@hcyjs.com

华创金工
提供市场观点、舆情挖掘、事件研究、市场监控等服务。
 最新文章