融入注意力机制的GRU表现优异 目前神经网络主流的三类编码器RNN,CNN,Transformer在量化选股领域均表现出了较强的预测效果,如何能使各类编码器发挥自身优势并有效结合成为学术界不断尝试的领域。我们参考DA-RNN两阶段注意力机制的设计思路,避免该模型在实际应用中潜在的问题,将注意力机制改为特征层面的权重分配,与GRU结合后具有明显的优势,在绝大部分指标上超越原本GRU模型。 排序学习思想与A股实证效果 我们参考了推荐系统和搜索引擎中普遍使用的排序学习思想,认为其使用场景和量化截面选股策略具有高度相似性。探讨对比了包括ListWise和PairWise两大类排序学习损失函数,部分损失函数能借助NDCG指标提升多头组合表现,且部分因子相较于传统MSE回归模型有一定提升效果,我们将相对有效且相关性相对较低的损失函数进行等全合成,发现合成后的因子在各款及股票池中表现均有增强。所得因子在全A股票池中IC均值为13.82%,多头年化超额19.69%,多头信息比率2.98。 使用多个Epoch模型参数对抗过拟合 在传统训练过程中,我们倾向于早停后只使用最好轮次的模型参数用于预测。但其面临的一个严重问题在于,训练集和验证集所得最优结果并不一定在样本外同样最优,因此存在严重的过拟合倾向。此处我们考虑,神经网络梯度下降至全局最优点本身应该追求“模糊的正确”,使用早停后验证集表现最优的5轮结果进行预测并取均值能有效缓解上述情况,从而在样本外地稳健性更好。经过对比,使用此方法所得因子在各股票池中均有一定提升。 结合排序学习与多轮参数对抗过拟合方案的指数增强策略 最终,我们对上述改进所得因子构建指数增强策略。其中,沪深300指数增强策略年化超额收益达到16.60%,超额最大回撤为3.78%。中证500指增策略年化超额收益19.20%,超额最大回撤4.25%。中证1000指增策略年化超额收益29.81%,超额最大回撤8.04%。 风险提示 1、以上结果通过历史数据统计、建模和测算完成,在政策、市场环境发生变化时模型存在时效的风险。 2、策略通过一定的假设通过历史数据回测得到,当交易成本提高或其他条件改变时,可能导致策略收益下降甚至出现亏损。 内容目录 一、超越传统GRU,融入注意力机制具有一定优势4 1.模型介绍4 2.结合注意力机制的GRU在A股中的实证结果6 二、排序学习介绍及选股效果6 1.排序学习各类算法原理介绍6 2.排序学习各类算法在A股中的实证结果8 三、利用多个Epoch结果对抗过拟合12 四、结合排序学习与多轮参数对抗过拟合方案的AGRU指数增强策略15 1.基于排序学习与多轮参数对抗过拟合的沪深300指增策略15 2.基于排序学习与多轮参数对抗过拟合的中证500指增策略17 3.基于排序学习与多轮参数对抗过拟合的中证1000指增策略18 总结19 风险提示19 图表目录 图表1:各主流编码器构造融合方向4 图表2:DA-RNN模型结构示意图4 图表3:投喂特征数据6 图表4:GRU与AGRU因子各项指标对比(全A,月度调仓,未扣费)6 图表5:GRU与AGRU因子在不同股票池中各项指标对比(月度调仓,未扣费)6 图表6:排序学习算法示意7 图表7:NDCG思想举例8 图表8:排序学习与MSE回归差异对比案例9 图表9:排序学习与MSE回归损失函数值差异对比案例9 图表10:测试损失函数列表10 图表11:不同排序学习损失函数训练因子各项指标对比(月度调仓,未扣费)10 图表12:几种损失函数多头超额净值走势(中证500,月度调仓,未扣费)11 图表13:几种损失函数多头超额净值走势(中证1000,月度调仓,未扣费)11 图表14:排序学习与MSE损失函数因子相关性11 图表15:GRU与AGRU因子在不同股票池中各项指标对比(月度调仓,未扣费)12 图表16:排序与回归结合因子多头超额净值(中证500,月度,未扣费)12 图表17:排序与回归结合因子多头超额净值(中证1000,月度,未扣费)12 图表18:验证集损失函数随训练轮数(Epoch)变化趋势13 图表19:模型梯度下降示意图13 图表20:取多轮模型参数示意图14 图表21:单轮与5轮取均值因子在不同股票池中各项指标对比(月度调仓,未扣费)14 图表22:单轮与5轮取均值因子多头超额净值(中证500,月度,未扣费)15 图表23:单轮与5轮取均值因子多头超额净值(中证1000,月度,未扣费)15 图表24:基于排序学习与多轮参数对抗过拟合的沪深300指数增强策略指标15 图表25:基于排序学习与多轮参数对抗过拟合的沪深300指数增强策略净值曲线16 图表26:基于排序学习与多轮参数对抗过拟合的沪深300指数增强策略分年度收益16 图表27:基于排序学习与多轮参数对抗过拟合的沪深300指数增强策略分年度收益16 图表28:基于排序学习与多轮参数对抗过拟合的中证500指数增强策略指标17 图表29:基于排序学习与多轮参数对抗过拟合的中证500指数增强策略净值曲线17 图表30:基于排序学习与多轮参数对抗过拟合的中证500指数增强策略分年度收益17 图表31:基于排序学习与多轮参数对抗过拟合的中证500指数增强策略分年度收益18 图表32:基于排序学习与多轮参数对抗过拟合的中证1000指数增强策略指标18 图表33:基于排序学习与多轮参数对抗过拟合的中证1000指数增强策略净值曲线18 图表34:基于排序学习与多轮参数对抗过拟合的中证1000指数增强策略分年度收益19 图表35:基于排序学习与多轮参数对抗过拟合的中证1000指数增强策略分年度收益19 一、超越传统GRU,融入注意力机制具有一定优势 1.模型介绍 在目前主流的神经网络选股模型中,GRU作为一种RNN的变体,通过门控机制调节长短期记忆的保留,一定程度上解决了长时间序列特征数据的学习能力。而后续推出的不同编码器方式如TCN、Transformer等也在选股领域上有不错的效果。这三类也逐渐成为当下时序预测任务中主流的编码器方案。 如何将不同编码器的优势进行融合,起到增强的效果是学界和业界一直在探讨的问题。目前能看到的两类主流融合方式为:将RNN类编码器与注意力机制进行结合,典型代表如DA-RNN(Dual-stageAttention-basedRNN),另一类为首先使用CNN进行局部特征捕捉,再结合RNN进行时序编码的方案,有多篇论文进行过相关尝试。本篇报告中,我们将重点放在前者,探讨DA-RNN模型的构建原理和测试效果。 图表1:各主流编码器构造融合方向 来源:国金证券研究所 该模型首先分成了Encoder和Decoder两部分,在两部分都结合了注意力机制,并通过RNN进行时间序列上的编码,最终得到目标预测信息。 模型的作者认为,当输入特征为多维度时,简单的RNN结构难以捕捉或选择最相关的输入特征进行预测。而Hubneretal(2010)指出,人类行为可以很好地被两阶段注意力机制所解释,在第一阶段,人类会首先选择一些初级刺激特征,而在第二阶段,会使用分类信息对第一阶段获取到的刺激特征进行解码。 因此,论文作者提出了两阶段注意力机制对上述过程进行模拟。首先在编码器部分,定义一个注意力机制捕捉不同时期的主要贡献特征。而在解码器中,定义一个时序注意力机制针对不同的时间步上的编码信息进行权重再分配。通过这种方式,DA-RNN既能选择最合适的输入特征又能捕捉更长周期的时序依赖关系。 图表2:DA-RNN模型结构示意图 来源:《ADual-StageAttention-BasedRecurrentNeuralNetworkforTimeSeriesPrediction》,国金证券研究所 在第一阶段中,对于给定的第k维特征𝑥�=(𝑥𝑘,𝑥𝑘,…,𝑥𝑘)�∈𝑅𝑇,构造一个由线性层, Tanh和Softmax构成的注意力机制: 12� 𝑒�=�𝑇tanh(�[ℎ ;� ]+�𝑥𝑘) �� �𝑡−1 𝑡−1� �� exp(𝑒𝑘) �= ∑ � �� 𝑖=1 exp(𝑒�) � 其中h和s分别为RNN编码器中的隐藏层和神经元状态(此处需使用LSTM)。所得𝛼�即为在t时刻第k个特征的相对重要性。进一步将所得α和原本特征x进行点乘,作为LSTM的输入: � � � � � � 𝑥̃�=(𝛼1𝑥1,𝛼2𝑥2,…,𝛼�𝑥�)� ℎ�=𝑓1(ℎ𝑡−1,𝑥̃𝑡) 此处f指代LSTM编码器,通过该方法,每个时间步的特征都会经过注意力给出的权重进行加权后再喂入LSTM得到了时序编码,进而起到了动态调整特征重要性的作用。 在第二阶段中,作者考虑到LSTM等RNN类模型依然无法解决较长时间周期的记忆衰减问题。引入时序注意力机制,对于某个特定时刻t,依据前一时刻所得隐藏层信息d和神经元s: 𝑙�=�𝑇tanh(�[� ;� ]+�ℎ) �� �𝑡−1 𝑡−1 �� �� exp(𝑙𝑘) �= ∑ � �� 𝑗=1 exp(𝑙𝑗) � 通过该方法所得𝛽�即为整个时间序列数据中第t时刻编码特征的重要性。与编码器部分类似地,利用权重与原本隐藏层进行加权求和,并将其定义为context(c): � � 𝑐�=∑𝛽�ℎ� 𝑖=1 最终将context和原本每个时间步的标签数据拼接并投喂给LSTM: 𝑦̃𝑡−1=𝑤𝑇[𝑦𝑡−1;𝑐𝑡−1]+𝑏̃ 𝑑�=𝑓2(𝑑𝑡−1,𝑦̃𝑡−1) 从而能够将不同时间段结合了重要性判断的编码特征投喂LSTM进行时序编码。需要注意的是,该模型结合了截面注意力和时序注意力,在编码器部分所获得隐藏层进一步传给了解码器。可以从本质上理解为一个时序注意力的精细化改进,将每一步的特征权重做了动态分配。 然而,在实际构建该模型的过程中,我们发现: 两阶段注意力对算力消耗极大,模型占用显存超出一般消费级显卡范围; 动态调整的特征加权在实际测试结果中并未展现出更好的预测表现; 解码器部分所需要输入的T-1个步长的预测标签数据若不经过降采样处理有极大可能会出现信息泄露,在实盘中将无法落地。若进行月度预测,需保证20天的间隔采样,则会导致样本数量过少,极大影响模型最终效果。原文作者用在分钟级数据中并只预测下一分钟的价格择避免了这一问题。 因此,我们结合DA-RNN模型的思路进行修改,同样使用注意力机制进行特征重要性的采样,不再每个时间步上利用实际预测标签进行时序编码,而是直接结合多步GRU后得到最终预测结果。 在数据预处理、训练方式和损失函数选取上,我们保持和前期报告《Alpha掘金十:机器学习全流程重构——细节对比与测试》中结果一致。但在输入特征数据中,为了避免特征本身可能对模型表现所造成的干扰,影响到对比准确性,我们使用原始日频量价数据进行投喂: 图表3:投喂特征数据 数据类型 使用字段 回看长度 原始量价 高、开、低、收、量、VWAP 60天 来源:国金证券研究所 2.结合注意力机制的GRU在A股中的实证结果 与前期报告所选时间一致,我们使用较长的训练集进行训练,选股5个随机种子取平均避免随机性。首先在全A股票池中进行测试,因子效果如下: 图表4:GRU与AGRU因子各项指标对比(全A,月度调仓,未扣费) 因子 IC均值 IC_IR ICt 统计量 多头年化超额收益率 多头信息比率 多头超额最大回撤 多空年化收益率 多空夏普比率 多空最大回撤 GRU 14.28% 1.29 13.32 17.45% 2.53 4.02% 58.03% 3.61 15.85% AGRU 14.42% 1.34 13.89 17.63% 2.70 3.99% 58.51% 3.73 15.15% 来源:Wind,国金证券研究所 可以看出,因子在多个指标中的表现均要优于原始的GRU模型,但收益部分提升幅度有限,在因子的收益稳定性层面有相对明