Transformers在自然语言处理和计算机视觉方面的许多任务中都取得了优异的性能,这也引起了时间序列社区的极大兴趣。
在Transformer的多种优势中,捕获远程依赖关系和交互作用的能力对时间序列建模特别有吸引力,从而在各种时间序列应用中取得了令人兴奋的进展。
在本文中,我们系统地回顾了Transformer方案的时间序列建模,强调了它们的优点和局限性。
特别地,我们从两个角度研究了时间序列Transformer的发展。
从网络结构的角度,我们总结了对Transformer的适应和修改,以适应时间序列分析中的挑战。
从应用的角度来看,我们根据预测、异常检测和分类等常见任务对时间序列Transformer进行了分类。
根据经验,我们进行了稳健分析、模型规模分析和季节趋势分解分析,以研究Transformer在时间序列中的表现。
最后,我们讨论并提出了未来的发展方向,以提供有用的研究指导。
在GitHub存储库1中可以找到将不断更新的相应资源列表。
最近由于Transformer在深度学习方面的创新和其在自然语言处理、计算机视觉、语音处理和其他学科方面优秀的性能,为其带来了极大的关注。在过去的几年里,许多Transformer的变体已经被提出,以显著地推进各种任务的最先进的性能。有相当多来自不同方面的文献综述,包括NLP应用、CV应用、高性能Transformer以及Attention模型等。
Transformer在连续数据中的随机依赖和交互方面显示出了强大的建模能力,以这种方式对时序数据建模应该很合适。
Transformer的许多变体已被提出以解决时间序列建模中的特殊挑战,并已成功应用于各种时间序列任务,如预测,异常检测,分类等等。
例如,季节性或周期性是时间序列的一个重要特征。
如何有效地建模长期和短期的时间依赖关系并同时捕获周期性仍然是一个挑战。
由于时间序列中的Transformer是深度学习中的一个新兴课题,对时间序列中的Transformer进行系统、全面的调查将极大地有利于时间序列社区发展。
我们注意到有几项与时间序列的深度学习相关的调查,包括预测,分类,异常检测,数据增强,但基于Transformer研究时间序列方面的内容很少。
在本文中,我们旨在通过总结时间序列Transformer的主要发展来填补空白。
我们首先简要介绍普通Transformer,然后从时间序列Transformer的网络修改和应用领域的角度提出了一种新的分类方法。
对于网络的修改,我们讨论Transformer在低级(即模块)和高级(即架构)上的改进,目的是优化时间序列建模的性能。
在应用中,我们分析和总结Transformer为流行的时间序列任务,包括预测、异常检测和分类。
对于每个时间序列的Transformer,我们分析了它的理解力,优势和局限性。
为了提供关于如何有效地使用Transformer进行时间序列建模的实用指导方针,我们进行了广泛的实证研究,以检验时间序列建模的多个方面,包括鲁棒性分析、模型大小分析、和周期性趋势的分解分析。
我们通过讨论时间序列Transformer未来可能的方向来结束这项工作,包括时间序列Transformer的感应偏差,时间序列的Transformer和GNN,预先训练的Transformer为时间序列,以及Transformer与NAS的时间序列。
据我们所知,这是第一次全面和系统地回顾Transformer对时间序列数据建模的关键发展。
我们希望这项调查能激发人们对时间序列Transformers的进一步研究兴趣。
Vanilla Transformer遵循最具有竞争力的神经序列模型,具有编码器-解码器结构。
编码器和解码器都是由多个相同的块组成的。
每个编码器块由一个多头自注意模块和一个位置前馈网络(FFN)组成,而每个解码器块在多头自注意模块和位置前馈网络(FFN)之间插入交叉注意力模型。
与LSTM或RNN不同,Transformer没有循环,也没有卷积。相反,它利用添加在输入嵌入中的位置编码,来建模序列信息。
我们在下面总结了一些位置编码。
绝对位置编码
在普通变换中,对于每个位置索引t,编码向量为
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d3b9tykr-1676994055358)(C:\Users\Devshilei\Desktop\transformer\公式1.png)]
其中, ω i ω_i ωi是每个维度的手工制作的频率。另一种方法是为每个位置学习一组更灵活的位置嵌入[肯顿和图塔诺瓦,2019年;Gehring等人,2017]。
相对位置编码
根据直觉,输入元素之间的成对位置关系比元素之间的位置更有益,于是提出了相对的位置编码方法。
例如,其中一种方法是向注意机制的键添加一个可学习的相对位置嵌入。
除了绝对和相对位置编码外,还有一些使用混合位置编码的方法将它们组合在一起。
通常,位置编码被添加到token embedding中,并被提供给转换器。
采用查询-键-值(QKV)模型,Transformer使用的比例点积注意度为
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cpryubtw-1676994055360)(C:\Users\Devshilei\Desktop\transformer\公式2.png)]
其中查询 Q ∈ R N × D k Q \in R^{N \times D_k} Q∈RN×Dk,键 K ∈ R M × D k K \in R^{M \times D_k} K∈RM×Dk,值 Q ∈ V M × D v Q \in V^{M \times D_v} Q∈VM×Dv,且N,M表示查询的长度和键(或值), D k D_k Dk、 D v D_v Dv表示键(或查询)和值的维度。
Transformer使用多头注意与H组不同的学习预测,而不是一个单一的注意函数作为
其中
Feed-forward and Residual Network
点向前馈网络是一个全连接的模块,作为
其中H0为上一层的输出,W1∈RDm×Df、W2∈RDf×Dm、b1∈RDf、b2∈RDm为可训练参数。
在更深的模块中,在每个模块周围插入一个剩余连接模块和层归一化模块。
也就是说
H0 = LayerNorm(SelfAttn(X) + X)
H = LayerNorm(F F N(H0) + H0 )
其中,SelfAttn(.)表示自注意力模型和LayerNorm(.)表示层正则操作。
Transformer用来做时间序列分类
为了总结现有的时间序列Transformer,我们从网络修改和应用领域的角度提出了一个分类法,如图1所示。
在分类学的基础上,我们系统地回顾了现有的Transformer时间序列。
从网络修改的角度,我们总结了在Transformer的模块级和架构级上所做的变化,以适应时间序列建模中的特殊挑战。
从应用的角度,根据时间序列Transformer的预测、异常检测、分类和聚类等应用任务对Transformer进行分类。
在下面的两个部分中,我们将从这两个角度深入研究现有的时间系列Transformers。
4. 针对时间序列的网络修改
位置编码
由于Transformer是排列等价的,时间序列的顺序很重要,因此将输入时间序列的位置编码为Transformer具有重要意义。
一种常见的设计是首先将位置信息编码为向量,然后将它们作为输入时间序列的附加输入注入到模型中。
在用Transformer建模时间序列时,如何获得这些向量,主要可分为三类。
Vanilla 位置编码。
一些作品简单地介绍了中使用的Vanilla 位置编码(第2.2节),然后将其添加到输入时间序列嵌入中并馈给Transformer。
虽然这个简单的应用程序可以从时间序列中提取一些位置信息,但它们并不能充分利用时间序列数据的重要特征。
可学习的位置编码。
由于阀门位置编码是手工制作的,表达性和适应性较低,一些研究发现,从时间序列数据中学习适当的位置嵌入可以更有效。
与固定的Vanilla 位置编码相比,学习到的嵌入更加灵活,能够适应特定的任务。
在Transformer中引入一个嵌入层,共同学习每个位置指数的嵌入向量和其他模型参数。
使用LSTM网络来编码位置嵌入,目的是更好地利用时间序列中的顺序排序信息。
时间戳编码。
当在真实场景中建模时间序列时,时间戳信息通常是可访问的,包括日历时间戳(例如,第二个时间戳、分钟、小时、周、月和年)和特殊的时间戳(例如,节假日和事件)。
这些时间戳在实际应用程序中信息相当丰富,但在普通Transformers中几乎没有得到利用。
为了缓解这一问题,知情者提出,通过使用可学习的嵌入层,将时间戳编码为额外的位置编码。
在Autofrote和FEDfroter中使用了类似的时间戳编码方案。
注意力模型
Transformer的核心部分是自注意力模型。
它可以被看作是一个完全连接的层,其权值是基于输入模式的两两相似性动态生成的。
因此,它与完全连接的层共享相同的最大路径长度,但参数的数量要少得多,这使得它适合于建模长期依赖关系。
正如我们在前一节中所展示的,普通Transformer中的自注意模块的时间和记忆复杂度为O(L 2)(L为输入的时间序列长度),这成为了处理长序列时的计算瓶颈。
许多高效的Transformer被提出来降低二次复杂度,二次复杂度可分为两大类: (1)明确地在注意机制中引入稀疏性偏差,如LogTrans 和Piraforter;(2)探索自我注意矩阵的低秩特性以加快计算速度,例如知情者和FED前情者。
在表1中,我们总结了应用于时间序列建模的流行Transformer的时间和记忆复杂性
架构级创新
除了在Transformer中容纳各个模块来建模时间序列外,还有一些工作寻求在建筑层面上对Transformer进行改造。
最近的工作引入层次架构,考虑到时间序列的多分辨率方面。
知情者在注意块之间插入步幅为2的最大池化层,并将下采样序列插入到其半切片中。
Pyrafrtar设计了一种基于c树的注意机制,其中最优尺度的节点对应原始时间序列,而粗尺度的节点代表较低分辨率的序列。
为了更好地捕获不同分辨率之间的时间依赖关系,我们开发了尺度内和尺度间的关注。
除了能够在不同的多分辨率下集成信息外,分层体系结构还享有高效计算的好处,特别是对于长时间序列。
5. 时间序列Transformer的应用
在本节中,我们将回顾Transformer在重要的时间序列任务中的应用,包括预测、异常检测和分类。
Transformers预测
我们在这里研究了三种类型的预测任务,即时间序列预测、时空预测和事件预测。
时间数列预测法
预测是时间序列最常见和最重要的应用。
LogTrans 提出了卷积自注意,通过使用因果卷积来生成自注意层的查询和键。
它在自注意模型中引入了稀疏偏差,一种log稀疏掩模,将计算复杂度从O(L 2)降低到O(Llog L)。
Informer 没有明确引入稀疏偏差,而是基于查询和关键相似性选择O(log L)优势查询,从而在计算复杂度方面实现了与LogTrans类似的改进。
它还设计了一种生成式解码器来直接产生长期预测,从而避免了使用一步预测的累积误差。
AST 使用生成对抗编码器-解码器框架训练稀疏变换模型进行时间序列预测。
结果表明,对抗性训练可以通过直接塑造网络的输出分布来改进时间序列预测,通过提前一步推理来避免误差积累。
AST 使用生成对抗编码器-解码器框架训练稀疏变换模型进行时间序列预测。
结果表明,对抗性训练可以通过直接塑造网络的输出分布来改进时间序列预测,通过提前一步推理来避免误差积累。
自动形成者设计了一个简单的季节趋势分解架构,以一个自相关机制作为一个注意模块。
自相关块并不是一个传统的注意块。
它测量输入信号之间的时滞相似性,并聚合top-k相似的子序列,以产生降低复杂度为O(Llog L)的输出。
FEDforter采用傅里叶变换和小波变换。
它通过随机选择一个固定大小的频率子集来实现线性复杂度。
值得注意的是,由于自动变形器和fed变形器的成功,在时序列建模中探索频域的自关注机制已经引起了社区越来越多的关注。
TFT 设计了一个具有静态协变量编码器、门控特征选择和时间自注意解码器的多水平预测模型。
它从各种协变量中编码和选择有用的信息来执行预测。
它还保留了包含全局、时间依赖性和事件的可解释性。
SSDNet 和ProTran 将Transformer与状态空间模型相结合,以提供概率预测。
SSDNet首先使用Transformer来学习SSM的时间模式,估计SSM的参数,然后应用SSM来进行季节趋势分解,保持可解释能力。
ProTran设计了一个基于变分推理的生成式建模和推理程序。
金字塔者设计了一个具有二叉树跟踪路径的层次金字塔注意模块,以捕捉具有线性时间和记忆复杂度的不同范围的时间依赖性。
Alifrar利用知识引导的注意分支,对时间序列数据进行序列预测。
时空预测
在时空预测中,我们需要考虑时间和时空依赖性来准确预测。
交通Transformer设计了一个编码-解码器结构,使用自注意模块来捕获时间-时间依赖,使用图神经网络模块来捕获空间依赖。
时空Transformer的交通流量预测更进一步。
除了引入时间Transformer块来捕获时间依赖性外,它还设计了空间Transformer块和图形卷积网络,以更好地捕获空间依赖性。
时空图变换器设计了一种基于注意的图卷积机制,该机制能够学习复杂的时空注意模式,以改善行人轨迹预测。
事件预测
具有不规则和异步时间戳的事件序列数据在许多实际应用程序中可以自然地观察到,这与具有相同采样间隔的常规时间序列数据形成对比。
事件预测或预测旨在根据过去事件的历史来预测未来事件的时间和标记,它通常由时间点过程(TPP)来建模。
最近,为了提高事件预测的性能,一些神经TPP模型开始加入Transformer的使用。
自注意霍克斯过程(SAHP)和Transformer霍克斯过程(THP)采用Transformer编码器架构来总结历史事件的影响,并计算事件预测的强度函数。
他们通过将时间间隔转换为正弦函数来修改位置编码,从而可以利用事件之间的间隔。
随后,提出了一种更灵活的跨时间注意神经数据日志(A-NDTT),通过嵌入所有可能的事件和时间来扩展SAHP/THP方案。
实验表明,它比现有的方法能更好地捕获复杂的事件依赖关系。
异常检测中的Transformer
深度学习也触发了异常检测的新发展。
由于深度学习是一种表示学习,重构模型在异常检测任务中起着重要的作用。
重建模型的目的是学习一个神经网络,它将向量从一个简单的预定义的源分布Q映射到实际的输入分布P+。
Q通常是高斯分布或均匀分布。
异常评分由重构误差定义。
直观地看,重构误差越高,意味着不太可能来自输入分布,异常得分越高。
设置了一个阈值来区分异常和正常情况。
最近,揭示了使用Transformer进行异常检测的优势,优于其他传统的时间依赖模型(如LSTM)的优势。
除了更高的检测质量(由F1测量)外,基于Transformer的异常检测明显比基于LSTM的方法更有效,这主要是由于Transformer架构中的并行计算。
在多个研究中,包括TranAD,MT-RVAE,和跨异常(张等,2021],研究人员提出将Transformer与神经生成模型,如血管和奶奶,更好的重建模型异常检测。
TranAD提出了一种对抗性的训练程序来放大重建误差,因为一个简单的基于Transformer的网络往往会遗漏异常的小偏差。
由两个Transformer编码器和两个Transformer解码器设计了GAN式对抗性训练程序,以获得稳定性。
消融研究表明,如果更换基于Transformer的编码解码器,F1分数性能下降近11%,说明了Transformer体系结构对异常检测的重要意义。
虽然MT-RVAE和跨异常型都将VAE与Transformer结合起来,但它们有不同的用途。
跨异常将VAE和Transformer结合起来,允许更多的并行化和降低近80%的训练成本。
在MT-RVAE中,多尺度Transformer被设计用于提取和集成不同尺度的时间序列信息。
它克服了传统Transformer只提取局部信息进行序列分析的缺点。
多个时间序列Transformer被设计为多元时间序列,结合Transformer与基于图的学习架构,如GTA 。
需要注意的是,MT-RVAE也适用于多元时间序列,但其维度很少或序列之间的密切关系不足,而图神经网络模型的工作效果不佳。
为了应对这一挑战,MT-RVAE修改了位置编码模块,并引入了特征学习模块。
GTA包含了图的卷积结构来建模影响的传播过程。
与MT-RVAE类似,《GTA》也考虑“全局”信息,但通过多分支注意机制取代普通的多头注意,即全局学习注意、普通的多头注意和邻域卷积的结合。
AnomalyTrans结合了Transformer和高斯先验关联,使罕见的异常更容易区分。
尽管与TranAD具有相似的动机,但any以非常不同的方式实现了这一目标。
我们发现,与正常情况相比,异常情况更难与相邻时间点更容易建立强联系。
在异丙胺类中,先验关联和序列关联是同时建模的。
除了重构损失外,异常模型还采用极大极小策略进行优化,以约束原始关联和序列关联,以获得更可区分的关联差异。
分类中的Transformer
Transformer由于其捕获长期依赖性的突出能力,在各种时间序列分类任务中被证明是有效的。
分类Transformer通常采用一个简单的编码器结构,其中自注意层执行表示学习,前馈层产生每个类的概率。
GTN 使用一个双塔Transformer,每个塔分别进行时间步进注意和通道注意。
为了合并两个塔的特征,使用了一个可学习的加权连接(也称为“门”)。
所提出的Transformer扩展在13个多元时间序列分类上取得了最先进的结果。
研究了基于自关注的Transformer用于原始光学卫星时间序列分类,与循环和卷积神经网络相比获得了最好的结果。
在Transformer分类任务中也进行了研究。
研究了用于原始光学卫星图像时间序列分类的Transformer。
由于标记数据有限,作者使用了自我监督的预训练模式。
引入了一个无监督的预训练框架,该模型使用比例掩蔽数据进行预训练。
然后,预先训练好的模型将在下游任务中进行微调,如分类。
提出使用大规模的预训练语音处理模型用于下游时间序列分类问题,并在30个流行的时间序列分类数据集上生成19个竞争结果。
6. 实验评价与讨论
在本节中,我们将进行实证研究来分析Transformer是如何对时间序列数据工作的。
具体来说,我们在一个典型的基准数据集ETTm2上测试了具有不同配置的不同算法。
鲁棒性分析
我们在上面描述的许多工作都仔细设计了注意模块,以降低二次计算和记忆复杂度,尽管他们实际上使用一个短的固定大小的输入来在他们报告的实验中获得最好的结果。
这使我们质疑这种有效的设计的实际使用。
我们进行了一个延长输入序列长度的鲁棒实验,以验证它们在处理长期输入序列时的预测能力和鲁棒性。
如表2所示,当我们将预测结果与延长输入长度进行比较时,各种基于变换的模型会迅速恶化。
这种现象使得许多精心设计的Transformer在长期预测任务中不切实际,因为它们不能有效地利用长期输入信息。
我们需要做更多的工作来充分利用长序列输入,而不是简单地运行它。
模型大小分析
在引入时间序列预测领域之前,Transformer在NLP和CV社区中表现出主导地位。
Transformer在这些领域的一个关键优势是能够通过增加模型的大小来提高预测能力。
通常模型容量由Transformer的层数控制,在CV和NLP中,Transformer的层数通常设置在12到128之间。
但如表3中我们的实验所示,当我们比较不同层数的不同Transformer模型的预测结果时,3~6层的最浅Transformer获得了成功。
它提出了一个问题,即如何设计一个合适的深层Transformer架构,以提高模型的容量和实现更好的预测性能。
季节趋势分解分析
在最新的研究中,研究人员开始认识到,季节趋势分解是Transformer在时间序列预测中的性能的关键部分。
作为表4所示的一个简单实验,我们使用中提出的移动平均趋势分解体系结构来测试各种注意模块。
季节趋势分解模型可以显著提高模型性能50%~80%。
它是一个独特的块,这种通过分解提高性能似乎是Transformer应用时间序列预测中一致的现象,值得进一步研究。
7. 未来的研究机会
在这里,我们强调了几个时间序列研究的方向。
时间序列Transformer的感应偏差
Vanilla Transformer不对数据模式和特征做出任何假设。
虽然它是一个用于建模远程依赖的通用网络,但它也是有代价的,即需要大量的数据来训练Transformer,以避免数据过拟合。
时间序列数据的关键特征之一是其季节/周期和趋势模式。
最近的一些研究表明,将序列周期性或频率处理纳入时间序列Transformer可以显著提高性能。
因此,未来的一个方向是基于对时间序列数据和特定任务特征的理解,考虑更有效的方法来诱导感应偏差。
Transformers和GNN的时间系列
多元和时空时间序列在应用程序中越来越普遍,需要额外的技术来处理高维,特别是捕获维之间潜在关系的能力。
引入图神经网络(GNNs)是一种建模空间依赖性或维度间关系的一种自然方法。
最近,多项研究表明,GNN和Transformer/注意力的结合不仅可以显著改善交通预测和多模态预测,而且还可以更好地理解时空动态和潜在的随意性。
将Transformer和全球神经网络结合在时间序列中进行有效的时空建模是未来的重要方向。
Pre-trained Transformers for Time Series
大规模的预训练Transformer模型显著提高了NLP中各种任务的性能和CV 。
然而,关于时间序列的预训练Transformer的研究有限,现有的研究主要集中在时间序列分类上。
因此,如何为时间序列的不同任务开发合适的预训练Transformer模型有待进一步研究。
针对时间系列的带有NAS的Transformers
嵌入尺寸、头数、层数等超参数在很大程度上影响Transformer的性能。
手动配置这些超参数是耗时的,并且经常导致次优性能。
神经结构搜索(NAS)是发现有效深度神经结构的流行技术,在最近的研究中使用NAS自动设计Transformer。
对于可以高维和长长度的工业规模时间序列数据,自动发现内存和计算效率高的Transformer架构具有实际意义,使其成为时间序列Transformer未来的重要方向。