您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[民生证券]:量化专题报告:深度学习如何利用公募持仓网络优化选股效果? - 发现报告
当前位置:首页/其他报告/报告详情/

量化专题报告:深度学习如何利用公募持仓网络优化选股效果?

2023-07-06叶尔乐民生证券赵***
量化专题报告:深度学习如何利用公募持仓网络优化选股效果?

量化专题报告 深度学习如何利用公募持仓网络优化选股效果? 2023年07月06日 传统日频深度学习模型表现具有局限性。神经网络已经成为市场中预测股票收益率最常用的模型之一。LSTM神经网络因其独特的记忆与遗忘门机制,解决了训练过程中的梯度消失和梯度爆炸问题,且在更长时间序列数据中有更好的表现。用LSTM神经网络加MLP多层感知器的模型结构,对A股中证1000成分股的日频行情数据建模,并预测个股周度收益,得到深度学习DL因子,因子周度IC0.038,ICIR0.51,年化多空收益24%,多头端收益较低,年化超额收益4.7%,对于深度学习因子来说,表现较为一般。一个提升的方向在于寻找股票的有效分类,从而提升因子的针对性。传统的多因子模型认为同一种因子的因子暴露对于所有的股票影响是一样的,然而对于不同内在属性的股票,各类因子的有效性并不相同,其中存在非线性结构有待优化和探索。传统深度学习模型的一个提升方向为找到股票的有效分类,从而提升因子对不同属性股票的针对性。 分析师叶尔乐执业证书:S0100522110002邮箱:yeerle@mszq.com相关研究1.资产配置月报:七月配置视点:哪些板块景气度与估值仍持续背离?-2023/07/042.量化分析报告:六月社融预测:42307亿元 从公募持仓网络得到的股票内在属性对于模型有一定提升。我们采用矩阵分解的办法,从基金选股网络中提取股票的内在属性,来影响因子对于不同股票的预测规律。矩阵分解通过基金对于股票的投资行为,分解出基金和股票的内在属性矩阵。将这些内在属性与LSTM生成的因子表示进行拼接,共同输入到MLP中,得到DL_EM因子,因子周度IC均值为0.068,ICIR为1.12,构建纯因子多空组合,费后年化收益8.8%,信息比率4.3。 -2023/07/023.量化周报:流动性脉冲回落,或保持震荡-2023/07/024.量化周报:反弹观点不变-2023/06/255.基金分析报告:选基组合跟踪202306:快才是硬道理-2023/06/20 将股票内在属性与动态市场偏好结合对模型有进一步提升。利用基金年报,半年报获得的股票内在属性半年一更新,较为静态。但经验告诉我们,市场是动态的,它在不同的时间段对不同的股票内在属性的偏好是不同的,所以我们需要将股票静态的内在属性转为动态内在属性,构建股票的动态市场状态因子,即计算个股内在属性与当天市场热度风格的相似度。这一因子本身并无选股能力,但与上述模型拼接后,生成更为有效的DL_EM_Dynamic因子,周度IC均值0.12ICIR1.55;年化多空收益203.4%,纯因子组合年化收益26.2%,信息比率7.41中证1000指数增强扣费后多头年化超额收益24.5%,信息比率4.33。风险提示:量化模型基于历史数据,市场未来可能发生变化,策略模型有失效可能。 目录 1日频深度学习模型初探3 1.1从CNN到LSTM3 1.2神经网络股票周频收益率模型表现5 2股票静态内在属性及应用7 2.1股票内在属性的探究7 2.2基于基金选股网络的嵌入层计算9 2.3股票静态内在属性的应用10 3股票内在属性动态化应用13 3.1动态市场状态13 3.2股票内在属性动态特征的应用14 4总结与思考17 5风险提示18 插图目录19 1日频深度学习模型初探 1.1从CNN到LSTM 深度神经网络是一种基于多层神经元的无监督算法,它被广泛应用于计算机视觉、自然语言处理等领域。深度学习的主要神经网络模型包括:卷积神经网络 (ConvolutionalNeuralNetworks,CNNs)、递归神经网络(RecurrentNeuralNetworks,RNNs)、长短时记忆网络(LongShort-TermMemoryNetworks,LSTMs)、门循环单元网络(GatedRecurrentUnits,GRUs)等等。CNN是最早且最常见的深度神经网络模型之一。下图显示了一个CNN的整体架构,包括两个主要部分:特征提取和分类器。在特征提取层,网络的每一层都接收来自其前一层的输出作为其输入,并将其输出作为输入传递给下一层。分类器根据前面卷积层提取的特征计算每个类的得分,计算最终的输出(分类)结果。 图1:CNN结构示意图 资料来源:Alometal.[1],民生证券研究院 CNN网络结构的层与层之间是全连接或者部分连接的,但是每层之间的节点是无连接的,这样的结构不能很好地解决序列问题。相比之下,RNN通过每层节点之间的连接结构,来记忆之前的信息,并利用这些信息来影响后面节点的输入。RNN可充分挖掘序列数据中的时序信息和语义信息,这在处理时序数据时比全连接神经网络和CNN更具有深度表达能力。可以看到RNN的结构与传统神经网络结构大致相似,都是由输入层、隐藏层、输出层组成,区别在于隐藏层里的神经元是有链接的,这是实现RNN记忆特性的根本来源。图中的A并不是一个神经元,而是一个神经网络块,可以简单理解为神经网络的一个隐层。 图2:RNN结构示意图 资料来源:Alometal.[1],民生证券研究院 随着深度学习的发展,学者们发现RNN模型存在“长期依赖”的问题,并在此基础上提出了长短期记忆网络。LSTM可以解决训练过程中的梯度消失和梯度爆炸问题,简单来说就是在更长序列中有更好的表现。LSTM可以被简单理解为是一种神经元更加复杂的RNN,处理时间序列中当间隔和延迟较长时,LSTM通常比RNN效果好。 相较于构造简单的RNN神经元,LSTM的神经元要复杂得多。每个神经元接受的输入除了当前时刻样本输入,上一个时刻的输出,还有一个元胞状态(CellState)LSTM神经元中有三个门:遗忘门(ForgetGate):对应下图中的ft,接受Xt和ht-1为输入,输出一个0到1之间的值,用于决定在多大程度上保留上一个时刻的元胞状态ct-1。1表示全保留,0表示全放弃。输入门(InputGate):对应下图中it和𝐶̃�用于决定将哪些信息存储在这个时刻的元胞状态ct中,以及输出门 (OutputGate):用于决定输出哪些信息。 图3:LSTM结构示意图 资料来源:Alometal.[1],民生证券研究院 1.2神经网络股票周频收益率模型表现 深度神经网络模型在预测股票收益方面也有着广泛应用。Nelsonetal.[2]尝试了利用LSTM模型和一系列量价特征预测股票收益并取得了不错的效果。传统LSTM模型的最后一层是一个全连接神经网络,来将隐藏层的输出转为最后的预测。我们在本篇报告中则采用LSTM+多个全连接神经网络,即多层感知器(MLP)来作为股票收益预测的模型框架。并且我们尝试调整LSTM模型为双向来提升模型表现。预测股票周度收益率的模型细节如下: 数据输入:2013年至今中证1000成分股个股行情6个量价指标:开盘价,最高价,最低价,收盘价,成交量,均价(VWAP);资金流7个指标:大单净流入,大单主动净流入,小单净流入,小单主动净流入,北向净流入,超大单净流入,成交笔数,共13个指标。 数据窗口及预测对象:用过去80个交易日的量价及资金流数据预测五个交易日后的个股超额收益(开盘至开盘)。 数据处理:对每个样本内的个股数据的每个指标进行时间序列上的去极值,标准化,再对同时间的所有个股数据进行一次截面标准化。 模型结构及细节:双向LSTM(128,128)+MLP(256,64,64,1),每半年对过去825个交易日数据进行滚动训练,训练集与验证集8.5:1.5(打乱),损失函数MSE。 训练轮数:训练轮数最大为50轮,最小为20轮,若验证集R2持续降低 10次,则训练早停,并取验证集表现最佳的一次训练作为最终模型。 图4:深度神经网络股票周频收益率预测模型结构示意图 资料来源:民生证券研究院绘制 最近一次模型采用了截至2023年4月1日的中证1000个股行情数据,模型loss和R方随训练次数增加的变化如下图所示:可以看到验证集的训练表现并不理想,在五轮左右的训练之后开始出现一定的过拟合趋势,即训练集与验证集表现的背离。说明在仅用量价信息的情况下,模型没有足够的信息进行学习,在第一轮训练时就拟合出了较高的R方,并且在之后的训练中,学到的有效信息较少。 图5:LSTM+MLP模型训练loss变化图6:LSTM+MLP模型训练R2变化 资料来源:wind,民生证券研究院资料来源:wind,民生证券研究院 将上述训练得到的因子命名为DL因子,简单测试因子的多空收益和IC,近7年的因子周度IC为0.038,ICIR为0.51,年化多空收益为24.2%,多空IR为2.25。仅用个股日度行情和资金流等指标,已经可以初步训练出具有一定选股能力的因子。 图7:DL因子IC表现图8:DL因子多空收益及净值 资料来源:wind,民生证券研究院资料来源:wind,民生证券研究院 2股票静态内在属性及应用 2.1股票内在属性的探究 � 传统的多因子模型认为同一种因子的因子暴露对于所有的股票的影响是一样的。但我们稍加观察下图就会发现,对于具有不同的内在属性的股票,同一个因子即使在一段时间内取值大致相同,其股价走势也有着较大差异。即同一因子对于股价的影响对不同“种类”的股票是不一样的。上一节中,我们依靠LSTM+MLP的深度学习模型,从日度量价指标中生成了个股的因子表示𝑍𝑗,再将这些因子输入到MLP中进行收益预测。这一模型也同样假设了因子表示到股票收益端的预测模型是不随个股属性变化的,这一假设其实有很大的改进空间。 图9:股票A收盘价(元)与某一技术因子值图10:股票B收盘价(元)与某一技术因子值 资料来源:wind,民生证券研究院资料来源:wind,民生证券研究院 如何把股票分成不同种类,并发现影响因子表现的内在属性呢?其实只要给每只股票生成一个嵌入(Embedding),包含足够的信息即可。什么是嵌入?其本质上是利用目标所处的环境对其进行定义的一种方式,类似找到目标的各种应用实例,用这些应用实例的特征去反向定义目标。Lietal.[3]就曾尝试利用skip-gram算法计算股票的嵌入特征并应用到深度神经网络中。在目前的股票市场上,机构投资者占据了主导地位,他们在做决策时会考虑股票的内在属性,把股票分成不同的种类。其产生的应用实例就是基金的选股网络:每支基金在挑选股票时倾向于选择有相似属性/风格的股票,那么基金整体的持股网络便蕴含了个股间的某种属性分类。那么如何从基金的选股网络中生成股票的嵌入呢?我们采用了推荐算法中的矩阵分解(MatrixFactorization)方法,矩阵分解是协同过滤算法的改进,常被用于推荐算法中,寻找用户的潜在兴趣。比如从用户对电影的评分网络中,分解出用户的潜在喜好与电影的潜在性质,这与基金经理对股票的选择网络具有异曲同工之妙。 图11:矩阵分解的示意 资料来源:Corenetal.[4],民生证券研究院 � 矩阵分解在基金选股网络中也可以发挥相同的作用。矩阵分解算法本质上通过基金对于股票的显式评分,评估股票的隐式评分,即基金对于股票的投资行为,全部体现在了股票的内在属性上。矩阵分解是一个无监督学习,它通过不断最小化输入矩阵(真实值)与输出矩阵的乘积(预测值)间的误差来得到最终的输出。我们构建一个�行�列的矩阵𝛤,矩阵中的元素𝛾𝑖,�代表基金�对股票�的投资行为,即持股比例。�和�分别表示基金和股票的数量,之后按下图所示的方式分解得到股票j的表示𝑄�,这个𝑄�包括𝑞�和𝜇𝑠,即股票�的隐向量和bias。分解的目标函数为: min∑(� −(�+𝜇�+𝜇�+𝑝𝑇�))2+𝜆‖𝜃‖ �𝑖,� �� �� 其中,�,𝜇�是基金�的隐向量和bias,�表示模型中的其他偏差,‖𝜃‖是为了 �� 防止过拟合而引入的模型正则项。下图示意了当我们取embedding特征数为5 时的矩阵分解算法: 图12:基金选股网络的矩阵分解 资