2023年量化专题报告:基于可见性图嵌入的沪深300深度学习增强策略

  • 来源:民生证券
  • 发布时间:2023/10/16
  • 浏览次数:370
  • 举报

1 可见性图的构造以及图结构嵌入

1.1 可见性图

可见性图(Visibility Graph)是一种将时间序列数据转化成图结构的方法。 抽取可见图的结构特征并训练分类器的方法被广泛用于时间序列数据的分类问题。 可见性图的定义如下:对于一个时间序列P = (1 , … ),其可见图表示为:给定 两个数据点( , )和( , ),若其中的所有数据点(, ), < < 满足: < + − − ( −),则两点的连线视为一条“边”(edge),时序中所有符合条件的数据点以及其“边” 的集合即为这一时序的可见图。用更直观的角度解释:若将一个时间序列表达为 一个柱状图,依次站在柱子的顶端“往前看”,如果可以“看到”任意一条柱子 的顶端,则在这两条柱子间连接一条线,形成具有网络结构的边。

可见图方法通过结构图直观地展示时间序列映射后的复杂网络,此时的复杂 网络继承了时间序列的属性。使用可见图方法转换时间序列为复杂网络的方法最 早可以追溯到 2008 年 Lucas Lacasa 等人的论文 From time series to complex networks: The visibility graph [1],我们可以把时间序列数据中的时间信息转 换为复杂网络的节点位置信息,时间序列中的可见性关系转换为复杂网络中节点 与节点间的连线关系,这种可见性的连接关系同样刻画了时间序列数据中数值的 相对大小关系。但不同于时间序列的两个维度 t(时间)和 y(数值)维度,可见图的 最终表示形式则为一个 × 的矩阵Γ,若点与点有连线,则矩阵中的元素 = 1,否则为 0。下图展示了某一只股票在 2019 年底的 20 天收盘价构造的可见性 图,可视化复杂网络,及矩阵化表示(红色为 1,白色为 0)。

可见性图及其特征被广泛应用于时序数据的预测中。比如,在 Daoyuan Li, et al 在 2018 年发表 的论文 Extracting Statistical Graph Features for Accurate and Efficient Time Series Classification [3]中,作者将可见性图中提 取出的多个特征输入 XGBoost 模型,对 UCR 大学创建的时间序列数据集中的多 个时间序列数据进行了分类,并取得了显著的分类效果,证明了可见性图的结构 特征可以对样本进行分类。从这一角度出发,我们可以将可见性图结构特征的分 类效果应用到股票市场中,将可见图结构特征作为股票的潜在属性,输入到神经 网络中,提升模型的预测效果。 在 A 股中,可见性图中的结构性特征对股票有一定的选择效果,其逻辑在于 结构中蕴含的波动性与趋势。最简单且常见的图结构特征为平均最短步长,即每 个节点连到其他点最短步长的平均。想象一种 U 型价格走势,按照可见性图的规 则,图中的所有价格点都可以“看见”彼此,则类似的图结构有着最低的平均最 短步长(一步就可以从任一点到任一点);反之,若价格走势为倒 U 型,则图结 构有着最高的平均最短步长。根据类似图结构中包含的波动率与趋势信息,我们 可以构建简单的选股因子。例如,我们可以基于股票过去 20 个交易日收盘价可 见性图的平均最短步长减去负收盘价可见性图的平均最短步长,构建日频选股因 子,在全 A 上取得 0.03 的日度 IC。

1.2 复杂网络的节点权重

除了每个网络的图结构特征外,我们还需要考虑每一个网络节点的权重,因 为每个节点蕴含的信息权重是不一样的。在传统的复杂网络分析框架中,有很多 方法可以用来衡量节点权重,如度中心性,介数中心性,接近度中心性等。我们 采 用 Flaviano Morone and Hernan A. Makse 于 2015 年发表的论文 Influence maximization in complex networks through optimal percolation 中提到的 Collective Influence [3]算法,根据 Morone 等人的研究,CI 算法计 算高效,并且相比起传统权重计算方法,可以更好识别网络结构中的节点贡献。 在 CI 算法中,要计算点 的 CI 指数,首先从点出发,跳步可以到达的所有点的 集合(即距离点的最短步数为的所有点)构成以点为中心,半径为=2 的“球 面”,表示为(, )。

1.3 从图结构中提取嵌入信息

上一节中我们提到,传统的复杂网络用人为定义的结构特征,如平均最短步 长,对时序数据进行分类。尽管这种传统的方法已经被证实过对时序数据有一定 的分类效果,我们选择用一种更有效的训练方式来抽取复杂网络的图结构特征— —结构向量法(Struc2vec),此方法由 2017 年 Leonardo F. R. Ribeiro 等人发 表 的 研 究 struc2vec: Learning Node Representations from Structural Identity 中提出[4]。结构向量法是一种将复杂网络中的节点表示为嵌入向量,并 用其进行分类的无监督学习算法。与传统的图嵌入方法相比,struc2vec 更加高 效,且在多个数据集上分类更加精确,并可以应用于大规模图的嵌入。需要注意 的是,1.2 中提到的 CI 指数与结构向量法是两个独立的算法,CI 指数衡量的是 复杂网络中每个节点的信息权重,而结构向量法则是从这些节点中提取潜在特征, 将节点信息变为嵌入向量,2 种算法作用不同,并无关联。在后续模型构建中,我们计算可见性图后将分别计算 CI 节点权重与结构向量嵌入,并输入到神经网 络中进行预测。

Ribeiro 等人认为,一个好的可以反映节点结构特性的方法需要使得嵌入 embedding 向量间的距离可以反映节点之间的结构相似性,即两个局部结构相 似节点的嵌入距离应该相近;并且节点表示不依赖于节点本身的属性,边的属性 以及节点标签,即使两个节点离的很远,也能够识别出他们在结构上的相似性。 基于上述目的,作者提出了结构向量算法,将每一个节点表示为嵌入向量。核心 思想是:先根据节点相似度构建多个图层,在其中进行多次随机游走并构建上下 文环境,再将上下文环境套入 Word2vec 算法中的 skip-gram 模型,学习每个 节点的向量表示。skip-gram 模型是一种用于生成词向量的神经网络模型。它的 目标是通过学习上下文信息来捕捉单词之间的语义关系。具体而言,skip-gram 模型试图预测给定一个中心单词周围出现的其他单词。举个例子来说,假设我们 有一个句子:“北京的天空很蓝”。在 skip-gram 模型中,我们将选择一个中心单 词比如“天空”,并尝试预测它周围出现的其他单词。通过这样的训练过程, skip-gram 模型可以学习到每个单词在不同上下文中的表示,对应到复杂网络中, 即可以学习到每个节点在随机游走构建的上下文环境中的向量表示。

结构向量法的大致计算步骤如下: 1. 根据不同距离的相邻节点信息,对 K*个 k 跳邻域分别计算每两个节点的 相似度,即计算 K*个层级的相似度信息,其中 K*为网络的直径,即网络 中任意两点距离的最大值。计算相似度的核心思想是,如果两个节点的 度相同,那么这两个节点结构相似;如果这两个节点的邻居度也相同, 那么这两个节点的结构相似性比前者更高。图 5 中左边展示了一个网络 中点 u(黄色点)的 1,2,3 跳邻域1 (), 2 (), 和3()(即绿色点的 集合),以及节点 u 和 v 的相似度算法示意,其中 g 代表了2 ()和 2 ()的距离函数,具体算法在本文中不再赘述。 2. 构建一个带权重的多层图,层数为 K,每个图层中都包含网络中的所有 节点,且每两点间均有边,边的权重与以这一层的层数 k 计算的两点的 结构相似度有关,两个点结构相似度越高,这条边的权重越高。 3. 使用有偏的随机游走生成每一个节点的路径:对于每个节点,从基层开 始进行随机游走,节点的每一次游走可以走到同一层的其他点,或是上 下层的同一点,概率与步骤 2 中的边权重有关。

2 模型结构与开箱分析

2.1 基于图结构嵌入的深度神经网络

基于可见性图的图结构嵌入可以应用到深度神经网络中。我们在上一篇深度 学习的专题报告《深度学习如何利用公募持仓网络优化选股效果?》中,论证了 神经网络中加入股票潜在属性嵌入的可行性,提出了用股票动态的潜在属性影响 因子表示并预测股票收益的方法(即将 embedding 与 LSTM 输出的隐藏层一起 拼接到 MLP 中)。在本篇报告中,我们参考 Wu, J. et al., 2022 [6]中提出的图结 构嵌入的神经网络预测模型,采用类似的思路:我们在 1.3 中提出了用结构向量 法构建每一个可见性图的嵌入表示,以此来表示股票的潜在属性。接下来,我们 在预测模块中将图结构嵌入输入到深度神经网络中,进行股票涨跌预测。

2.2 DA-RNN 网络

两阶段注意力循环神经网络 Dual-stage Attention-based RNN,即 DARNN,可以通过按照时间顺序上不断训练结构性信息,用双步的模型结构提取图 结构嵌入特征并输入到特征处理中,影响原始价量数据的建模。DA-RNN 由 Yao Qin 等人在 2017 年发表的论文 A Dual-Stage Attention-Based Recurrent Neural Network for Time Series Prediction [7]中提出。DA-RNN 是一个双阶 段的注意力机制循环神经网络模型,主要思想就是将前 t 个时间步的信息利用编 码器 encoder 编码到一个融合吸纳前 t 个时间步信息的定长向量,然后使用解码 器 decoder 进行解码对后续的时间步骤进行预测。与传统的将 embedding 特 征与隐藏层进行拼接不同,DA-RNN 用 Encoder-Decoder 的结构纳入嵌入信息, 充分利用了之前提取的结构特征。在 Encoder 中,我们在每一个时间步输入图嵌 入以用一个 LSTM 提取隐藏特征,并将上一个时间步的隐藏特征输入到这个时间 步,并使用输入注意力机制来选择相关特征,赋予每个特征一定权重;随后我们在模型的第二步 Decoder 中加入原始量 价数据以及 CI 算法计算的节点权重,并加入时间注意力机制来选择整个时间步 长中相应的隐藏层状态,并计算最终 的隐状态,即因子表示。

2.3 CAAN 网络

跨资产注意力网络 CAAN(Cross-Asset Attention Network) 可以对股票 间的相互关系进行建模,作为注意力机制的来源。CAAN 最早由 Jingyuan Wang 等人于 2019 年发表的论文:AlphaStock: A Buying-Winners-andSelling-Losers Investment Strategy using Interpretable Deep Reinforcement Attention Networks [8]中提出。传统的 self-attention 注意力 机制着重学习输入特征在时序上相关性较高的部分,而跨资产注意力网络则以股 票间因子的相似度作为注意力机制的来源。我们将上一步中得到的因子表示输入 到 CAAN 中,给定资产表征,我们计算出股票 i 的查询向量,密钥向量,和价值 向量, () = () () , () = () () , () = () ()。其中() , ()和()是 待学习的参数矩阵。资产 j 与资产 i 的相互关系被建模为使用资产 i 的 ()来查询 资产 j 的密钥 (),即 ()与 ()的内积,然后,将相互关系{}作为权重,将 其他资产的值向量{ () }加起来,成为一个归一化加权得分 () = exp () ∑ exp ( ′) ′=1 ∙ (),作为个股的得分。

2.4 图结构特征对股票的分类效果

结构向量法提取的图结构特征刻画了股票的潜在属性,因而对股票有一定的 分类效果。在师野等作者于 2022 年发表的论文《基于可见图方法的股票行业分 析》中,作者用收盘价的平均度,聚类系数,紧密中心性等特征对美国道琼斯指 数中的 30 只股票进行了聚类,得到了近似于行业的分类结果。这表明相似属性 的股票理应具有相似的价量图结构特征。我们取 2019 年年底截面上沪深 300 的 所有股票,用训练好的模型提取出 DA-RNN 编码器的输出,即个股的 32 维隐状 态。这个隐状态表示了股票在这一截面上的“潜在属性”。潜在属性应是无法直 接量化的属性,它可以是多种风格和行业属性的叠加,或者是更深层次,暂时无 人发掘的股票属性。

从结果可以看出,每一类股票都有较为明显的多种风格偏离,且不尽相同。 类别 1 以高贝塔,低流动性,低动量,高价值为主;类别 2 以高贝塔,高流动性, 高动量,低价值为主……以此类推,发现每一类股票都有较为明显的多种风格。 纵向来看,在 beta,动量,价值等风格因子上,10 类股票的标准差较大,证明 在这些风格上,结构特征对股票的区分度较高,或者说股票在这几种风格上对图 结构特征较为敏感。

观察行业在各个类别上的分布,可以看到图结构特征在证券,医药,银行等 行业的区分效果比较明显。而在一些周期性行业如基础化工,国防军工,能源, 汽车等行业上,图结构特征的分类效果相对较弱。总的来说,可以认为图结构特 征根据股票的行业,风格和潜在属性,对股票进行分类,从而在 DA-RNN 解码 器中发挥作用,输出更加动态,包含更多股票潜在属性的因子表示。

3 模型效果实证

3.1 参数选择及准确率衡量

模型数据输入与参数选择具体如下表。大多数参数选择均与参考论文中披露 的一致。建模时,我们选择了沪深 300 成分股作为股票池,主要考虑到沪深 300 的流动性较高,以及结构向量法的中间结果较大,无法一次训练过多数据等原因。 训练采用 80G 内存,RTX4090 显卡的服务器。Struc2vec 训练单个量价指标中 间结果需要 10 个小时左右,预测模块训练单次 epoch 需要 5 分钟左右,整个训 练过程需要运行 3 天左右。故全历史训练单次需要一周左右。

我们采用混淆矩阵来衡量模型预测表现。混淆矩阵是衡量分类型模型准确度 中最简单,直观的计算方法。它分别统计了分类模型归错类,归对类的观测值个 数。我们取下一日股票上涨为 1,即 positive,下跌为 0,即 negative。本质上, 模型在最后全链接层加入 sigmoid,决定了模型的预测值为下一个交易日个股的 上涨概率,故若预测值大于 0.5,我们就认为个股会上涨,预测值取 1,反之则 取 0。

3.2 模型选股表现

我们取每次训练验证集表现最好的一次训练作为最终模型,将模型输出的涨 跌概率作为个股 struc_learning 日频因子,在沪深 300 上回测日频选股效果。 回测日期 2019 年 1 月 4 日至 2023 月 18 日。用当天因子值对应第二天开盘价 到第三天开盘价?计算因子日度 IC 与分十组年化收益,因子表现出色,日度 IC 均值 0.16,ICIR1.2,分十组收益单调性强。

对 struc_learning 因子做市值行业中性化,中性化后因子 IC 均值下降到0.1,ICIR1.13,分组收益单调性依然显著,但收益下降明显。

计算因子多头组合收益时,考虑到每日的开盘价竞争较为激烈,我们采用每 日 9:35 的价格作为成交价格,避免股价高开,以至于因子表现虚高。

对于中性化因子表现下降较多的原因,我们对多头组合持仓计算主动风格暴露及行业暴露,我们计算每一期的因子暴露并统计均值,发现组合的持股并没有 在风格和行业上有过大偏离,相对较为明显的风格是沪深 300 内的相对中小市值, 以及低配了食品饮料,银行等行业。在深度学习中,我们预测的是绝对收益,预 测结果中本身就包含了对风格和行业收益的预测,对因子做中性化则剥离掉了这 部分收益,得不偿失。

近年来,传统机器学习因子表现波动较大的环境下,struc_learning 因子仍 然有着优异的表现,对比我们之前发布的报告《深度学习如何利用公募持仓网络 优化选股效果?》中的 baseline LSTM 模型,效果有着明显提升。这也证明了基 于可见性图结构嵌入的神经网络在选股上的可行性。 对因子多头组合做策略容量大约在 1 千万左右。我们取每日 9:35-9:40 的成交量最小股票的成交量乘以当天的持股数量,得到理想情况下,9:35-9: 40 全 部 成 交 情 况 下 的 当 日 策 略 容 量 测 算 , 进 行 10 日 的 移 动 平 均 , struc_learning 因子多头组合平均每期持有 28-30 支股票,理想情况下策略 4 年 平均容量为 1.1 亿。若假设这部分成交量中实际情况下可以成交 10%,则策略容 量在千万左右。

3.3 模型择时表现

由于因子多头组合策略容量较低,我们考虑提升组合的持股数量来增加策略 容量,即从截面选股策略改为类择时策略。我们对 struc_learning 因子做标准化, 将因子值减去 0.5 后除以当天因子值标准差,得到标准化 struc_learning 因子, 并按照因子值按比例买入因子值大于 0 的股票,构建 struc_learning 因子沪深 300 增强组合,组合平均持股 137 支,用类似的方法估算策略容量,增强组合策 略容量平均为 24.7 亿,有明显提升。

增加持股数量后,策略收益有所下降,但跟踪误差也有所降低,仍能取得良 好表现。样本外仍能有 60%以上的胜率,证明了模型的有效性。

由于模型在沪深 300 成分股中优秀的选股与择时能力,我们考虑用个股信 号合成股指信号,构建沪深 300 指数仓位择时策略,以探索模型在股指期货策略 上的潜在应用意义。具体地,我们取模型预测的个股日度涨跌概率,以市值加权 至沪深 300 股指信号,生成沪深 300 股指日度涨跌概率信号,信号波动较大, 分布略微左偏。

我们直接取当日沪深 300 日度涨跌概率信号作为持有沪深 300 指数的仓位 比例。依然按照 9:35 分开盘价进行日度调仓,并且取双边千分之一作为回测费 率日频调仓,总体预测正确率 64%,正确率较高。超额收益在历史上回撤原因主 要为在市场行情较好时,没有满仓而导致的回撤。最终年化超额收益 13.3%,信 息比率 1.47。

若我们采用更为激进的策略,保持胜率不变的情况下提升赔率,则可以取得 更好的策略表现。我们规定若预测上涨概率为 50%以上,则全仓持有沪深 300 指数,否则在第二天上午 9:35 分卖出指数并空仓。这样一来,策略的波动率有 显著上升,但收益可以获得更显著的提升。

若可以做空,则策略可以取得进一步收益。我们考虑不同信号阈值下的多空 策略,分别尝试以[0.5, 0.5], [0.45, 0.55], [0.4, 0.6], [0.35, 0.65], [0.3, 0.7]五组阈值为多空信号下,模型的胜率和多空收益,例如[0.4, 0.6]代表若预测指数上涨 概率小于 0.4,则卖空;大于 0.6,则买多,若介于 0.4 与 0.6 之间,则空仓的策 略收益与胜率(若空仓则不计入胜率统计)。随着阈值增加,信号变窄,模型胜 率有明显提升,然而长时间的空仓导致了收益有一定下滑,在[0.45, 0.55]的阈值 信号上多空策略有最大的夏普比率。

4 总结与思考

在本篇研究中,我们利用沪深 300 内股票的价量信息构造可见性图复杂网络, 使用结构向量法提取出图结构嵌入,输入到预测模块 DA-RNN+CAAN 中,预测 下一日的股票上涨概率,取得显著效果,在选股和择时方面都有较好效果,证明 了可见性图嵌入深度神经网络的可行性。 可见性图是一种将时间序列数据转化成一张图结构的方法。抽取可见图的结 构特征并训练分类器的方法被广泛用于时间序列数据的分类问题。复杂网络每个 节点的权重不同,我们采用 CI 算法定义节点权重,衡量节点及其局部结构在整 个网络中的重要性。

利用结构向量法提取图结构特征,可以刻画股票的潜在属性。与传统的图嵌 入方法相比,struc2vec 更加高效,且在多个数据集上分类更加精确,并可以应 用于大规模图的嵌入。最后,利用二阶段循环神经网络与跨资产注意力网络构造 预测模块,从而纳入潜在属性及股票间的相互关系。两阶段注意力循环神经网络 DA-RNN 可以通过按照时间顺序上不断训练结构性信息的模型结构,提取图结构 嵌入特征,在生成股票因子表示时纳入股票的潜在信息。跨资产注意力网络 CAAN 可以对股票间的相互关系进行建模,计算 batch 内因子表示的相似度,作 为注意力机制的来源。 利用混淆矩阵来衡量模型准确率,验证集内准确率 68%,精确率达 70%。 日频模型选股和择时效果显著,合成股指信号依然有效。将模型预测的个股日度 上涨概率作为日频选股因子 struc_learning,因子日度 IC 均值 0.16,ICIR1.2; 中性化后因子表现有所下降,但选股效果依然显著。日度调仓多头组合年化超额 收益 95.6%,信息比率 8.0,但策略容量较低。增加持股数量构建沪深 300 增强 组合,组合平均持股数量 137 只,策略容量显著上升,年化超额收益 46.7%,信 息比率 5.87。用个股信号合成股指日度涨跌概率信号,并构建沪深 300 仓位择 时策略,年化超额收益 13.3%,信息比率 1.47,预测涨跌准确率 64%。

基于可见性图的时序预测有效窗口期较短,较为适合日频策略,若增加自变 量窗口期或者用周 k 建模,效果有较大衰减。深度学习策略可解释性相对较弱, 若未来策略失效,无法归因,重新训练参数耗时较长,这也是深度学习策略的通 病。


(本文仅供参考,不代表我们的任何投资建议。如需使用相关信息,请参阅报告原文。)

相关报告
评论
  • 相关标签
  • 相关专题
  • 相关文档
  • 相关文章
  • 全部热门
  • 本年热门
  • 本季热门
  • 最新文档
  • 最新精读
分享至