Triformer:长序列多变量时间序列预测
摘要:本文介绍了Triformer,一种用于长序列多变量时间序列预测的模型。它解决了传统注意力模型复杂度高和无法捕捉变量独特时间模式的问题,通过线性补丁注意力、三角堆叠和变量特定建模提高效率和准确性。在多个数据集上的实验表明,Triformer性能优于现有方法。同时探讨了其局限性和改进方向。
关键词:多变量时间序列预测;注意力机制;线性复杂度;变量特定建模
一、引言
在众多实际应用场景中,如电网电力消耗管理、气候预测等,长序列多变量时间序列预测发挥着至关重要的作用。它能够帮助决策者提前规划,优化资源配置,提升系统运行效率。然而,传统的预测方法在面对这类复杂的时间序列数据时,往往存在诸多挑战。
一方面,随着时间序列长度的增加,传统方法的计算复杂度急剧上升,导致效率低下。另一方面,不同变量的时间序列具有独特的动态特征,但现有模型通常使用相同的参数空间处理所有变量,无法准确捕捉这些差异,进而影响预测的准确性。因此,开发高效且准确的长序列多变量时间序列预测方法迫在眉睫。
二、相关工作
2.1 短期与长期预测
时间序列预测方法可分为短期和长期预测。短期预测通常关注未来几十步的情况,多依赖递归神经网络(RNNs),如LSTM、GRU,或时间卷积网络(TCNs),像1D卷积、WaveNet等。不过,这些模型在处理长距离依赖关系时存在局限,因为它们依靠中间表示来间接访问输入序列,难以捕捉长期依赖,在长期预测任务中表现欠佳。
相比之下,基于自注意力机制的模型在长期预测中展现出优势,能更好地捕捉长程依赖。但标准自注意力机制的时间和内存复杂度与输入序列长度呈二次方关系( O ( H 2 ) O(H^{2}) O(H2)),这在处理长序列时成为瓶颈。为降低复杂度,稀疏注意力机制被提出,如LogTrans( O ( H ( l o g H ) 2 ) O(H(log H)^{2}) O(H(logH)2))和Informer( O ( H l o g H ) O(H log H) O(HlogH)) ,但仍未达到线性复杂度。
2.2 变量不可知与变量特定建模
多数现有研究采用变量不可知的建模方式,即不同变量的时间序列共享相同的模型参数,像RNNs中的权重矩阵、TCNs中的卷积核以及注意力机制中的投影矩阵等。然而,不同变量的时间序列可能具有截然不同的时间模式,这种“一刀切”的方式无法充分挖掘各变量的特征,导致预测准确性受限。
虽然有部分研究尝试变量特定建模,但存在各种问题。如Cirstea等人利用嵌入和超网络生成变量特定权重矩阵,内存消耗大,不适用于长序列预测;Pan等人借助额外元信息生成权重矩阵,但元信息并非总是可得;Bai等人以数据驱动方式学习权重矩阵,可作为对比方法进行实验评估。
2.3 与其他Transformer的区别
与基于池化的Transformer相比,Triformer的补丁注意力(PA)机制具有独特优势。基于池化的Transformer在计算注意力时,每个时间戳需关注所有其他时间戳,导致复杂度较高(
O
(
S
2
)
O(S^{2})
O(S2)) ,且常依赖池化层缩小输入尺寸。而PA机制中,每个时间戳仅关注伪时间戳,复杂度降为线性(
O
(
S
)
O(S)
O(S)) ,且无需额外池化层,通过特定的层间传递方式缩小层大小。
与分层Transformer相比,Triformer专注于时间序列预测领域。分层Transformer主要用于自然语言处理和计算机视觉,在捕捉补丁间依赖关系时复杂度较高;Triformer为每个补丁引入可学习的伪时间戳,不仅降低了复杂度,还能更好地适应时间序列数据的特点。
三、预备知识
3.1 问题定义
多变量时间序列记录多个变量随时间的变化。假设观测值
x
t
∈
R
N
x_{t} \in \mathbb{R}^{N}
xt∈RN表示在时间戳
t
t
t时
N
N
N个变量的值,
x
t
(
i
)
∈
R
x_{t}^{(i)} \in \mathbb{R}
xt(i)∈R是第
i
i
i个变量在
t
t
t时刻的取值。时间序列预测的目标是学习一个函数
F
ϕ
\mathcal{F}_{\phi}
Fϕ,它以过去
H
H
H个时间戳的观测值为输入,预测未来
F
F
F个时间戳的值,数学表达式为:
F
ϕ
(
x
t
−
H
+
1
,
…
,
x
t
−
1
,
x
t
)
=
(
x
^
t
+
1
,
x
^
t
+
2
,
…
,
x
^
t
+
F
)
\mathcal{F}_{\phi}\left(x_{t - H + 1}, \ldots, x_{t - 1}, x_{t}\right)=\left(\hat{x}_{t + 1}, \hat{x}_{t + 2}, \ldots, \hat{x}_{t + F}\right)
Fϕ(xt−H+1,…,xt−1,xt)=(x^t+1,x^t+2,…,x^t+F)
其中,
ϕ
\phi
ϕ是预测模型的可学习参数,
x
^
j
\hat{x}_{j}
x^j是时间戳
j
j
j的预测值。
3.2 自注意力机制
自注意力是基于注意力模型的核心操作。对于具有 H H H个时间戳的时间序列 x ( i ) ∈ R H x^{(i)} \in \mathbb{R}^{H} x(i)∈RH(来自第 i i i个变量),标准自注意力机制首先将其转换为查询矩阵 Q ( i ) = x ( i ) W Q ∈ R H × d Q^{(i)} = x^{(i)}W_{Q} \in \mathbb{R}^{H × d} Q(i)=x(i)WQ∈RH×d、键矩阵 K ( i ) = x ( i ) W K ∈ R H × d K^{(i)} = x^{(i)}W_{K} \in \mathbb{R}^{H × d} K(i)=x(i)WK∈RH×d和值矩阵 V ( i ) = x ( i ) W V ∈ R H × d V^{(i)} = x^{(i)}W_{V} \in \mathbb{R}^{H × d} V(i)=x(i)WV∈RH×d,这里 d d d是隐藏表示维度, W Q W_{Q} WQ、 W K W_{K} WK、 W V ∈ R d × d W_{V} \in \mathbb{R}^{d × d} WV∈Rd×d是可学习的投影矩阵。
随后,输出通过值矩阵
V
(
i
)
V^{(i)}
V(i)中值的加权和得到,权重(即注意力分数)依据查询矩阵
Q
(
i
)
Q^{(i)}
Q(i)和键矩阵
K
(
i
)
K^{(i)}
K(i)计算,公式为:随后,输出通过值矩阵
V
(
i
)
V^{(i)}
V(i)中值的加权和得到,权重(即注意力分数)依据查询矩阵
Q
(
i
)
Q^{(i)}
Q(i)和键矩阵
K
(
i
)
K^{(i)}
K(i)计算,公式为:
A
(
Q
(
i
)
,
K
(
i
)
,
V
(
i
)
)
=
φ
(
Q
(
i
)
K
(
i
)
T
d
)
V
(
i
)
\mathcal{A}\left(Q^{(i)}, K^{(i)}, V^{(i)}\right)=\varphi\left(\frac{Q^{(i)}K^{(i)T}}{\sqrt{d}}\right)V^{(i)}
A(Q(i),K(i),V(i))=φ(dQ(i)K(i)T)V(i)
其中,
φ
\varphi
φ表示softmax激活函数。但计算注意力分数的时间复杂度为
O
(
H
2
)
O(H^{2})
O(H2),内存消耗大,这是其主要缺陷。同时,现有基于注意力的方法通常对所有变量使用相同的投影矩阵,难以体现变量的独特性。其中,
φ
\varphi
φ表示softmax激活函数。但计算注意力分数的时间复杂度为
O
(
H
2
)
O(H^{2})
O(H2),内存消耗大,这是其主要缺陷。同时,现有基于注意力的方法通常对所有变量使用相同的投影矩阵,难以体现变量的独特性。
四、Triformer模型详解
4.1 线性补丁注意力PA
为解决高复杂度问题,Triformer提出线性补丁注意力(PA)机制。它将长度为 H H H的输入时间序列按时间维度划分为 P = H / S P = H / S P=H/S个补丁( S S S为补丁大小) 。例如,当 H = 12 H = 12 H=12, S = 3 S = 3 S=3时,可划分为 P = 4 P = 4 P=4个补丁。用 x p = < x ( p − 1 ) S + 1 , … , x p S > x_{p}=<x_{(p - 1)S + 1}, \ldots, x_{pS}> xp=<x(p−1)S+1,…,xpS>表示第 p p p个补丁。
传统自注意力机制在补丁内计算会带来二次方复杂度,PA机制引入可学习的伪时间戳
T
p
∈
R
N
×
d
T_{p} \in \mathbb{R}^{N × d}
Tp∈RN×d。伪时间戳作为数据容器,补丁内的真实时间戳向其写入信息。在计算注意力时,伪时间戳充当查询,与补丁内所有真实时间戳计算注意力分数,每个真实时间戳仅计算一个分数,从而使复杂度降为线性(
O
(
S
)
O(S)
O(S)) 。
PA的计算过程如公式所示:
T
p
=
P
A
(
T
p
,
x
p
)
=
{
φ
(
T
p
(
i
)
(
x
p
(
i
)
W
K
)
T
d
)
(
x
p
(
i
)
W
V
)
}
i
=
1
N
T_{p}=\mathcal{P} \mathcal{A}\left(T_{p}, x_{p}\right)=\left\{\varphi\left(\frac{T_{p}^{(i)}\left(x_{p}^{(i)} W_{K}\right)^{T}}{\sqrt{d}}\right)\left(x_{p}^{(i)} W_{V}\right)\right\}_{i = 1}^{N}
Tp=PA(Tp,xp)=⎩
⎨
⎧φ
dTp(i)(xp(i)WK)T
(xp(i)WV)⎭
⎬
⎫i=1N
其中,
T
p
=
T
p
(
i
)
i
=
1
N
T_{p} = {T_{p}^{(i)}}_{i = 1}^{N}
Tp=Tp(i)i=1N,每个变量都有特定的伪时间戳
T
p
(
i
)
T_{p}^{(i)}
Tp(i),体现了变量特异性。
PA在降低复杂度的同时,也缩小了时间感受野,从标准注意力的
H
H
H缩小到补丁大小
S
S
S,这可能影响对不同补丁间关系和长期依赖的捕捉。为解决此问题,Triformer引入递归连接,通过门控规则(公式如下)连接相邻补丁的伪时间戳,维持时间信息流:
T
p
+
1
=
g
(
Θ
1
T
p
+
b
1
)
⊙
σ
(
Θ
2
T
p
+
b
2
)
+
T
p
+
1
T_{p + 1}=g\left(\Theta_{1}T_{p} + b_{1}\right) \odot \sigma\left(\Theta_{2}T_{p} + b_{2}\right)+T_{p + 1}
Tp+1=g(Θ1Tp+b1)⊙σ(Θ2Tp+b2)+Tp+1
其中,
Θ
1
\Theta_{1}
Θ1、
Θ
2
\Theta_{2}
Θ2、
b
1
b_{1}
b1、
b
2
b_{2}
b2是递归门的学习参数,
⊙
\odot
⊙表示元素级乘积,
g
(
⋅
)
g(\cdot)
g(⋅)是tanh激活函数,
σ
(
⋅
)
\sigma(\cdot)
σ(⋅)是sigmoid函数,用于控制传递到下一个伪时间戳的信息比例。
4.2 三角堆叠
堆叠多层注意力通常可提升模型性能。在传统注意力模型中,各层输入大小相同,基于池化的方法会使用1D卷积缩小输入尺寸。而Triformer的PA机制在层间传递时,仅将补丁的伪时间戳输入到下一层,使得层大小呈指数级缩小。具体而言,第 ( l + 1 ) (l + 1) (l+1)层的大小是第 l l l层大小的 1 S l \frac{1}{S_{l}} Sl1( S l S_{l} Sl是第 l l l层的补丁大小) 。
由此可得引理:若补丁大小
S
l
≥
2
S_{l} \geq 2
Sl≥2(
1
≤
l
≤
L
1 \leq l \leq L
1≤l≤L) ,
L
L
L层Triformer的时间复杂度为线性
O
(
H
)
O(H)
O(H)。证明过程如下:第
l
l
l层的输入大小最多为
H
S
^
l
−
1
\frac{H}{\hat{S}^{l - 1}}
S^l−1H(
S
^
=
m
i
n
1
≤
i
≤
L
S
i
\hat{S}=min _{1 \leq i \leq L} S_{i}
S^=min1≤i≤LSi是所有层的最小补丁大小) ,那么
L
L
L层的输入大小总和为:
∑
i
=
1
L
H
S
^
i
−
1
=
H
⋅
∑
i
=
1
L
(
1
S
^
)
i
−
1
<
S
^
S
^
−
1
⋅
H
<
2
⋅
H
\sum_{i = 1}^{L} \frac{H}{\hat{S}^{i - 1}}=H \cdot \sum_{i = 1}^{L}\left(\frac{1}{\hat{S}}\right)^{i - 1}<\frac{\hat{S}}{\hat{S}-1} \cdot H<2 \cdot H
i=1∑LS^i−1H=H⋅i=1∑L(S^1)i−1<S^−1S^⋅H<2⋅H
由于PA的复杂度与输入大小呈线性关系,所以多层PA的复杂度仍为
O
(
H
)
O(H)
O(H)。
在多层Triformer中,各层的补丁数量和伪时间戳数量不同。模型将每层的所有伪时间戳聚合为一个输出
O
l
O^{l}
Ol :
O
l
=
θ
l
(
T
1
l
,
…
,
T
k
l
,
…
,
T
P
l
)
O^{l}=\theta^{l}\left(T_{1}^{l}, \ldots, T_{k}^{l}, \ldots, T_{P}^{l}\right)
Ol=θl(T1l,…,Tkl,…,TPl)
其中,
θ
l
\theta^{l}
θl是神经网络,
T
p
l
T_{p}^{l}
Tpl是第
l
l
l层补丁
p
p
p的伪时间戳。所有层的聚合输出连接到预测器,这样做既能利用不同时间尺度的特征,又能提供多个梯度反馈短路径,有助于模型学习。预测器采用全连接神经网络,因其在长期预测中效率较高。
4.3 变量特定建模
简单地为每个变量设置不同的投影矩阵会导致参数空间过大,易出现过拟合、高内存消耗和扩展性差等问题。为解决这些问题,Triformer提出一种轻量级的变量特定建模方法。
该方法为每个变量 i i i引入 m m m维记忆向量 M ( i ) ∈ R m M^{(i)} \in \mathbb{R}^{m} M(i)∈Rm,向量随机初始化且可学习,完全依赖数据驱动,能学习变量的显著特征。对于投影矩阵(以键矩阵 W K ( i ) ∈ R d × d W_{K}^{(i)} \in \mathbb{R}^{d × d} WK(i)∈Rd×d为例) ,将其分解为左变量无关矩阵 L K ∈ R d × a L_{K} \in \mathbb{R}^{d × a} LK∈Rd×a、中间变量特定矩阵 B ( i ) ∈ R a × a B^{(i)} \in \mathbb{R}^{a × a} B(i)∈Ra×a和右变量无关矩阵 R K ∈ R a × d R_{K} \in \mathbb{R}^{a × d} RK∈Ra×d,并使中间矩阵紧凑( a ≪ d a \ll d a≪d) ,以减少参数数量。
不同变量的中间矩阵 B ( i ) B^{(i)} B(i)由其记忆向量 M ( i ) M^{(i)} M(i)通过生成器 G ( ⋅ ) G(\cdot) G(⋅)(如1层神经网络)生成。这种分解方式不仅减少了参数数量(直接学习完整矩阵需 N ⋅ a 2 N \cdot a^{2} N⋅a2个参数,使用生成器只需 N ⋅ m + m ⋅ a 2 N \cdot m + m \cdot a^{2} N⋅m+m⋅a2个参数) ,还能通过共享变量无关矩阵起到隐式正则化作用,促进变量间的知识共享,提高预测准确性。
变量特定的键矩阵和值矩阵
W
K
(
i
)
W_{K}^{(i)}
WK(i)、
W
V
(
i
)
W_{V}^{(i)}
WV(i)的生成公式为:
[
W
K
(
i
)
W
V
(
i
)
]
=
[
L
K
G
(
M
(
i
)
)
R
K
L
V
G
(
M
(
i
)
)
R
V
]
\left[\begin{array}{l} W_{K}^{(i)} \\ W_{V}^{(i)}\end{array}\right]=\left[\begin{array}{l}L_{K} \mathcal{G}\left(M^{(i)}\right) R_{K} \\ L_{V} \mathcal{G}\left(M^{(i)}\right) R_{V}\end{array}\right]
[WK(i)WV(i)]=[LKG(M(i))RKLVG(M(i))RV]
这些矩阵用于替换PA中的普通投影矩阵,实现变量特定的注意力计算。
五、实验
5.1 实验设置
- 数据集:选用四个常用的时间序列数据集,包括 E T T h 1 ETT_{h_{1}} ETTh1、 E T T m 1 ETT _{m_{1}} ETTm1(电力变压器温度数据,每15分钟观测一次,6变量时间序列,训练/验证/测试集分别覆盖12/4/4个月) 、ECL(电力消耗负荷数据,321变量,每小时记录,训练/验证/测试集覆盖15/3/4个月)和Weather(12变量,记录气候特征,每小时收集,训练/验证/测试集覆盖28/10/10个月)。
- 预测设置:使用历史 H H H个时间戳预测未来 F F F个时间戳。针对不同数据集,按常用设置变化 H H H和 F F F的值,如 E T T h 1 ETT_{h_{1}} ETTh1、ECL和Weather的 F F F分别设为24、48、168、336、720、960(对应不同天数的预测) , E T T m 1 ETT_{m_{1}} ETTm1的 F F F为24、48、96、288、672(对应不同小时数的预测) , H H H也相应变化。
- 基线模型:选取六个性能较强的基线模型,包括StemGNN、AGCRN、Informer、Reformer、LogTrans和Autoformer。
- 实现细节:采用Adam优化器,学习率 1 e − 4 1e^{-4} 1e−4,模型最多训练10个epoch,使用早停法(耐心值3) ,批量大小32。默认参数 d = 32 d = 32 d=32、 m = 5 m = 5 m=5、 a = 5 a = 5 a=5 ,研究不同参数的影响。根据输入大小 H H H变化补丁大小(2、3、4、6、7、12、24)和层数(3、4、5) ,依据验证集选择最优配置。使用相同的位置嵌入机制,所有模型在单个NVIDIA V100 GPU上训练和测试。
5.2 实验结果
在所有数据集上,Triformer的预测准确性均优于基线模型。例如,在 E T T h 1 ETT_{h_{1}} ETTh1数据集上,当预测步长 F = 24 F = 24 F=24时,Triformer的MSE为0.328,MAE为0.380,优于其他模型(如下表所示)。AGCRN在与部分变量无关的注意力模型比较中表现较好,凸显了变量特定建模的重要性;Autoformer获得第二好的准确性,体现了自相关的作用。
Method | F | ETT h 1 _{h_{1}} h1 MSE | ETT h 1 _{h_{1}} h1 MAE |
---|---|---|---|
Reformer | 24 | 0.991 | 0.754 |
LogTrans | 24 | 0.686 | 0.604 |
StemGNN | 24 | 0.488 | 0.508 |
AGCRN | 24 | 0.438 | 0.461 |
Informer | 24 | 0.577 | 0.549 |
Autoformer | 24 | 0.399 | 0.429 |
Triformer | 24 | 0.328 | 0.380 |
5.3 更长序列的实验
在ECL数据集上进行扩展实验,将 H H H和 F F F分别增加到1024和2048。结果显示,Informer的性能落后于Triformer,而Autoformer出现内存不足(OOM)的情况,进一步证明了Triformer在处理长序列时的优势。
H/F | Informer MSE | Autoformer MSE | Triformer MSE |
---|---|---|---|
1,024 | 0.512 | OOM | 0.303 |
2,048 | 0.941 | OOM | 0.350 |
5.4 消融研究
在ECL数据集上开展消融研究,分析模型各组件的作用。去除变量特定建模(VSM)后,模型准确性显著下降,表明其对捕捉变量独特时间模式至关重要;用简单方法替代轻量级变量特定建模,不仅准确性降低,还增加了参数数量;减少补丁注意力层数或去除多尺度建模,同样会导致准确性大幅下降,说明多层结构和多尺度表示的有效性;去除递归连接虽会降低准确性,但幅度相对较小,且能使计算并行化,提高运行速度。
MSE | MAE | #Param | s/epoch | |
---|---|---|---|---|
Triformer | 0.183 | 0.279 | 347k | 73.11 |
w/o VSM | 0.215 | 0.273 | 303k | 33.25 |
w Naive VSM | 0.191 | 0.288 | 826k | 63.81 |
w/o Stacking | 0.203 | 0.295 | 258k | 56.26 |
w/o Multiscale | 0.266 | 0.352 | 285k | 71.58 |
w/o Recurrent | 0.191 | 0.290 | 346k | 65.75 |
逐块消融研究表明,补丁注意力(PA)、三角堆叠(TS)和VSM都对模型性能有显著贡献。将VSM添加到Informer中,能显著提升其准确性,进一步验证了VSM的有效性。
MSE | MAE | #Param | s/epoch | |
---|---|---|---|---|
PA | 0.220 | 0.313 | 244k | 26.26 |
PA-RC | 0.223 | 0.314 | 224k | 22.82 |
PA+TS | 0.219 | 0.312 | 309k | 30.31 |
PA+VSM | 0.199 | 0.294 | 259k | 48.92 |
Triformer | 0.183 | 0.279 | 347k | 73.11 |
F | Informer MSE | Informer+VSM MSE | Triformer MSE |
---|---|---|---|
48 | 0.344 | 0.274 | 0.183 |
168 | 0.368 | 0.284 | 0.182 |
336 | 0.381 | 0.294 | 0.202 |
720 | 0.406 | 0.316 | 0.251 |
960 | 0.460 | 0.317 | 0.248 |
5.5 超参数敏感性分析
研究发现,Triformer在不同补丁大小和层数设置下,能灵活平衡准确性、效率和参数规模。隐藏表示 d d d过小时,模型难以捕捉复杂时间模式,准确性下降; d d d过大则可能导致过拟合。内存大小 m m m对模型准确性影响较小,表明模型对该参数不敏感。中间矩阵 B ( i ) B^{(i)} B(i)的大小 a a a过小时,无法充分捕捉变量特定时间模式, a = 5 a = 5 a=5时效果较好,继续增大 a a a对准确性提升有限。
在效率方面,Triformer在训练运行时间上优于Informer和Autoformer,随着输入序列长度 H H H增加,StemGNN运行时间增长迅速,AGCRN在长序列输入时表现较差。在推理时间上,所有模型均小于13.3ms,能满足实时预测需求。
通过对学习到的记忆 M ( i ) M^{(i)} M(i)进行可视化发现,不同变量的时间序列具有独特模式,相似时间模式的变量,其记忆向量在空间上更接近,证明了模型能够学习到变量的独特特征。
六、局限性和可能的解决方案
Triformer的补丁注意力机制存在一定局限性。可学习参数数量与预测设置相关,若训练和测试时输入长度不同,已训练模型将无法使用,限制了其在动态输入长度场景中的应用。此外,模型训练完成后,难以预测不同的时间范围。
针对这些问题,可引入生成器根据补丁索引生成伪时间戳,解耦补丁数量和可学习伪时间戳数量,提高模型灵活性。同时,使用编码器 - 解码器架构替代全连接预测器,使模型能够以自回归方式进行不同时间范围的预测。
七、结论与展望
Triformer通过线性补丁注意力、三角堆叠和变量特定建模,有效解决了长序列多变量时间序列预测中的效率和准确性问题,在多个数据集上表现优异。未来研究可探索更多支持动态输入长度的方法,以及利用课程学习等技术进一步提升模型训练效果,为时间序列预测领域的发展提供新的思路和方向。