论文名称:Transformers in Time Series: A Survey
论文下载:https://arxiv.org/abs/2202.07125
论文源码:https://github.com/qingsongedu/time-series-transformers-review
论文作者:阿里巴巴达摩院
论文年份:2022
这篇论文的源Github仓库里,对参考文献进行了归类,并给出了论文地址,非常清晰。根据 Transformer的架构和应用进行论文分类,对了解 Transformer 在时间序列中的应用大有裨益。
Transformer 相关知识已经在之前的博客中介绍过了:
Transformers 在自然语言处理和计算机视觉的许多任务中都取得了优异的表现,这也引发了时间序列社区的极大兴趣。在 Transformer 的众多优势中,捕获长距离依赖和交互的能力对于时间序列建模特别有吸引力,从而在各种时间序列应用程序中取得了令人兴奋的进展。在本文中,我们通过强调它们的优势和局限性,系统地回顾了用于时间序列建模的 Transformer 方案。特别地,我们从两个角度审视了时间序列 Transformers 的发展。从网络结构的角度,我们总结了对 Transformer 进行的调整和修改,以适应时间序列分析中的挑战。从应用的角度来看,我们根据预测、异常检测和分类等常见任务对时间序列 Transformers 进行分类。根据经验,我们进行稳健分析、模型大小分析和季节性趋势分解分析,以研究 Transformers 在时间序列中的表现。最后,我们讨论并提出未来的方向,以提供有用的研究指导。可以在 GitHub 存储库中找到相应的论文列表,该列表将持续更新。
自从2017年,Transformer 被提出以来,其已经广泛应用于NLP,CV,语音处理等各个领域。过去几年中,Transformer 的变体也如雨后春笋般的涌现出来。
对于时间序列数据,Transformer 能够出色地对长距离依赖和交互进行建模。并且其变体广泛应用于时间序列预测,时间序列分类,异常检测等任务。此外,季节性或周期性是时间序列的一个重要特征。如何有效地模拟长期和短期依赖,并同时捕捉季节性仍然是一个挑战。Transformer 提供了解决这个问题的方案。
本文总结了时间序列 Transformer 的主要发展。我们首先简要介绍了 vanilla Transformer,然后从网络修改和时间序列 Transformer 应用领域的角度提出了一种新的分类法。对于网络修改,我们讨论了对 Transformer 的低级(即模块)和高级(即架构)所做的改进,旨在优化时间序列建模的性能。对于应用程序,我们分析和总结了 Transformer 用于流行的时间序列任务,包括预测、异常检测和分类。对于每个时间序列 Transformer,我们分析了它的洞察力、优势和局限性。为了提供有关如何有效使用 Transformer 进行时间序列建模的实用指南,我们进行了广泛的实证研究,检查时间序列建模的多个方面,包括稳健性分析、模型大小分析和季节性趋势分解分析。我们通过讨论时间序列 Transformer 可能的未来方向来结束这项工作,包括:
原生的 Transformer 是一个具有编码器-解码器结构的最具竞争力的神经序列模型。编码器和解码器都由多个相同的块组成。每个编码器块由一个多头自注意模块(Multi-Head Self-Attention)和一个位置前馈网络(position-wise Feed-Forward Network ,FFN)组成,而每个解码器块在多头自注意模块和位置前馈网络之间插入交叉注意模型(cross-attention model)。
与 LSTM 或 RNN 不同,Transformer 没有递归,也没有卷积。相反,它利用输入嵌入中添加的位置编码来对序列信息进行建模。我们在下面总结了一些位置编码。
Absolute Positional Encoding
在原生的 Transformer 中,对于每个位置索引 t,编码向量由下式给出:
其中 ωi 是每个维度的人工设计的频率(hand-crafted frequency)。另一种方法是为每个位置学习一组位置嵌入,这更灵活 。
Relative Positional Encoding
遵循输入元素之间的成对位置关系比元素的位置更有益的直觉,提出了相对位置编码方法。例如,其中一种方法是将可学习的相对位置嵌入添加到注意力机制的键中。
除了绝对和相对位置编码之外,还有一些使用混合位置编码的方法将它们组合在一起。通常,位置编码被添加到标记嵌入中并输入到 Transformer。
使用 Query-Key-Value (QKV) 模型,Transformer 使用的缩放点积注意力(scaled dot-product attention)由下式给出:
为了总结现有的时间序列 Transformer,我们从网络修改和应用领域的角度提出了一种分类法,如图 1 所示。基于分类法,我们系统地回顾了现有的时间序列 Transformer。从网络修改的角度,我们总结了 Transformer 在模块级别和架构级别所做的更改,以适应时间序列建模中的特殊挑战。从应用的角度,我们根据时间序列 Transformer 的应用任务进行分类,包括预测、异常检测、分类和聚类。
由于 Transformer 是置换等价的,并且时间序列的顺序很重要,因此将输入时间序列的位置编码到 Transformer 中非常重要。一种常见的设计是首先将位置信息编码为向量,然后将它们作为附加输入与输入时间序列一起喂给模型。在使用 Transformer 建模时间序列时如何获得这些向量可以分为三大类。
Vanilla Positional Encoding
原生 Transformer 的位置编码可以从时间序列中提取一些位置信息,但它们无法充分利用时间序列数据的重要特征。
Learnable Positional Encoding
由于原生 Transformer 的位置编码是人工设计的,表达性和适应性较差,一些研究发现,从时间序列数据中学习适当的位置嵌入会更有效。与固定的位置编码相比,学习嵌入更灵活,可以适应特定的任务。主要有两种方式:
Timestamp Encoding
在现实场景中对时间序列进行建模时,通常可以访问时间戳信息,包括日历时间戳(例如,秒、分钟、小时、周、月和年)和特殊时间戳(例如,假期和事件)。这些时间戳在实际应用中非常有用,但在普通 Transformers 中几乎没有使用。为了缓解这个问题,Informer 提出通过使用可学习的嵌入层将时间戳编码为额外的位置编码。 Autoformer 和 FEDformer 中使用了类似的时间戳编码方案。
Transformer 的核心是自注意力模块。它可以被视为一个全连接层,其权重是基于输入模式的成对相似性动态生成的。因此,它与全连接层共享相同的最大路径长度,但参数数量要少得多,使其适合建模长期依赖关系。
原生的 Transformer 中的自注意力模块具有 O(L2) 的时间和内存复杂度(L 是输入时间序列长度),这成为处理长序列时的计算瓶颈。提出了许多有效的 Transformer 来降低二次复杂度,可分为两大类:
除了容纳 Transformers 中用于时间序列建模的各个模块之外,还有许多工作寻求在架构层面对 Transformers 进行改造。最近的工作将分层架构引入到 Transformer 中,以考虑时间序列的多分辨率(multi-resolution)。 Informer 在注意块之间插入步幅为 2 的最大池化层,将序列下采样到其半片中。 Pyraformer 设计了一种基于 C-ary Tree 的注意力机制,其中最精细尺度的节点对应于原始时间序列,而较粗尺度的节点代表较低分辨率的序列。 Pyraformer 开发了尺度内和尺度间的注意力,以便更好地捕捉不同分辨率的时间依赖性。除了能够以不同的多分辨率集成信息外,分层架构还具有高效计算的优势,特别是对于长时间序列。
本节回顾了 Transformer 在重要的时间序列任务中的应用,包括预测、异常检测和分类。
我们在这里研究三种类型的预测任务,即时间序列预测、时空预测和事件预测。
预测是时间序列最常见和最重要的应用。
在时空预测中,需要同时考虑时间(temporal)和时空(spatio-temporal)依赖性以进行准确的预测。
Traffic Transformer 设计了一种编码器-解码器结构,使用自注意力模块来捕获时间-时间依赖关系,并使用图神经网络模块来捕获空间依赖关系。
用于交通流量预测的 Spatial-temporal Transformer 更进一步。除了引入时间 Transformer 块来捕获时间依赖关系之外,它还设计了一个空间 Transformer 块,以及一个图卷积网络,以更好地捕捉空间-空间依赖关系。
Spatio-temporal graph Transformer 设计了一种基于注意力的图卷积机制,能够学习复杂的时空注意力模式来改进行人轨迹预测。
在许多实际应用中自然会观察到具有不规则和异步时间戳的事件序列数据(event sequence data),这与具有相等采样间隔的规则时间序列数据形成对比。事件预测或预测旨在根据过去事件的历史来预测未来事件的时间和标记,它通常由时间点过程 (temporal point processes,TPP) 建模。
最近,一些神经 TPP 模型开始合并 Transformer,以提高事件预测的性能。Self-attentive Hawkes process (SAHP) 和 Transformer Hawkes Process (THP) 采用 Transformer 编码器架构来总结历史事件的影响并计算事件预测的强度函数。他们通过将时间间隔转换为正弦函数来修改位置编码,以便可以利用事件之间的间隔。后来,提出了一种更灵活的名为 attentive neural Datalog through time (A-NDTT),通过嵌入(Embedding)所有可能的事件和时间以及注意力来扩展 SAHP/THP 方案。实验表明,它可以比现有方法更好地捕获复杂的事件依赖关系。
深度学习促进了异常检测的发展。由于深度学习是一种表示学习,重建(reconstruction)模型在异常检测任务中起着重要作用。重建模型旨在学习将向量从简单的预定义源分布 Q 映射到实际输入分布 P+ 的神经网络。 Q 通常是高斯或均匀分布。异常分数由重建误差定义。直观地说,重构误差越高,意味着来自输入分布的可能性越小,异常得分就越高。设置阈值以区分异常与正常。
有工作证明了 使用 Transformer 进行异常检测相对于其他传统的时间依赖性模型(例如 LSTM)的优势。除了更高的检测质量(由 F1 衡量)外,基于 Transformer 的异常检测明显比基于 LSTM 的方法更有效,这主要是由于 Transformer 架构中的并行计算。在包括 :
研究人员提出将 Transformer 与神经生成模型相结合,例如作为 VAEs 和 GANs,用于在异常检测中更好的重建模型。
TranAD 提出了一种对抗性训练程序来放大重建错误,因为简单的基于 Transformer 的网络往往会错过小的异常偏差。GAN 风格的对抗训练程序由两个 Transformer 编码器和两个 Transformer 解码器设计,以获得稳定性。消融研究表明,如果更换基于 Transformer 的编码器解码器,F1 得分性能下降近 11%,表明 Transformer 架构对异常检测的重要性。
虽然 MT-RVAE 和 TransAnomaly 都将 VAE 与 Transformer 结合在一起,但它们有不同的用途。 TransAnomaly 将 VAE 与 Transformer 相结合,可实现更多并行化并将训练成本降低近 80%。在 MT-RVAE 中,多尺度 Transformer 旨在提取和整合不同尺度的时间序列信息。它克服了传统 Transformer 只提取局部信息进行顺序分析的缺点。
几个时间序列 Transformer 是为多变量时间序列设计的,它们将 Transformer 与基于图形的学习架构相结合,例如 GTA。注意,MT-RVAE 也适用于多变量时间序列,但在图神经网络模型效果不佳的序列之间维度很少或紧密关系不足。为了应对这样的挑战,MT-RVAE 修改了位置编码模块并引入了特征学习模块。 GTA 包含图卷积结构来模拟影响传播过程。与 MT-RVAE 类似,GTA 也考虑“全局”信息,但通过用多分支注意力机制代替普通多头注意力机制,即全局学习注意力、普通多头注意力和邻域卷积的组合。
AnomalyTrans 将 Transformer 和 Gaussian Prior-Association 结合起来,使罕见的异常更容易区分。尽管与 TranAD 有着相似的动机,但 AnomalyTrans 以非常不同的方式实现了这一目标。与正常相比,异常更难与整个系列建立强烈的关联,而与相邻时间点相比更容易。在 AnomalyTrans 中,先验关联和序列关联是同时建模的。除了重建损失之外,异常模型还通过极小极大策略优化,以约束先验和系列关联,以获得更可区分的关联差异。
Transformer 被证明在各种时间序列分类任务中是有效的,因为它在捕获长期依赖方面具有突出的能力。分类转换器通常采用简单的编码器结构,其中自注意力层执行表示学习,前馈层产生每个类别的概率。
GTN 使用两塔 Transformer,每个塔分别用于时间步长注意和通道注意。为了合并两个塔的特征,使用了可学习的加权连接(也称为“门控”)。 该 Transformer 在 13 个多元时间序列分类上实现了最先进的结果。有的工作研究了基于 self-attention 的 Transformer 用于原始光学卫星时间序列分类,与循环和卷积神经网络相比,获得了最好的结果。
在分类任务中也研究了预训练的 Transformer。 [Yuan and Lin, 2020] 研究 Transformer 用于原始光学卫星图像时间序列分类。由于标记数据有限,作者使用自监督的预训练模式。 [Zerveas et al., 2021] 引入了一个无监督的预训练框架,并且该模型是使用按比例掩蔽的数据(masked data)进行预训练的。然后在分类等下游任务中对预训练模型进行微调。 [Yang et al., 2021] 提出使用大规模预训练语音处理模型来解决下游时间序列分类问题,并在 30 个流行的时间序列分类数据集上生成 19 个有竞争力的结果。
在本节中,我们进行实证研究以分析 Transformer 如何处理时间序列数据。具体来说,我们在典型的基准数据集 ETTm2 [Zhou et al., 2021] 上测试具有不同配置的不同算法。
我们在上面描述的许多工作都仔细设计了注意力模块以降低二次计算和内存复杂度,尽管他们实际上使用较短的固定大小输入来在他们报告的实验中获得最佳结果。这让我们质疑这种高效设计的实际用途。我们进行了一个延长输入序列长度的稳健实验,以验证它们在处理长期输入序列时的预测能力和稳健性。
如表 2 所示,当我们将预测结果与延长输入长度进行比较时,各种基于 Transformer 的模型迅速恶化。这种现象使得许多精心设计的 Transformer 在长期预测任务中变得不切实际,因为它们不能有效地利用长输入信息。除了简单地运行它之外,还需要做更多的工作来充分利用长序列输入。
在被引入时间序列预测领域之前,Transformer 在 NLP 和 CV 社区中已经显示出主导性能 。 Transformer 在这些领域的主要优势之一是能够通过增加模型大小来提高预测能力。通常模型容量由Transformer的层数控制,在CV和NLP中通常设置在12到128之间。
但如表 3 中的实验所示,当我们将预测结果与具有不同层数的不同 Transformer 模型进行比较时,具有 3 到 6 层的最浅 Transformer 胜出。它提出了一个问题,即如何设计一个适当的具有深层的 Transformer 架构,以增加模型的容量并实现更好的预测性能。
在最新的研究中,研究人员开始意识到季节性趋势分解是 Transformer 在时间序列预测中表现的关键部分。作为表 4 所示的一个简单实验,我们使用 [Wu et al., 2021] 中提出的移动平均趋势分解架构来测试各种注意力模块。季节性趋势分解模型可以将模型的性能显着提高 50% 到 80%。这是一个独特的块,通过分解来提升性能似乎是 Transformer 应用时间序列预测中的一致现象,值得进一步研究。
在这里,我们强调了一些在时间序列中对 Transformers 的研究具有潜在前景的方向。
时间序列 Transformer 的归纳偏差。
原生的 Transformer 不对数据模式和特征做任何假设。虽然它是用于建模长距离依赖关系的通用网络,但它也有代价,即需要大量数据来训练 Transformer 以避免数据过拟合。时间序列数据的关键特征之一是其季节性/周期性和趋势模式。最近的一些研究表明,将序列周期性或频率处理纳入时间序列 Transformer 可以显着提高性能。因此,未来的一个方向是基于对时间序列数据和特定任务特征的理解,考虑更有效的方法将归纳偏差引入 Transformer。
多变量和时空时间序列在应用程序中变得越来越普遍,需要额外的技术来处理高维,尤其是捕捉维度之间潜在关系的能力。
引入图神经网络 (GNN) 是对空间依赖或维度之间的关系进行建模的一种自然方式。最近,一些研究表明,GNN 和Transformer/attention 的结合不仅可以带来显着的性能提升,如交通预测和多模态预测,同时也更好地理解了时空动态和潜在偶然性。将 Transformer 和 GNN 结合起来,在时间序列中进行有效的时空建模是一个重要的未来方向。
大规模预训练的 Transformer 模型显着提升了 NLP 和 CV 中各种任务的性能。然而,关于时间序列的预训练 Transformers 的工作有限,现有研究主要集中在时间序列分类上。因此,如何为时间序列中的不同任务开发合适的预训练 Transformer 模型仍有待未来研究。
超参数,例如嵌入维度、头数和层数,会在很大程度上影响 Transformer 的性能。手动配置这些超参数非常耗时,并且通常会导致性能欠佳。神经架构搜索 (NAS) [Elsken et al., 2019; Wang et al., 2020] 一直是一种流行的技术,用于发现有效的深度神经架构,并且在最近的研究中可以发现在 NLP 和 CV 中使用 NAS 自动进行 Transformer 设计。对于既可以是高维又可以是大长度的行业规模时间序列数据,自动发现内存和计算效率的 Transformer 架构具有实际意义,使其成为时间序列 Transformer 未来的重要方向。
在本文中,我们对各种任务中的时间序列 Transformer 进行了全面调查。我们将审查的方法组织在一个新的分类法中,该分类法由网络修改和应用程序组成。我们总结了每个类别中的代表性方法,通过实验评估讨论了它们的优势和局限性,并突出了未来的研究方向。