赞
踩
我们提出了一种高效的基于Transformer设计的模型,用于多变量时间序列预测和自我监督表征学习(self-supervised learning)。
它基于两个关键部分:1、将时间序列分隔成子序列级别的patches,作为Transformer的输入;2、独立通道(channel-independence),每个通道包含一个单一的单变量时间序列,它们共享相同的embedding和Transformer权重。
设计patches有3个好处:局部序列信息被保留在embedding中;在相同的回视窗口下,注意力图的计算和内存使用量呈2次方减少;模型可以关注到更长的历史信息。我们提出的PatchTST模型(channel-independent patch time series Transformer)可以显著提高长期预测的准确性。我们还将模型应用于自监督预训练任务,并取得了出色的微调性能,在大数据集上的表现由于监督学习。将一个数据集上的masked预训练结果转移到其他数据集上也能产生SOTA预测精度。
预测是时间序列分析中最重要的任务之一。随着深度学习模型的快速发展,关于这个主题的研究工作数量大大增加。深度模型不仅在预测任务上表现出优异的性能,并且在表征学习上也表现出优异的性能,抽象的表征可以被提取并转移到各种下游任务中,如分类和异常检测,以达到SOTA精度。
在深度学习模型中,Transformer在自然语言处理(NLP)、计算机视觉(CV)、语音以及最近的时间序列等各个领域都取得了巨大成功,得益于其注意力机制,可以自动学习序列中元素间联系,因此称为序列建模任务的理想选择。Informer、Autoformer和FEDformer是Transformer模型成功应用于时间序列数据的最佳变种之一。不幸的是,尽管Transformer模型设计十分复杂,最近的论文显示,一个非常简单的线性模型可以在各种常见的基准上超过之前的所有模型,它挑战了Transformer在时间序列预测中的适用性。在本文中,我们试图通过提出基于Transformer的PatchTST模型来解决这一问题。
Patching:时间序列预测的目的是了解每个不同时间步间相关性。然而,单个时间步长并不像句子中的一个单词那样具有语义,因此提取局部语义信息对于分析他们之间的联系至关重要。以前的工作大多只使用单点(point-wise)的输入标记,或者只是从系列中手动提取信息。相比之下,我们通过将时间步聚集到子系列级别的patch中,增强了位置(locality)性,并捕获了单点(point-wise)所没有的综合语义信息。
独立通道(Channel-independence):多变量时间序列是一个多通道信号,每个Transformer的输入tokens可以由单通道或多通道的数据表示。根据输入tokens的设计特性,提出了Transformer架构的不同变体。通道混合(Channel-mixing)值的是后一种情况,即输入tokens采取所有时间序列特征向量并将其投射到embedding空间以混合信息。另一方面,独立通道意味着每个输入tokens只包含来自同一通道的信息。这被证明在CNN和线性模型中运行良好,但还没有被应用到基于Transformer模型中。
我们在下表中提供了对交通数据集的关键性研究结果,该数据集由862个时间点组成。我们的模型有以下几个优点:
1.减少时空复杂度:原始的Transformer在时间和空间上都有O(N^2)的复杂性,其中N是输入tokens的数量。如果不进行预处理,N将与输入序列长度L具有相同的值,这在实践中成为计算时间和内存的主要瓶颈。通过应用patch,我们可以将N缩小几倍:N≈L/S,从而降低时间和空间复杂度。上表说明了patch的作用。通过设置patch长度P=16,步长S=8,L=336,训练时间大大减少。
2.长回视窗口学习能力:上表显示,通过将回视窗口L从96增加到336,MSE可以从0.518降低到0.397。然而,简单地延长L是以较大的内存和计算量为代价的。由于时间序列往往带有大量的时间冗余信息,以前的一些工作试图通过采用下采样或精心设计的注意力稀疏连接来忽略部分数据点,模型仍然产生足够的信息来进行良好的预测。我们研究了L = 380的情况。时间序列每4步采样一次并将最后一个点加入序列中,输入tokens数量为N=96。与使用包含最近96个时间点(0.518)相比,该模型取得了更好的MSE得分(0.447),表明即使输入tokens数量相同,更长的回视窗口也能传达更重要的信息。这让我们想到一个问题:有没有办法在保持长回视窗口的同时避免“扔掉”一些数据?patch是一个很好的答案。它可以将包含类似数值的局部时间点分组,同时使模型能够减少输入tokens的长度,以利于计算。从上表中可以看出,当L = 336 时,通过patch,MSE从0.397进一步降低到0.367。
3.表征学习能力:随着强大的自监督学习技术的出现,需要具有多个非线性抽象层的复杂模型来捕捉数据的抽象表示。简单的模型,如线性模型,由于其有限的可表达性,可能不适合该任务。通过PatchTST模型,我们不仅证实了Transformer对时间序列是有效的,并且证明了他的表征能力可以进一步提高预测性能。我们的PatchTST模型在上表中取得了最好的MSE(0.349)
我们在下面的章节中详细介绍了我们的方法,并进行了大量的实验来最终证明我们的想法。我们不仅用超视距预测结果和消融实验证明了模型的有效性,而且还实现了SOTA自监督表征学习和迁移学习。
Transformer中的patch:Transformer在不同的数据模式上表现出了巨大的潜力。在所有的应用中,当局部语义信息很重要时,patch是一个必不可少的部分。在NLP中,BERT考虑了基于子词的标记化(tokenization),而不是执行基于字符的标记化。在CV方面,Vision Transformer是一项里程碑式的工作,它将图像分割成16个patch,然后再送入Transformer模型。接下来的影响性工作,如BEIT和masked autoencoders都是使用patch作为输入。同样,在语音方面,研究人员正在使用卷积从原始音频输入中提取子序列级别的信息。
基于Transformer的长期时间序列预测:近年来,有大量的工作试图应用Transformer模型来预测长期时间序列。我们在此总结一下其中的一些。LogTrans使用卷积自注意力层与LogSparse设计来捕捉局部信息并降低空间复杂度。Informer提出了一个带有蒸馏技术的ProbSparse自注意力,以有效提取最重要的信息。Autoformer借用了传统时间序列分析方法中的分解和自相关思想。FEDformer使用傅里叶增强结构来获得线性复杂度。Pyraformer应用金字塔式注意力模块,具有尺度(inter-scale)和尺度(inter-scale)连接,也得到了线性复杂度。
这些模型大多侧重与设计新的机制,以减少原始注意力机制的复杂性,从而在预测上取得更好的性能,特别是当预测长度较长时。然而,大多数模型使用的是点式注意力,忽略了patch的重要性。LogTrans避免了key和query之间的点对点积,但其值仍然基于单一时间步长。Autoformer使用自动关联来获得patch级别的链接,但它是一个手工设计,并不包括patch内的所有语义信息。Triformer提出了patch attention,但其目的是通过一个使用伪时间戳作为patch内的query来降低复杂度,因此它即没有将patch作为一个输入单元,也没有揭示其背后的语义重要性。
时间序列表征学习:除了监督学习,自监督学习也是一个重要的研究课题,因为它已经显示出为下游任务学习有用表征的潜力。近年来,有许多非基于Transformer的模型被提出来学习时间序列的表征。同时,Transformer被认为是对基础模型和学习通用表征的理想候选者。然而,尽管人们已经对基于Transformer的模型进行了尝试,如时间序列Transformrt(TST)和TS-TCC,但其潜力仍未完全发挥。
我们考虑以下问题:给定一个具有回视窗口L的多元时间序列样本集合:( x 1 , . . . , x L ) ,其中每个
Xt在时间步长t时是维度为M的向量,我们想预测T的未来值 (x L + 1 , . . . , x L + T),我们的PatchTST如下图所示,模型利用Transformer encoder作为核心结构。
前向过程:我们把从索引1开始的长度为L的第i个单变量序列表示为x(i)=(x1(i),...,xL(i)),其中i = 1 , ...,M。输入(x_1,...,x_L)被分隔成M个单变量序列x(i)∈R1×L,其中每个序列都根据channel-independence设置进入Transformer网络。然后Transformer将提供预测结果。x ^ ( i ) = ( x ^ L + 1 ( i ) , . . . , x ^ L + T ( i ) ) ∈ R 1 × T
PatchTST结构:(a)将多元时间序列数据划分为不同的通道。它们共享相同的transformer主干,但正向过程是独立的。(b)每个通道的单变量序列通过实例归一化算子传递,并分割成补丁。这些补丁被用作变压器输入令牌。(c)用PatchTST学习,其中补丁被随机选择并设置为零。该模型将重建被掩蔽的补丁。
自监督表征学习已经成为一种流行的方法,从无标签的数据中提取高水平的抽象表征。在本节中,我们应用PatchTST来获得多变量时间序列的显著表示。实验表明,学习到的表征可以有效地转移到预测任务中。在自监督预训练学习表征的流行方法中,掩蔽自动编码(masked autoencoder)已被成功应用于NLP和CV领域。这种技术在概念上很简单:故意随机删除一部分输入序列,然后训练模型以恢复丢失的内容。
掩蔽自动编码最近被应用于时间序列,并在分类和回归任务上取得了显著的性能。作者提议将多变量时间序列应用于Transformer,其中每个输入tokens是一个由时间步长i ii的时间序列值组成的向量x i x_ix 。掩码在每个时间序列内和不同序列间随机放置。然而,这种设置有两个潜在的问题。首先,屏蔽(masking)是在单个时间步长的层面上应用的。当前时间点的遮蔽值(masked values)可以很容易地通过紧接着的时间值相互联系来推断,而不需要对整个序列有高水平的理解,这偏离了我们学习整个序列抽象表示的目标。Zerveas等人在2021年提出了复杂的随机化策略来解决这个问题,其中不同大小的时间序列组被随机屏蔽.
数据集:我们在8个流行的数据集上评估了PatchTST的性能,包括天气、交通、电力、ILI和ETT数据集(ETTh1、ETTh2、ETTm1、ETTm2)。这些数据集已被广泛用于基准测试,并在论文上公开。下表总结了这些数据集的统计数据。值得注意的是几个大型数据集(天气、交通和电力)。它们有更多的时间点,因此,与其他较小的数据集相比,结果会更稳定,更不容易被过拟合。
基线和实验设置:我们选择基于SOTA Transformer的模型,包括FEDformer、Autoformer、Informer、Pyraformer、LogTrans以及最近的非变压器模型DLinear作为基线。所有的模型都遵循相同的实验设置,ILI数据集的预测长度为T ∈ { 24 , 36 , 48 , 60 } T \in \{24,36,48,60\}T∈{24,36,48,60},其他数据集的预测长度为T ∈ { 96 , 192 , 336 , 720 } T \in \{96,192,336,720\}T∈{96,192,336,720},与原论文一样。我们收集了Zeng等人的基线结果,基于Transformer的模型默认回视窗口L = 96 L = 96L=96,DLinear的L = 336 L = 336L=336。但为了避免低估基线,我们也对六种不同的回视窗口L ∈ { 24 , 48 , 96 , 192 , 336 , 720 } L \in \{24,48,96,192,336,720\}L∈{24,48,96,192,336,720}运行FEDformer、Autoformer和Informer,并总是选择最佳结果来创建基线。关于基线的更多细节可以在附录中找到。我们计算了多变量时间序列预测的MSE和MAE作为衡量标准。
模型的变体:我们在下表中提出PatchTST的两个版本。PatchTST/64意味着输入patch的数量是64,使用回视窗口L = 512 L = 512L=512。PatchTST/42意味着输入patch数量为42,采用默认的回视窗口L = 336 L = 336L=336。因此,我们可以用PatchTST/42作为与DLinear和其他基于Transformer的模型进行公平比较,用PatchTST/64来探索更大数据集上的效果。更多的实验细节在附录中。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。