湛江高端网站建设,广州网站建设品牌,ppt做的最好的网站有哪些,展览搭建设计网站摘要
我们提出了一种高效的基于Transformer设计的模型#xff0c;用于多变量时间序列预测和自我监督表征学习#xff08;self-supervised learning#xff09;。它基于两个关键部分#xff1a;1、将时间序列分隔成子序列级别的patches#xff0c;作为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个时间点组成。我们的模型有以下几个优点。 减少时空复杂度原始的Transformer在时间和空间上都有O(N2)O(N^2)O(N2)的复杂性其中NNN是输入tokens的数量。如果不进行预处理NNN将与输入序列长度LLL具有相同的值这在实践中成为计算时间和内存的主要瓶颈。通过应用patch我们可以将NNN缩小几倍N≈L/SN \approx L/SN≈L/S从而降低时间和空间复杂度。上表说明了patch的作用。通过设置patch长度P16P 16P16步长S8S 8S8L336L 336L336训练时间大大减少。长回视窗口学习能力上表显示通过将回视窗口LLL从96增加到336MSE可以从0.518降低到0.397。然而简单地延长LLL是以较大的内存和计算量为代价的。由于时间序列往往带有大量的时间冗余信息以前的一些工作试图通过采用下采样或精心设计的注意力稀疏连接来忽略部分数据点模型仍然产生足够的信息来进行良好的预测。我们研究了L380L 380L380的情况。时间序列每4步采样一次并将最后一个点加入序列中输入tokens数量为N96N 96N96。与使用包含最近96个时间点0.518相比该模型取得了更好的MSE得分0.447表明即使输入tokens数量相同更长的回视窗口也能传达更重要的信息。这让我们想到一个问题有没有办法在保持长回视窗口的同时避免“扔掉”一些数据patch是一个很好的答案。它可以将包含类似数值的局部时间点分组同时使模型能够减少输入tokens的长度以利于计算。从上表中可以看出当L336L 336L336时通过patchMSE从0.397进一步降低到0.367。表征学习能力随着强大的自监督学习技术的出现需要具有多个非线性抽象层的复杂模型来捕捉数据的抽象表示。简单的模型如线性模型由于其有限的可表达性可能不适合该任务。通过PatchTST模型我们不仅证实了Transformer对时间序列是有效的并且证明了他的表征能力可以进一步提高预测性能。我们的PatchTST模型在上表中取得了最好的MSE0.349
我们在下面的章节中详细介绍了我们的方法并进行了大量的实验来最终证明我们的想法。我们不仅用超视距预测结果和消融实验证明了模型的有效性而且还实现了SOTA自监督表征学习和迁移学习。
相关工作
Transformer中的patchTransformer在不同的数据模式上表现出了巨大的潜力。在所有的应用中当局部语义信息很重要时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的模型进行了尝试如时间序列TransformrtTST和TS-TCC但其潜力仍未完全发挥。
本文方法
模型结构
我们考虑以下问题给定一个具有回视窗口LLL 的多元时间序列样本集合(x1,...,xL)(x_1,...,x_L)(x1,...,xL)其中每个XtX_tXt在时间步长ttt时是维度为MMM的向量我们想预测TTT的未来值(xL1,...,xLTx_{L1},...,x_{LT}xL1,...,xLT)。我们的PatchTST如下图所示模型利用Transformer encoder作为核心结构。
前向过程我们把从索引1开始的长度为LLL的第iii个单变量序列表示为x(i)(x1(i),...,xL(i))x^{(i)} (x_1^{(i)},...,x_L^{(i)})x(i)(x1(i),...,xL(i))其中i1,...,Mi 1,...,Mi1,...,M。输入(x1,...,xL)(x_1,...,x_L)(x1,...,xL)被分隔成MMM个单变量序列x(i)∈R1×Lx^{(i)} \in R^{1 \times L}x(i)∈R1×L其中每个序列都根据channel-independence设置进入Transformer网络。然后Transformer将提供预测结果x^(i)(x^L1(i),...,x^LT(i))∈R1×T\hat{x}^{(i)} (\hat{x}^{(i)}_{L1},...,\hat{x}^{(i)}_{LT}) \in R^{1 \times T}x^(i)(x^L1(i),...,x^LT(i))∈R1×T Patching每个输入的单变量时间序列x(i)x^{(i)}x(i)首先被划分为patch这些patch可以是重叠的也可以是非重叠的。将patch长度记为PPP将两个连续patch之间的非重叠区域记为SSS那么patch过程将产生一个patch序列xp(i)∈RP×Nx_p^{(i)} \in R^{P \times N}xp(i)∈RP×N其中NNN是产生的patch数量N[(L−P)S]2N [\frac{(L-P)}{S}]2N[S(L−P)]2。这里我们把最后一个值xL(i)x_L^{(i)}xL(i)的SSS个重复数字pad到原序列的末尾再进行patch。
随着patch操作输入token数量可以从L减少到大约L/SL/SL/S。这意味着注意力图谱的内存使用和计算复杂度以4倍的速度下降。因此在训练时间和GPU内存限制下patch设计可以让模型看到更长的历史序列这可以显著提高模型预测性能。
Transformer Encoder我们使用普通的Transformer Encoder将观察到的信号映射到潜在表征latent representations。通过可训练的线性投影Wp∈RD×PW_p \in R^{D \times P}Wp∈RD×P以及可学习的加法位置编码Wpos∈RD×NW_{pos} \in R^{D \times N}Wpos∈RD×N将patch映射到维度为D的Transformer latent空间应用于监测patch的时间顺序xd(i)Wpxp(i)Wposx_d^{(i)} W_px_p^{(i)} W_{pos}xd(i)Wpxp(i)Wpos其中xd(i)∈RD×Nx_d^{(i)} \in R^{D \times N}xd(i)∈RD×N表示送入Transformer encoder的输入。多头注意力h1,...,Hh 1,...,Hh1,...,H将他们转化为query矩阵Q(i)(xd(i))TWhQQ^{(i)} (x_d^{(i)})^TW_{h}^{Q}Q(i)(xd(i))TWhQkey矩阵Kh(i)(xd(i))TWhKK_h^{(i)} (x_d^{(i)})^TW_h^KKh(i)(xd(i))TWhK和value矩阵hh(i)(xd(i))TWhVh_h^{(i)} (x_d^{(i)})^TW_h^Vhh(i)(xd(i))TWhV其中WhK∈RD×dkW_h^K \in R^{D \times d_k}WhK∈RD×dkWhV∈RD×DW_h^V \in R^{D \times D}WhV∈RD×D。之后按比例输出的方式来获得注意力输出O(i)∈RD×NO^{(i)} \in R^{D \times N}O(i)∈RD×N即
(Oh(i))TAttention(Qh(i),Kh(i),Vh(i))Softmax(Qh(i)(Kh(i))Tdk)Vh(i)(O_h^{(i)})^T Attention(Q_h^{(i)},K_h^{(i)},V_h^{(i)}) Softmax(\frac{Q_h^{(i)}(K_h^{(i)})^T}{\sqrt{d_k}})V_h^{(i)}(Oh(i))TAttention(Qh(i),Kh(i),Vh(i))Softmax(dkQh(i)(Kh(i))T)Vh(i)
多头注意力模块还包括BatchNorm层和一个具有残差连接的前馈网络。如上图所示之后产生的表示方法为z(i)∈R(D×N)z^{(i)} \in R^{(D \times N)}z(i)∈R(D×N)。最后用一个带有线性头的全连接层来获得预测结果x^(i)(x^L1(i),...,x^LT(i))∈R1×T\hat{x}^{(i)} (\hat{x}_{L1}^{(i)},...,\hat{x}_{LT}^{(i)}) \in R^{1 \times T}x^(i)(x^L1(i),...,x^LT(i))∈R1×T
损失函数我们选择MSE来衡量预测结果和真实值的差异。每个channel的损失是∣∣x^L1:LT(i)−xL1:LT(i)∣∣22||\hat{x}_{L1:LT}^{(i)}-x_{L1:LT}^{(i)}||^2_2∣∣x^L1:LT(i)−xL1:LT(i)∣∣22对MMM个时间序列进行平均得到总的目标损失
ζEx1M∑i1m∣∣x^L1:LT(i)−xL1:LT(i)∣∣22\zeta E_x\frac{1}{M}\sum^{m}_{i1}||\hat{x}_{L1:LT}^{(i)}-x_{L1:LT}^{(i)}||^2_2ζExM1i1∑m∣∣x^L1:LT(i)−xL1:LT(i)∣∣22
实例归一化Instance Normalization这项技术最近被提出来帮助缓解训练和测试数据之间的分布偏移效应。它简单地将每个时间序列x(i)x^{(i)}x(i)其平均值为0以标准差为单位。实际上我们在patch前对每个x(i)x^{(i)}x(i)进行归一化处理并将平均值和偏差加回到输出预测中。
表征学习
自监督表征学习已经成为一种流行的方法从无标签的数据中提取高水平的抽象表征。在本节中我们应用PatchTST来获得多变量时间序列的显著表示。实验表明学习到的表征可以有效地转移到预测任务中。在自监督预训练学习表征的流行方法中掩蔽自动编码masked autoencoder已被成功应用于NLP和CV领域。这种技术在概念上很简单故意随机删除一部分输入序列然后训练模型以恢复丢失的内容。
掩蔽自动编码最近被应用于时间序列并在分类和回归任务上取得了显著的性能。作者提议将多变量时间序列应用于Transformer其中每个输入tokens是一个由时间步长iii的时间序列值组成的向量xix_ixi。掩码在每个时间序列内和不同序列间随机放置。然而这种设置有两个潜在的问题。首先屏蔽masking是在单个时间步长的层面上应用的。当前时间点的遮蔽值masked values可以很容易地通过紧接着的时间值相互联系来推断而不需要对整个序列有高水平的理解这偏离了我们学习整个序列抽象表示的目标。Zerveas等人在2021年提出了复杂的随机化策略来解决这个问题其中不同大小的时间序列组被随机屏蔽。
第二预测任务的输出层设计可能很麻烦。给出对应于所有LLL个时间点的代表向量resentation vectorszt∈RDz_t \in R^Dzt∈RD通过线性映射将这些向量映射到包含MMM个变量的输出每个变量的预测期限为TTT这需要一个参数矩阵WWW的维度为(L⋅D)×(M⋅T)(L \cdot D) \times (M \cdot T)(L⋅D)×(M⋅T)。如果这四个值中的任何一个或全部都很大这个矩阵就会特别大。当下游训练样本的数量很少时这可能导致过拟合。
我们提出的PatchTST可以自然地克服上述问题。如上图所示我们使用与监督学习设置相同的Transformer encoder。预测头被移除而一个D \times P的线性层被连接起来。与监督模型相反在自监督学习中我们将输入序列划分为规则的非重叠patch。这是为了确保观察到的patch不包含被遮蔽mask的信息。然后我们均匀地随机选择一个patch指数的子集并根据这些选定的指数用零值屏蔽patch。用MSE损失来训练模型以重建被遮蔽的patch。
我们强调每个时间序列都有自己的潜在表征通过共享权重机制进行交叉学习这种设计可以允许预训练数据包含与下游数据不同数量的时间序列这在其他方法中可能是不可行的。
实验
长期时间序列预测
数据集我们在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的模型默认回视窗口L96L 96L96DLinear的L336L 336L336。但为了避免低估基线我们也对六种不同的回视窗口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使用回视窗口L512L 512L512。PatchTST/42意味着输入patch数量为42采用默认的回视窗口L336L 336L336。因此我们可以用PatchTST/42作为与DLinear和其他基于Transformer的模型进行公平比较用PatchTST/64来探索更大数据集上的效果。更多的实验细节在附录中。 结果上表显示了多变量长期预测的结果。总的来说我们的模型优于所有基线模型。从数量上看与基于Transformer的模型所能提供的最佳结果相比PatchTST在总体MSE上实现了20.2%的降低在MAE上实现了16.4%的降低。与线性模型相比PatchTST在总体上仍然优于它特别是在大型数据集天气、交通、电力和ILI数据集上。我们还对单变量数据集进行了实验结果见附录。
表征学习
在本节中我们进行了掩码自监督学习masked self-supervised learning的实验我们将patch设置为不重叠的。在所有的表征学习实验中输入序列的长度被设置为512patch大小被设置为12产生了42个patch。我们考虑提高掩码率其中40%的patch被遮蔽为零值。我们首先在上节提到的数据集上应用自我监督的预训练进行100个epochs。一旦某个数据集上的预训练模型可用我们就进行监督训练以评估所学到的表征我们有两种选择线性层微调和端到端微调。使用线性层微调我们只训练模型最后线性层20个epochs同时冻结网络的其他部分使用端到端微调我们应用线性层微调10个epochs然后使用端到端微调整个网络20个epochs。事实证明线性层微调和端到端微调的两步策略可以胜过直接进行微调的策略。我们在下面选择一些有代表性的结果完整的基准可以在附录中找到。
与监督方法比较下表比较了PatchTST含端到端微调、线性层微调和监督学习与其他监督方法的性能。如表所示在大数据集上与从头开始的监督训练相比我们的预训练程序有明显的改进。通过对模型头部的微调线性探测预训练的性能已经可以和从头开始训练整个网络相媲美并且比线性层调整更好。最好的结果是通过端对端微调观察到的。自监督的PatchTST在所有数据集上都明显优于其他基于Transformer的模型。 迁移学习我们测试了将预训练的模型迁移到下游任务中的能力。特别是我们在电力数据集上预训练模型并在其他数据集上进行微调。我们从下表中观察到总的来说微调的MSE比在同一数据集上的预训练和微调的MSE略差这是合理的。在某些情况下微调的性能也比监督训练差。然而预测性能仍然优于其他模型。需要注意的是相对于有监督的PatchTST整个模型在每个预测区间都要进行训练这里我们只对线性头或整个模型进行重新训练次数要少的多这使得计算时间大大减少。 与其他自监督方法的比较我们将我们的自监督模型与BTSF和TS-TCC是最先进的时间序列对比学习表示方法之一。我们在ETTh1数据集上测试了预测性能其中我们只在获得学习表征后应用线性层微调以使比较公平。下表的结果强烈的显示了PatchTST的优越性能无论是对自己的ETTh1数据进行预训练还是对Traffic进行预训练。 消融实验
Patching and Channel-independence我们在下表中研究了Patching and Channel-independence的影响。我们将FEDformer作为基于Transformer模型的SOTA基准。通过对Patching and Channel-independence是否设计的结果进行相应的比较我们可以发现这两个因素都是提高预测性能的重要因素。patch的动机是自然的此外由于Transformer序列输入较短这种技术改善了运行时间和内存占用如表1所示另一方面就技术优势而言Channel-independence可能不像patch那样直观。因此我们在附录中深入分析了使Channel-independence更可取的关键因素更多消融探究结果请见附录。 变化的回视窗口原则上较长的回视窗口会增加感受野。这将潜在地提高预测性能。然而正如Zeng等人所论证的那样在大多数基于Trasformer的模型中没有观察到这种现象。我们还在下图中表明在大多数情况下这些基于Transformer的基线并没有从较长的回视窗口LLL中受益这表明它们在捕捉时间特征上没有效果。相比之下我们的PatchTST随着感受野的增加MSE分数不断降低这证实了我们的模型有能力从更长的回视窗口中学习。 结论和展望
本文通过引入两个关键部分Patching和Channel-independence提出了一种有效的基于Transformer模型设计用于时间序列预测任务。与以前的工作相比它可以捕捉局部语义信息并从更长的回视窗口中受益。我们不仅表明我们的模型在监督学习中优于其他基线而且还证明了它在自监督表征学习和迁移学习中的优良表现。
我们的模型表现出成为基于Transformer基线模型的潜力并成为时间序列基础模型的构建块。patch是简单的但被证明是一个有效的操作可以跟容易地迁移到其他模型。另一方面可以进一步利用Channel-independence以加入不同通道之间的相关性。对跨Channel的依耐性进行适当建模是未来的一个重要方向。 建块。patch是简单的但被证明是一个有效的操作可以跟容易地迁移到其他模型。另一方面可以进一步利用Channel-independence以加入不同通道之间的相关性。对跨Channel的依耐性进行适当建模是未来的一个重要方向。