总:基于Transformer的LSTF解决方案
现有基于Transformer的LSTM解决方案设计要素总结如下:
从图中可以看出,Transformer在时序中应用具体包含以下几个步骤:
1)时序分解:对于数据处理,TSF中0均值归一化是比较常见的。此外,还有季节趋势分解预测(Autoformer)。
2)输入嵌入策略:自注意层不能保留位置信息,因此可采用位置embedding,保留位置信息,具体有局部位置信息(数据顺序)、全局信息(年月周等)和其他信息如节假日、大型活动等。对于位置信息的编码有两种:固定embedding和可学习embedding。
3)自注意方案:自注意方案是用来提取成对元素之间的语义依赖。时序对这块的工作主要是两点:减少原始Transformer的计算量和内存量,如采用对数稀疏掩码注意力的LogTrans和采用金字塔注意力的Pyraformer。
4)解码器:IMS:单步迭代预测。DMS:多步预测。
现有基于Transformer的LTSF解决方案(T >> 1)实验中所有被比较的非Transformer模型基线都是IMS预测技术,众所周知,这种策略会受到显著的错误累积效应影响。我们假设,这些模型的性能改进主要是由于其使用了DMS策略。
一、transformer时序预测任务中的缺点:
(1) 通道不独立:对于同一时间步的数据点,它们具有不同物理意义、采集时间可能并不对齐且尺度差异大,强行地将它们编码为统一的temporoal token,不再区分不同的channels。一方面这样编码将导致多变量间的相关性被消除,无法学习以变量为基础的高效表征,并不适合多变量时序预测任务。在部分数据集上,保证变量通道的独立性并考虑不同变量间的互相关是非常有必要的。另一方面由于变量存在时滞性,一个时间点的temporal token所包含的信息量比较局限,从每个时刻的temporal token出发,可能并不利于建模全局的时序相关性。
(2) 时间复杂度高:在建模数据沿时间方向的长期相关性时,需要考虑历史窗口长度不断增加,Transformer将面临性能下降及计算量爆炸的挑战。
(3) transformer以时间点为token,而非时间片段为token:传统transformer是以时间点作为token输入,而实际上,在时间序列中,反而更应该关注时间片段,因为时间序列具有很强的局部性,相邻的时刻值很接近,以一个 patch 为 Attention 计算的最小单位显然更合理;就好像看一个词,更应该结合上下文一句话来表示。例如PatchTST就是利用patche来提取时间序列中的局部语义信息。
(4) 自注意力机制问题:transformer中自注意力机制本身是排列不变的,其建模时间关系的能力在很大程度上取决于与输入标记相关联的位置编码。虽然使用位置编码和标记嵌入子序列有利于保留一些排序信息,但排列不变自注意机制的性质不可避免地导致了时间信息的丢失。
二、DLinear:
DLinear,它进行直接多步 (DMS) 预测进行比较。 DLinear 将时间序列分解为趋势序列和余数序列,并采用两个单层线性网络对这两个序列进行建模以用于预测任务。
网络结构为:
DLinear模型关键两个点:
1、dlinear采用的是DMS多步预测的方式,而非IMS的方式,防止累计误差。
2、序列分解:分别预测再叠加。
3、通道独立的思想
三、patchtst:
上图为PatchTST模型结构。该模型利用通道独立性来处理多变量的时间序列。在transformer主干中,我们也看到了patche的使用(由矩形说明)。另外,该模型有两个版本:有监督的和自监督的。
该模型有两个关键点:
1、通道独立:多变量时间序列被认为是一个多通道信号。每个时间序列基本上都是一个包含信号的通道。通道独立的实现,即每个输入到Transformer骨干网的标记只包含一个通道的信息,或一个时间序列。在上图中,我们看到一个多变量的时间序列是如何被分离成单个序列的,并且每个序列作为一个输入标记被送入Transformer主干网。然后,对每个系列进行预测,并将结果串联起来以获得最终的预测结果。
2、Patch:PatchTST利用patche来提取时间序列中的局部语义信息。patche可以是重叠的或不重叠的。patche的数量取决于patche的长度P和步长S。在这里,步长就像卷积一样,它只是连续patche的开始之间有多少个时间步长。(在时间序列中,反而更应该关注时间片段,因为时间序列具有很强的局部性,相邻的时刻值很接近,以一个 patch 为 Attention 计算的最小单位显然更合理。)
分 patch(时间段)的好处主要有四点:
- 降低复杂度,因为 Attention 的复杂度是和 token 数量成二次方关系。如果每一个 patch 代表一个 token,而不是每一个时间点代表一个 token,这显然降低了 token 的数量。
- 保持时间序列的局部性,因为时间序列具有很强的局部性,相邻的时刻值很接近,以一个 patch 为 Attention 计算的最小单位显然更合理。
- 方便之后的自监督表示学习,即 Mask 随机 patch 后重建。
- 分 patch 还可以减小预测头(Linear Head)的参数量。如果不分 patch 的话,Linear Head 的大小会是 , 是输入序列长度, 是序列个数, 是预测序列长度;如果分 patch 的话,Linear Head 的大小是 , 是 patch 个数要远小于 。因此,分 patch 之后,Linear Head 参数量大大减小,可以防止过拟合。
四、itransformer:
关键创新点:
1、独立的时间序列作为Token
2、注意力模块 和 前馈网络FFN 职责倒置 (使用encoder-only)
(1)通过自注意力:捕获多变量相关性
(2)层归一化和FFN:学习 序列-全局 的表示。其中归一化方式:高斯分布
五、autoformer:
关键点:
1、序列分解
2、自相关模块
3、encoder-decoder深度分解架构
序列分解
自相关模块
不同周期的相似相位之间通常表现出相似的子过程,我们利用这种序列固有的周期性来设计自相关机制,其中,包含基于周期的依赖发现和时延信息聚合。
encoder-decoder深度分解架构