2024年PatchTST、TSMixer、ModernTCN时序深度网络构建量价因子

  • 来源:华创证券
  • 发布时间:2024/03/12
  • 浏览次数:243
  • 举报

一、动机

时序类数据广泛存在各个领域中,传统基于统计的方法需要专业的先验知识以及人工特 征处理,基于机器学习、深度学习的方法减轻了这种负担,它们以数据驱动的方式学习 时间序列中的潜在模式,提供了富有吸引力的方案。 近年,许多基于深度时序模型的工作被提出,依托于神经网络强大的表示学习能力以及 不断优化的模型设计,深度学习网络在解决长期依赖性和动态变化等问题上有了更强的 能力,在多个领域的时序任务展现出了优秀的性能,包括但不限于金融市场、气象、交 通等。 尽管许多时序深度模型都声称取得了重大成就,但相关工作的结论是否适用于其研究外 的数据集、应用场景,模型的泛化能力,是值得思考的。

在本文中,我们以深度学习模型骨干网络中的所用的基础架构为分类基础:  RNN:循环神经网络是一个经典的处理序列数据的网络架构,它紧凑地“记忆”过 去信息并利用更新的数据进行迭代,因此也常被用于时间序列任务。 Transformer:Transformer 模型基于注意力机制,可以同时处理输入序列的所有位置, 并能捕捉序列中长距离的依赖关系。Transformer 模型在 NLP 领域取得了巨大成功 后,其变体模型被广泛尝试应用于图像、时序等任务中。 CNN:CNN 最初是为处理图像数据设计的,但它也可以用于时间序列数据,例如通 过一维卷积操作,CNN 能够实现捕捉序列中的局部特征。 MLP:一些研究指出,通过合理设计的 MLP 架构的简易模型,也能够达到与复杂模 型相媲美的性能水平。

在我们之前的报告中采用了基于 RNN 的 GRU 网络进行量价因子挖掘任务,因此在本篇 中我们从剩下的三类中——Transformer、CNN、MLP,分别选择近年较为流行的时序模 型继续进行探索; 事实上,基于 Transformer、CNN、MLP 的时序模型数之不尽,最终我们选择 PatchTST、 ModernTCN、TSMixer 作为代表,它们的骨干网络设计思路上相似,采用了近年时序网 络流行的做法,有一定借鉴意义;其次,每个模型以对应的基础架构为主体,分别仅用 自注意力、卷积、MLP 完成信息提取,而不使用不同类别堆叠;最后,模型设计简洁, 便于添加额外组件。

二、模型介绍

在我们之前的报告《GRU 网络在风格自适应中的创新与应用》中,我们尝试了基于 RNN 的 GRU 模型,GRU 由 Cho 等在 2014 年提出,它在每个时间点上通过门控单元自适应地 捕获序列数据中的依赖关系,在股价序列的因子挖掘任务中是一个常见的基线模型。

本篇介绍的 PatchTST、ModernTCN、TSMixer 模型,它们为多变量时间序列设计,采用 了近年时序网络常见的 Patch+通道独立的设计,并在骨干网络中用多个模块分别实现时 序信息交互的学习、通道/特征的信息交互的学习。

(一)时序嵌入

Embedding(嵌入)是深度学习中一种表示技术,例如自然语言处理中,通常将单个词转 为“词向量”的形式。词被映射为固定维度的向量后,模型能够学习词与词之间的更为 复杂的模式和关系。时序数据在输入深度学习模型前同样也需要进行嵌入,获取时间序 列的向量表征。和自然语言的不同之处在于,现实中的时序数据大多是多变量时间序列, 自然语言可以视为单变量时间序列。

1、Patch

Patch 指将输入数据分为多个局部区域,在视觉领域有较多运用。例如一张图片按一定窗 口大小切分成多个子区域,将子区域排列后转为序列数据,每个区域可以看作类似自然 语言序列中的一个 token,进而能使用序列模型对图片进行建模:

本篇介绍的时序模型均在 Embedding 时采用了 Patch 的时序处理方式。 Patch 在时间序列类数据的方法类似于图像:在原始时间序列上使用一个固定大小为 P 的 窗口进行滑动截取,窗口每次滑动的步长为 S,由此原始时间序列被拆分为若干个子序 列,每个子序列包含 P 个时点的数据,子序列被视为一个 token,映射至目标嵌入维度。 使用 Patch 处理的优势在于: Patch 后新序列长度近似为原序列的 1/S,降低了计算成本;  有研究提出时序类数据单独一个时点的信息量较少,而 Patch 实质上实现了局部信 息提取,使单个 token 能包含更多信息; 鉴于上述优点,Patch 成为了近年的时序模型中常见的做法。

2、通道独立

对多变量时序任务,“通道”指输入序列的变量,而“特征”表示序列 token 经过 Embedding 后在骨干网络中的隐状态维度。通道独立(channel-independent)是近年网络的一类处理 方法,表现为将多变量序列拆分多个单变量序列,共享同一个网络,深度学习模型对单 变量序列输入产生对应的单变量输出序列。最近相关工作(例如,Nie 等人,2022;Zeng 等人,2023)表明,通道独立的模型设计优于通道混合模型。 通道独立的设计在 Embedding 阶段做法为,每个输入的 token 只包含来自单个变量(通 道)的信息。与通道独立对应的概念是通道混合,每个输入 token 含有来自多个变量的信 息。

(二)PatchTST

PatchTST 由 Nie 等 2022 年提出,是一种基于 Transformer 的时序模型,它将同样基于 Transformer 的视觉模型 ViT 的思想运用在了时序类数据上。

1、Transformer

Transformers 在论文 Vaswani, Ashish, et al. "Attention Is All You Need."中首次提出,首先 被广泛应用于 NLP 任务,近年模型的核心之一是自注意力机制(Self-Attention),它通过 自注意力机制使序列中的任何部分进行交互,从而有效地捕获长距离依赖关系。

关于 Transformer 中涉及的自注意力机制的原理此处不再赘述。 若我们希望将 Transformer 用于时序任务,最为简单的流程是将每一天的 M 个变量作为 一个 token 进行 Embedding(即通道混合),使用 encoder 部分的自注意力机制进行时序 信息提取,最后取整个序列的表征,输入下游任务的预测头得到最终输出。

2、PatchTST

经过 Patch Embedding 后,PatchTST 模型将多变量序列中的每一个序列看作一个独立样 本,将单变量序列输入模型 backbone(Transformer encoder)中,通过注意力机制学习时 序的依赖关系,最后拼接不同变量的输出。 以一个多变量时序预测任务为例,假设输入序列变量数为 M,输入每个变量过去 L 天的 数据、目标为预测每个变量未来 T 日; 从一个 batch 数据形状的角度看,输入数据形状为(?, ?, ?),其中 B 为 batch 大小,M 为 变量数,L 为原始序列长度;patch embedding 后数据形状变为 (?, ?,?, ?),其中 N 为新 序列长度,D 为每个 token 的嵌入特征维度; 在进入模型 backbone 之前,PatchTST 模型将 B、M 维度合并,数据形状变为 (??,?, ?), 表示将每个变量视为一个单独的样本,一个 batch 中的样本数量变为 (??) ,encoder 接 受单变量输入,输出形状同样为(??,?, ?),经过预测头、拼接合并后得到预测输出形状 为(?, ?, ?),即得到了每个输入样本的多变量预测结果。

(三)TSMixer

在上文的 PatchTST 中,模型将一个多变量时间序列视为多个独立的单变量时间序列,缺 少考虑不同通道(变量)之间的交互作用。在后续的工作中,一种常见的流程是保留通 道独立的同时,在骨干网络中加入通道交互模块,让模型进行预测时能考虑到不同变量 之间的交互信息,更符合直觉。TSMixer 由 Ekambaram 等于 2023 年提出,通过基于 MLP 的模块完成时序、特征、通道间的交互信息提取。

1、门控注意力

TSMixer 作者在 MLP 块后添加了一个简单的门控注意力(Bahdanau 等,2014)加强 MLP 信息抽取能力,它比自注意力机制简单,起到特征加权的作用。

2、TSMixer Backbone

TSMixer 同样先对数据进行 patch embedding,骨干网络由时序信息提取模块、特征信息 提取模块、通道信息提取三个模块组成,三个模块则均由 MLP、门控注意力、残差连接 构成,通过调整输入 MLP 层的数据形状实现不同类型的信息抽取。TSMixer 同样使用了 Patch+通道独立的设计,相比于 PatchTST,它的骨干网络包含了通道信息交互提取。

(四)ModernTCN

ModernTCN 在骨干网络中同样包含时序、特征、通道的信息提取模块,流程同 TSMixer 类似,区别在于各个模块采用了卷积网络实现。 在 Patch Embedding 步骤,ModernTCN 与上述模型略有不同,它采用 1D 卷积实现,kernel size 对应 Patch 的窗口大小 P,stride 对应为 Patch 的步长 S,输出通道数对应目标嵌入维 度 D。

1、分组卷积

自 AlexNet 在 2012 年赢得 ImageNet 比赛后,更大、更深的神经网络逐渐成为研究主流。 虽然模型深度对于提高性能有重要影响已经成为了共识,但这些更大更复杂模型始终不 可避免需要面对一个现实应用的问题——如何在计算资源有限的硬件平台上执行算法。 分组卷积技术提供了一种可行的方案以缓解上述问题,它在不显著影响准确性的同时,减少了计算成本和参数数量。

2、深度可分离卷积

深度可分离卷积(Depthwise Separable Convolution)最早由 Sifre 提出,在 MobileNets 和 Xception 等模型中有应用。深度可分离卷积对图像的空间特征、通道特征进行单独、分步的学习,它将标准的卷积核分解为两步:深度卷积(Depthwise Convolution)和点卷积 (Pointwise Convolution): 深度卷积对每个输入通道单独对应一个卷积核(每个卷积核的通道数为 1),可以看 作分组卷积的一种形式(分组数等于输入数据的通道数),一个通道数为 c 的输入数 据经过深度卷积后,输入数据的通道数同样为 c; 在上一步的深度卷积中,相当于对每个通道进行了单独学习,没有考虑不同通道之 间的交互;深度可分离卷积的第二步为点卷积,采用了 1×1 的卷积,组合不同通道 得到最终输出。

3、ModernTCN Backbone

在之前的部分我们简单介绍了深度可分离卷积,它由深度卷积(Depthwise,简写为 DW 卷积)和点卷积(Pointwise,简写为 PW 卷积)两步组成,深度可分离卷积的特点是将图 像的空间信息、通道信息抽取单独处理。 经过 ModernTCN 的 Patch 处理后,一个样本的形状为(?,?, ?),其中 M 为变量维度、 D 为 Embedding 后的特征维度,N 为序列维度。进行卷积操作前需要将 M 和 D 维度合并 为通道维度,变为(? × ?, ?)。 ModernTCN 也用了其解耦的方案,将变量/特征的时序信息学习、通道交互两个步骤用单 独的模块进行处理。 DWConv 模块实现了深度可分离卷积中的第一步——深度卷积,深度卷积不提取通道之 间的交互,输入通道数量等于输出通道数量(? × ?)。在时间序列的语境下,它表示对 每个变量进行了时序信息提取。 接下来,类似深度可分离卷积的第二步的点卷积,后续的两个 ConvFFN 模块(按顺序记 为 ConvFFN1、ConvFFN2)被设计用于对不同通道维度的信息进行学习。

点卷积采用了分组卷积技术,两个 ConvFFN 采用不同的分组逻辑: ConvFFN1 分组数设置为 M,此时分组点卷积表示学习同一个变量的特征交互; ConvFFN2 分组数设置为 D,此时分组点卷积表示学习同一特征维度不同变量的交 互。 经过 2 个 ConvFFN 后,通过残差连接便得到一个 Block 的输出结果。 此外,ModernTCN 还在 DWConv 中采用了大核卷积技术,在此不再展开。

(五)小结

三个模型都采用了通道独立的设计,通过骨干网络学习时间、特征以及通道的交互。下 面我们以常见的通道混合设计的 GRU 和 ModernTCN 为例,简单对比两种思路的区别: 以一只股票的 5 天价格序列为例,它的变量为高、开、低、收,我们将其嵌入为 D 维向 量。

对 GRU 网络,在 Embedding 阶段,将每一天的高、开、低、收作为一个 token,输入模型的每个样本为长度为 5 的 token 序列;每个 token 的维度为 4,我们 将其映射到更高的维度得到 D 维特征表征,通过后续的 GRU 网络学习不同时点的 信息交互;

对 ModernTCN 网络,在 Embedding 阶段,用大小为 P 的窗口在每个变量 时序上进行滑动截取,得到 4 条长度为 N 的新序列,每个窗口中 P 个时点的数值被 视为一个 token,将 token 映射到 D 维后输入骨干网络,骨干网络根据单变量序列输 入产生对应输出,最后将每个单变量的输出拼接还原为多变量序列,骨干网络对时 序、嵌入隐状态、不同变量间的交互进行了学习。

如何实现骨干网络中的时序信息交互、变量/特征信息,PatchTST、TSMixer、ModernTCN 分别使用基于多头自注意力、门控 MLP、卷积的模块设计。 我们认为,Patch Embedding、骨干网络的解耦思路具有一定参考意义;从股价或因子类 时序数据的特点看,Patch +通道独立的方法或是通道混合的方式,二者均有合理之处, 通道混合时表征了每天的蜡烛图,通道独立时表征了单个变量的局部时间特征,无法直 接得出孰优孰劣的结论。在后文,我们在上述三个模型的基础上再加入通道混合的 Transformer 进行对比,检验上述模型在端到端量价因子挖掘任务中的表现。

三、量价因子挖掘测试

(一)数据集介绍

数据集说明: 2007-2024 年 2 月 2 日 A 股日频量价数据,包括高、开、低、收、均价、成交量 6 个序 列,我们以每周的最后一个交易日?为截面,回溯截面上??个股票过去 30 个交易日的数 据,作为一个截面(对应??个标签),以此滚动生成数据截面(?1,30,6)、(?2,30,6)…(?? ,30,6),在第一个维度上进行拼接得到全部训练数据。 同时,我们在周度截面股票进行如下排除: 1、剔除上市不满 120 天的股票; 2、剔除流通市值最小的 10%的股票; 3、剔除有数据缺失的股票。

在进行模型重训练时,设置 3 个随机种子,将 3 次预测结果合成作为最终结果。 数据预处理方法: 在拼接数据截面(?1,30,6)、(?2,30,6)…(?? ,30,6)之前,进行如下的预处理步骤: 1、MAD 法对异常值进行缩尾处理; 2、每个截面用最后一个交易日作为除数进行归一化,再进行 Z-score 标准化;

模型预测标签: 预测标签为标准化未来 10 日收益(t+1 日~ t+11 日以收盘价计算),每个模型最终预测头 输出维度均设置为 50,将 50 个因子用均值聚合,作为每只股票的最终得分,计算其与上 述未来 10 日收益的 IC 作为损失函数。

(二)模型流程

我们测试 PatchTST、Transformer、TSMixer、ModernTCN 模型。我们在 PatchTST 骨干网 络中也加入一个基于自注意力机制的通道交互模块;对 PatchTST 和 Transformer 模型, 在时序编码时添加可学习的特殊 token(类似自然语言中的[CLS]),用于获取序列表征。

除 Transformer 模型外,其余通道独立模型的样本经过 Backbone 的输出形状为(?,?, ?), 在进入最后预测头之前我们进行如下处理: 对 TSMixer 和 ModernTCN 模型,合并 D、N 两个维度并用一个 Linear 层消除时序 维度,数据形状变为(?,?),最后合并 M、D 两个维度; 对 Transformer-base 的模型,取每个变量的特殊 token 作为单变量序列表征,数据形 状变为(?,?),合并 M、D 维度。

(三)参数设定

本文介绍的模型涉及参数较多,我们对主要参数进行设定说明: 在 Patch Embedding 步骤,我们将 S 固定为 P 的一半,考虑到输入序列长度仅为 30,因 此取S = 2、P = 4的参数组合;TSMixer、ModernTCN嵌入特征维度D设定为16,PatchTST、 Transformer 设定为 32,注意力头数为 2;所有模型的层数设定为 1;在后续章节,我们 进行更多参数的测试,以进一步了解模型各个组件、参数的影响。

(四)因子测试

1、IC 测试结果

在本部分我们展示不同模型因子的 IC 结果,因子为周度频率。

2、相关性

观察 IC 的时序图,我们可以看到,四个模型的 IC 时序图非常相似。

间统计范围内,两两相关性最低也达到了 78%,为 ModernTCN 模型与 Transformer 模型,其次为 ModernTCN 模型与 PatchTST 模型,达到 81%;但在 2018 年、2024 年 1 月,ModernTCN 和 Transformer 系模型的相关性降低至 50% - 60%之间;

从模型角度看,两个 Transformer 系模型相关性高、ModernTCN 和 TSMixer 相关性 高;基于不同架构模型的相关性较低,如 ModernTCN 和 Transformer 模型,前者为 CNN + 通道独立架构,后者为注意力+通道混合架构,二者相关性低于其他组合。 由于我们采用的训练数据变量较少,趋同性较高,不同深度学习模型产生高相关性的因 子结果可能是难以避免的;另一方面,我们也发现,架构越不同的模型产生的因子差异 相对更大。

3、分组测试结果

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

(五)消融测试

在因子测试的部分我们已经发现,基于注意力的两个模型——PatchTST 和 Transformer, 采用通道独立设计的 PatchTST 模型综合表现优于 Transformer 模型。在本节我们进一 步探索 Patch、通道独立设计的必要性,我们以 TSMixer、ModernTCN 两个模型为基础进 行部分模块剔除,重复上文的量价因子挖掘步骤,以此大致了解各个组件的影响:

1、剔除 Patch

保留原先模型的时序编码模块,但将其中的参数 P 以及 S 设定为 1 实现剔除 Patch。修改 后的模型后缀记为“-NoPatch”。

2、剔除通道独立

两个模型的剔除通道独立的方法为: ModernTCN:修改输入数据的形状以及 1D 卷积的输入通道数实现通道混合,嵌入 维度设定为 50,骨干网络中排除通道交互对应的点卷积模块; TSMixer:采用 ModernTCN 的 1D 卷积(P=4,S=2)进行时序编码,嵌入维度为 50, 骨干网络中排除通道交互对应 MLP 模块。 修改后的模型后缀为“-CM”。

3、剔除 Patch 与通道独立

两个模型剔除 Patch、通道独立的方法为: ModernTCN:修改输入数据的形状以及 1D 卷积的输入通道数实现通道混合,嵌入 维度设定为 50,骨干网络中排除通道交互对应的点卷积模块; TSMixer:采用 ModernTCN 的 1D 卷积(P=1,S=1)进行时序编码,嵌入维度为 50, 骨干网络中排除通道交互的对应 MLP 模块。 修改后的模型后缀为“-NoPatch-CM”。

4、测试结果

对原始模型去除 Patch 与通道独立后,两个模型在量价因子挖掘任务中的因子 IC、TOP 组表现出现了不同程度的下降,TSMixer 模型去除 Patch 性能无明显差异;将 Patch 和通 道独立均剔除后,两个模型的 TOP 组表现均发生了明显的性能下降,年化收益分别降低 8.07%、5.25%,在因子相关性方面,剔除组件后的模型和原始模型的相关性仍然较高, ModernTCN 在 90%以上,TSMixer 在 85%以上,在 IC 测试拥有相近表现;

最后,本篇报告所有的实验的损失函数均使用 IC 损失,不同模型 IC 表现相近、TOP 组 表现差异较大的情况时常出现,如何兼顾深度学习因子的 IC 和多头组收益值得更深一步 的研究;从本节消融测试的结果看,我们认为骨干网络的合理设计能显著改善因子的综 合表现,为解决上述问题提供了一种可能的实践方案。


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

相关报告
评论
  • 相关文档
  • 相关文章
  • 全部热门
  • 本年热门
  • 本季热门
  • 全部热门
  • 本年热门
  • 本季热门
分享至