《PYRAFORMER: LOW-COMPLEXITY PYRAMIDAL ATTENTION FOR LONG-RANGE TIME SERIES MODELING
AND FORECASTING》
ICLR 2022
摘要
长程依赖性的特征是时间序列中任意两个位置之间最长信号穿越路径的长度。
(1)金字塔注意力模块(PAM)
(2)CSCM
可以参考的资料
https://www.bilibili.com/video/BV1js4y1T76D/?spm_id_from=333.999.0.0&vd_source=eb71d7c928b99f97f15bbf2fd815b3fb
https://blog.youkuaiyun.com/m0_46581836/article/details/134742755
绪论
CNN实现了较低的时间复杂度,与时间序列长度 L 成线性关系,但其信号穿越的最大长度为 O(L),因此难以学习远距离位置之间的依赖关系。
另一个极端是,Transformer 将最大路径长度大幅缩短为 O(1)。还没有算法能够在大大降低时间和空间复杂度的同时,使最大路径长度小于 O(L)。
相关工作
统计方法( ARIMA和 Prophet)和基于神经网络的方法CNN,Transformer。
CNN和RNN具有较低的时间和空间复杂度(即O(L)),但需要O(L)的路径来描述远程依赖性。
Transformer可以通过O(1)的复杂度捕获远程依赖性,但是注意力机制计算的复杂性是O(L*L)。
Informer利用注意力分数的稀疏性,以引入更长的最大路径长度为代价大幅降低复杂度(即O(Llog L))。
Longformer算局部滑动窗口或扩展滑动窗口内的注意力。虽然复杂度降低到0 (AL),其中A是局部窗口大小,但有限的窗口大小使得全局交换信息变得困难。因此最大路径长度为0 (L/A)。
Reformer利用局部敏感散列(LSH)将序列划分为几个桶,然后在每个桶内执行关注。它还采用可逆变压器进一步减少内存消耗,因此可以处理非常长的序列。然而,它的最大路径长度与桶的数量成正比。
模型
最细尺度的节点对应原始时间序列中的时间点(如每小时的观测数据),而较粗尺度的节点则表示分辨率较低的特征(如日、周和月模式)
先将观测数据、协变量(例如hour-of-the-day)和位置信息分别嵌入,然后将它们加在一起,和Informer 相同。
然后使用粗尺度构建模块(CSCM)构建了一棵多分辨率C元树,其中粗尺度节点总结了相应细尺度C个节点的信息
引入了金字塔注意力模块(PAM),利用金字塔图中的注意力机制传递消息。
最后,根据下游任务的不同,采用不同的网络结构来输出最终的预测。
(1)PAM
尺度间连接形成一个C-ary树,下层是细尺度(分钟),上层是粗尺度(月,周,天)
A代表相邻节点,C代表孩子节点,P代表父亲节点。作者假设序列长度L可以被c(s−1)s-1层的孩子节点个数,整除。
一个节点最多和a + C + 1个节点做运算
transformer的计算复杂度O(L*L)
PAM的计算复杂度O(L)
最大穿越路径O(1)
(2)CSCM
在将序列输入到堆叠的卷积层之前,通过一个全连接层将每个节点的维数减少,并在所有卷积后恢复它。这个操作大大减少了模块中的参数数量,可以防止过拟合。
然后对相应的子节点C (s) r进行卷积,从下到上逐比例地引入粗尺度节点,对嵌入序列依次施加核大小为C、步长为C的几个卷积层,得到尺度为s的长度为L/Cs的序列
在将这些细到粗的序列输入 PAM 之前,先将它们串联起来
(3)预测头
-
单步预测
将历史序列(t-L+1到t)输入嵌入层之前,在其末尾添加一个结束标记(设置 t+1 = 0)。序列经 PAM 编码后,收集金字塔图中所有尺度的最后节点给出的特征,将其串联起来,然后输入全连接层进行预测。
-
多步预测
两个预测模块。
第一个模块与单步预测模块相同,只不过原先只设置t+1为0,现在设置从t+1到t+M为0。第二个模块则采用具有两个FullAttention的解码器。将预测值和真实值嵌入,将真实值、协变量和位置嵌入的总和称为 "预测标记 "Fp。然后,第一层注意力将预测标记 Fp 作为Q,将编码器 Fe 的输出(即 PAM 中的所有节点)作为K和V,并得出 Fd1。
第二层将 Fd1 作为Q,但将 Fd1 和 Fe 的连接作为K和V。历史信息 Fe 直接输入到两个注意力层,通过一个跨通道维度的全连接层获得最终预测结果。和informer一样,将所有未来预测一起输出。
实验
作者固定了S尺度个数和N堆叠层数,这样就不用调参了,但是为什么要取这个数字,作者是通过大量实验得到这俩数字效果最好,为什么好没有解释A相邻节点个数只能取3或5,与序列长度L没有关系。
在PAM中,一个节点最多可以处理a + C + 1个节点。现有的深度学习库(如Pytorch和TensorFlow)不支持这种稀疏注意力机制。
使用TVM为PAM构建了一个定制的CUDA内核
Wind, App Flow, Electricity, and ETT. 等四个实际数据集前三个数据集用于单步预测,后两个数据集用于多步预测。
只关注了在构建金字塔图时,A 和 S 是固定的,C 随 L 的增加而增加的情况。
-
单步预测
采用 NRMSE(归一化均方根误差)和 ND(归一化偏差)作为评价指标
(1)Pyraformer预测结果最好,可以更好地解释时间序列中的时间交互作用
(2)Pyraformer 中 Q-K 对的数量最少,对于较长的时间序列,这一计算增益将继续增加
(3)Pyraformer 的参数数量略多于其他模型,这是 CSCM 的结果。然而,该模块非常轻量级,与其他模型相比,仅产生了 5%的模型大小开销。
-
多步预测
数据集:Electricity, ETTh1, and ETTm1.
对于 ETTh1 和 ETTm1,同时预测了未来的油温和 6 个电力负荷特征,
第一个预测模块的结果优于第二个预测模块。一种可能的解释是,基于全注意力层的第二个预测模块无法区分不同分辨率的特征,而基于单个全连接层的第一个模块可以自动充分利用这些特征。
-
内存占用
-
消融实验
(1) 为了减少预测误差,最好随 着L 的增加来增加 C,从而上每层树上的节点趋于稳定,但将 A 固定为一个小常数
(2) 带瓶颈的卷积在预测准确性和参数数量之间取得了平衡,因此我们将其用作 CSCM;
(3) 更多的真实数据有助于提高预测准确性;
(4) PAM 金字塔注意力模块是这个模型提高准确率最重要的部分
们将其用作 CSCM;
(3) 更多的真实数据有助于提高预测准确性;
(4) PAM 金字塔注意力模块是这个模型提高准确率最重要的部分