查看原文
其他

综述 : 应用于时间序列中的 Transformer

The following article is from 时序人 Author vachel

最近Transformer在统一建模方面表现出了很大的威力,是否可以将Transformer应用到时序异常检测上引起了很多学者的研究兴趣。最近来自阿里达摩院、上海交通大学的几位学者就近年来针对时间序列场景中的Transformer模型进行了汇总,在Arxiv上发表了一篇综述。综述涵盖了Transformer针对时序问题下的具体设计,包含预测、异常检测、分类等诸多工业界常用场景,并开源了代码,是非常不错的学习资料。



本期文章将为大家简要分享这篇文章中的精华要点,供广大研究者开发者们参考。


论文地址:https://arxiv.org/abs/2202.07125

论文源码:https://github.com/qingsongedu/time-series-transformers-review




概述


在NLP的许多任务中Transformer取得了很优异的效果,这引发了时间序列社区对其极大兴趣。Transformer捕捉长期依赖和彼此交互的突出能力对于时间序列建模特别有吸引力,能在各种时间序列应用程序中取得令人兴奋的进展。



本文总结了Tansformer在时间序列方面应用的最近进展,从网络架构创新和使用场景两方面进行了分析。网络架构方面创新主要包括增加位置编码,注意力模块修改和架构层面创新。应用方面主要是预测,异常检测和分类三种任务。




模型设计


01

Positional Encoding

Positional Encoding,即增加位置编码,其主要是解决Transformer中Position部分与时间序列场景适配的问题。原始的Transformer主要是相对和绝对位置编码,NLP里面还有许多其它特定任务的编码方法,而这些方式放在时间序列里面相当不适用。
由于对Transformer来说相互交换位置是等价的,但是对时间序列来说顺序信息是很重要的。例如,在现实场景中对时间序列进行建模时,通常可以访问时间戳信息,包括日历时间戳(秒、分钟、小时、周、月和年)和特殊时间戳(例如,假期和事件)。这些时间戳在实际应用中非常有用,但在普通 Transformers 中几乎没有使用。因此最近的一些工作会将输入时间序列的位置编码进行输入。一种常见的设计是,首先将位置信息编码为向量,然后将其作为附加输入与输入时间序列一起注入模型。
位置信息编码主要包括下面三种形式:
  • Vanilla Positional Encoding
  • Learnable Positional Encoding
  • Timestamp Encoding


02

Attention Module

Transformer的核心是self-attention, 计算消耗非常大,原始的Transformer的时间和内存复杂度均是O(L^2)。最近一些新的工作关注如何减少Transformer的时间和内存复杂度。下面是最新一些工作复杂度的对比展示。



03

模型架构

除了修改 Transformers 中的各个模块以对时间序列进行建模外,还有许多工作寻求在架构层面对 Transformers 进行改造。考虑到时间序列的多分辨率(多周期,多趋势叠加等等),最近的工作将 Transformer 修改为分层架构。 

Informer [AAAI 2021] 在注意力块之间插入步幅为 2 的最大池化层,这可以将序列下采样到其半片中。Pyraformer [ICLR 2022] 设计了基于 ary 树的注意力机制,其中最精细尺度的节点对应于原始时间序列中的时间点,而较粗尺度的节点代表分辨率较低的序列。Pyraformer 进行尺度内和尺度间注意,它们分别捕获单个分辨率中的时间依赖性并构建原始系列的多分辨率表示。分层架构的优点有两个:
  1. 分层架构允许模型以较少的计算复杂度处理长时间序列;
  2. 分层建模可以生成可能对特定任务有益的多分辨率表示。




应用


01

时间序列预测

1. Informer [AAAI 2021]

在没有明确引入稀疏偏差的情况下,Informer使用查询和键之间的 Kullback-Leibler 散度分布测量来选择 O(logL) 主导查询,从而降低了注意力模块的复杂性。它还设计了一种生成式解码器,只需向前一步即可产生长序列输出,以避免累积错误。

2. AST [NeurIPS 2020]

使用生成对抗编码器-解码器框架来训练用于时间序列预测的稀疏 Transformer 模型。它表明,对抗性训练可以通过直接塑造网络的输出分布来改善时间序列预测,从而避免通过一步超前推理的错误累积。

3. Autoformer [NeurIPS 2021]

Autoformer设计了一种简单的季节性趋势分解架构,其自相关机制用作注意力模块。自相关块不是传统的注意力块。它测量输入信号之间的时延相似性,并聚合前 k 个相似的子序列以产生具有降低复杂度 O(LlogL) 的输出。

4. FEDformer [Arxiv 2022]

FEDformer设计了两个注意模块,分别用傅里叶变换和小波变换处理频域中的注意操作。它通过傅里叶变换中的随机模式部分实现了线性复杂度。需要指出的是,自 Autoformer 和 FEDformer 以来,时间序列在频域或时频域中的独特属性在社区中引起了更多的关注。

5. TFT [IJoF 2021]

TFT设计了一个包含静态协变量编码器、门控特征选择模块和时间自注意力解码器的多水平预测模型。它编码并从各种协变量信息中选择有用的信息来执行预测。它还保留了包含全局、时间依赖性和事件的可解释性。

6. SSDNet [ICDM 2021]

SSDNet和ProTran将 Transformer 架构与状态空间模型相结合,以提供概率预测。SSDNet 使用 Transformer 部分学习时间模式和估计 SSM 的参数,并使用 SSM 部分进行季节趋势分解并保持可解释能力。ProTran 设计了基于变分推理的生成建模和推理程序。

7. Pyraformer [ICLR 2022]

Pyraformer设计了一个带有二叉树跟随路径的分层金字塔注意模块,以捕获具有线性时间和内存复杂度的不同范围的时间依赖性

8. Aliformer [IJCAI 2021]

Aliformer使用 Knowledge-guided attention 和一个分支进行时间序列销售预测,以修改和去噪注意力图。



02

时空预测

在时空预测中,我们需要同时考虑时间依赖性和时空依赖性来进行准确的预测。Traffic Transformer [GIS 2020] 设计了一个编码器-解码器结构,使用自注意力模块来捕获时间-时间依赖关系,并使用图神经网络模块来捕获空间依赖关系。 
用于交通流预测的Spatial-Temporal Transformer [Arxiv 2020] 网络更进一步,除了引入时间 Transformer 模块来捕获时间依赖关系外,它还设计了一个空间 Transformer 模块来辅助图卷积网络捕获更多的空间空间依赖关系。
此外,Spatial-Temporal Graph Transformer [ECCV 2020] 网络设计了一种基于注意力的图卷积机制来学习更复杂的时空注意力模式,以改进行人轨迹预测。


03

事件预测

在许多实际应用中自然会观察到具有不规则和异步时间戳的事件序列数据,这与具有相等采样间隔的规则时间序列数据形成对比。事件预测或预测旨在根据过去事件的历史来预测未来事件的时间和标记,它通常由时间点过程建模。
最近,一些神经 TPP 模型开始结合 Transformers 来提高事件预测的性能。自注意力霍克斯过程 (SAHP) [ICML 2020] 和 Transformer Hawkes 过程 (THP) [ICML 2020] 采用 Transformer 编码器架构来总结历史事件的影响并计算事件预测的强度函数。他们通过将时间间隔转换为正弦函数来修改位置编码,以便可以利用事件之间的间隔。
后来,提出了一种更灵活的名为attentive neural Datalog through time (ANDTT) [ICLR 2022],通过嵌入所有可能的事件和时间以及注意力来扩展 SAHP/THP 方案。实验表明,它可以比现有方法更好地捕获复杂的事件依赖关系。



04

异常检测

该方向的工作基本是基于原来的LSTM异常检测模型进行修改,使用Transformer的并行训练能力提高效率。

TranAD [VLDB 2022] 提出了一种对抗性训练程序来放大重建错误,因为简单的基于 Transformer 的网络往往会错过小的异常偏差。

MT-RVAE [Measurement 2022] 和 TransAnomaly [CCDC 2021] 都将 VAE 与 Transformer 结合在一起,它们有不同的用途。TransAnomaly 将 VAE 与 Transformer 相结合,可实现更多并行化并将训练成本降低近 80%。
GTA [IEEE IoT 2021] 针对多变量时间序列场景设计Transformer异常检测模型,它们将 Transformer 与基于图形的学习架构相结合。
AnomalyTrans [ICLR 2022] 结合 Transformer 和 Gaussian Prior-Association 使罕见的异常更易区分。

05

分类回归

GTN [Arxiv 2021] 使用双塔式变压器,每个塔式变压器分别用于时间步长注意和通道注意。为了合并两个塔的特征,使用了可学习的加权连接(也称为“门控”)。 
ISPRS 2020 有一篇工作研究了基于自注意力的 Transformer 用于原始光学卫星时间序列分类,并与循环模型和卷积模型相比获得了最佳结果。
也有研究者研究 Transformer 用于原始光学卫星图像时间序列分类。由于标记数据的稀有性,作者使用自我监督的预训练模式。或引入了一个无监督的预训练框架,并且该模型是使用按比例屏蔽的数据进行预训练的。然后在分类等下游任务中对预训练模型进行微调。
Voice2series [ICML 2021] 提出使用大规模预训练语音处理模型来解决下游时间序列分类问题,并在 30 个流行的时间序列分类数据集上生成 19 个有竞争力的结果。


研究方向


Inductive Biases for Time Series Transformers

vanilla Transformer 需要最小的归纳偏差,无需对数据模式和特征进行假设,这使其成为学习各种数据类型的长期依赖关系的通用和通用网络。然而,为了避免过度拟合问题,需要大量的训练数据是有代价的。对于时间序列数据,它具有明显的时间依赖性,并且经常表现出复杂的季节性/周期性和趋势模式。最近的一些研究表明,将序列周期性或频率处理纳入时间序列 Transformer 架构将带来卓越的性能改进。因此,一个有趣的未来方向是,基于对时间序列数据模式的理解以及特定任务的特征,考虑更有效的方法将归纳偏差引入 Transformer,从而为时间序列带来更高效和有效的 Transformer 架构。


Transformers and GNN for Time Series

多变量和时空时间序列在不同场景中变得越来越占主导地位,这需要额外的技术来处理它们的高维性,尤其是捕捉维度之间的潜在关系。引入图神经网络 (GNN) 是对空间依赖或维度之间的关系进行建模的一种自然方式。最近,一些调查表明,GNN 和 Transformers/attention 的结合不仅可以带来显着的性能提升,比如交通预测和多模态预测,还深入了解动态时空特征和潜在偶然性。因此,利用 Transformer 和 GNN 对时间序列数据的强大建模能力值得进一步研究。


Pre-trained Transformers for Time Series

大规模预训练的 Transformer 模型显着提升了 NLP 中的各种任务,因为它们可以有效地学习通用表示并从大量标记/未标记数据中捕获知识,从而使各种下游任务受益,而不是从头开始学习模型。 然而,针对时间序列的预训练 Transformers 的工作量有限,现有研究主要集中在时间序列分类上。因此,如何利用来自 NLP 和 CV 领域的预训练 Transformer 模型的方法,这些模型对时间序列数据的研究较少,仍然是令人兴奋的未来研究机会。


Transformers with NAS for Time Series

Transformer 架构的设计具有挑战性,因为嵌入维度、头数和层数等所有超参数都会在很大程度上影响性能。手动配置和尝试这些超参数既费时又难以获得理想的结果。神经架构搜索 (NAS) 一直是发现有效深度神经架构的流行技术。对于既可以是高维又可以是长长度的行业规模的时间序列数据,发现内存和计算高效的 Transformer 架构具有实际意义。因此,如何通过 NAS 自动为时间序列设计高效的 Transformer 架构是未来值得研究的课题。


- EOF -

推荐阅读  点击标题可跳转

1、Transformer 总结-2022 版

2、Transformer 超详细解读,一图胜千言

3、熬了一晚上,我从零实现了 Transformer 模型,把代码讲给你听


关注「大数据与机器学习文摘」

看精选技术文章和最新行业资讯

点赞和在看就是最大的支持❤️

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存