机器学习周记(第四十五周:Graphformer)2024.6.24~2024.6.30

目录

  • 摘要
  • ABSTRACT
  • 1 论文信息
    • 1.1 论文标题
    • 1.2 论文摘要
    • 1.3 论文引言
    • 1.4 论文贡献
  • 2 论文模型
    • 2.1 问题定义
    • 2.2 模型架构
      • 2.2.1 自注意下采样模块(Self-attention down-sampling module)
      • 2.2.2 稀疏图自注意力机制(Sparse graph self-attention mechanism)
      • 2.2.3 多尺度特征融合(Multi-scale feature fusion)
      • 2.2.4 时间惯性融合层(Time inertia fusion layer)

摘要

本周阅读了一篇利用图神经网络结合Transformer的长时间序列预测论文,提出了一种新的模型Graphformer。Graphformer通过改进稀疏自注意力机制,结合图卷积网络(GCN)考虑不同尺度下变量之间的空间相关性,实现了Transformer架构与GCN的紧密集成。此外,论文还开发了自注意力降采样模块、多尺度特征融合操作以及时间惯性融合操作。实验分析表明,Graphformer在预测精度上显著优于之前的最新方法。研究还指出,未来可以通过使用各种分解方法预处理时间序列,并结合自动机器学习(AutoML)技术进一步提高模型精度​。

ABSTRACT

This week, We read a paper on long-term time series forecasting that combines Graph Neural Networks (GNN) with Transformer models and proposes a new model called Graphformer. Graphformer improves the sparse self-attention mechanism and incorporates Graph Convolutional Networks (GCN) to consider spatial correlations between variables at different scales, achieving a close integration of the Transformer architecture with GCN. Additionally, the paper develops a self-attention down-sampling module, a multi-scale feature fusion operation, and a time inertia fusion operation. Experimental analysis shows that Graphformer significantly outperforms previous state-of-the-art methods in prediction accuracy. The study also suggests that future improvements in model accuracy can be achieved by using various decomposition methods to preprocess time series and combining them with Automated Machine Learning (AutoML) techniques.

1 论文信息

SCI:1区
IF:7.2
发表单位:重庆大学计算机学院

1.1 论文标题

Graphformer: Adaptive graph correlation transformer for multivariate long sequence time series forecasting

1.2 论文摘要

准确的长序列时间序列预测(LSTF)由于其复杂的时间依赖性,仍然是一项关键挑战。多变量时间序列预测方法本质上假设变量是相互关联的,每个变量的未来状态不仅依赖于其历史,还依赖于其他变量。然而,大多数现有方法(如Transformer)无法有效利用变量之间的潜在空间相关性。为了解决上述问题,我们提出了一种基于Transformer的LSTF模型,称为Graphformer,该模型能够高效地学习多个变量之间复杂的时间模式和依赖关系。首先,在编码器的自注意下采样层中,Graphformer用膨胀卷积层取代了标准卷积层,以高效捕捉不同粒度水平下的长时间依赖关系。同时,Graphformer用图自注意机制取代了自注意机制,该机制可以从数据中自动推断隐含的稀疏图结构,对于没有显式图结构的时间序列表现出更好的泛化能力,并学习序列间的隐含空间依赖关系。此外,Graphformer使用时间惯性模块增强未来时间步对最近输入的敏感性,并通过切片和融合特征图的多尺度特征融合操作,在不同粒度水平上提取时间相关性,以提高模型的准确性和效率。与现有的SOTA Transformer模型相比,我们提出的Graphformer可以显著提高长序列时间序列预测的准确性。

1.3 论文引言

时间序列是一组按时间顺序排列的随机变量,通常是以固定采样率观察潜在过程的结果。基于历史时间序列观测,时间序列预测旨在估计和预测未来时间步长的变量状态,广泛应用于统计学、运筹学和交通事故预防等领域。通常需要基于历史观测获得多个连续未来时间步的预测,即多步预测。与经典的多步预测相比,长序列时间序列预测鼓励尽可能长的预测范围。预测范围的增长带来了额外的复杂性,例如误差积累、准确性降低和不确定性增加。因此,准确的长序列时间序列预测对时间序列预测研究领域来说仍然是一个挑战性问题。

类似于其他领域的预测任务,时间序列预测受益于近年来深度神经网络研究的发展,并已广泛应用于决策系统中,如交通事故预防、云计算资源重编程和最优投资策略。特别是,由于Transformer模型在自然语言处理中的成功,基于注意力机制的模型在时间序列预测中也取得了很大进展。然而,现有方法未能有效利用变量之间的潜在依赖关系。最近提出的基于Transformer的模型,包括Reformer、LogTrans和Informer,侧重于建模时间特征,而未显式建模不同序列之间的成对依赖关系,这削弱了模型的可解释性和预测能力。

在现实生活中,传感器可能跟踪交通流量、能源使用、温度等各种数据的变化。多个传感器收集的时间序列可以结合成多变量时间序列。多变量时间序列预测技术隐含地假定变量是相互关联的,每个变量的未来状态不仅依赖于其过去的值,还依赖于其他变量,而且研究人员可能还需要预测任意或所有变量的时间序列。在交通系统中,了解交通流量的未来趋势有助于减少交通事故和拥堵的发生。然而,交通流量的未来值不仅与其过去的值有关,还与其他变量(例如车辆的平均速度、空间占用率)有关。不论上述场景如何,挖掘不同变量之间的隐含相关性可以提高时间序列预测的整体准确性。

如何提取不同变量之间的交互特征是一个非常具有挑战性的问题。图是一种描述网络中不同实体之间关系的数据类型,将不同变量视为图的节点,将变量之间的依赖关系视为边,例如,电力资源数据集ETT的多变量时间序列可以建模为如 Fig.1 所示的结构,其中HUFL、HULL等都是描述电力资源的变量。最近,GCN在处理图结构数据方面取得了巨大成功。使用GCN进行多变量时间序列预测是一种很有前景的方法,通过聚合邻居节点的信息并探索时间序列之间的隐含依赖关系,同时保持序列的时间轨迹。

然而,基于GCN的时间序列预测方法需要通过距离或相似性度量预定义图结构。在大多数情况下,多变量时间序列没有显式图结构。这些变量之间的关系不是先验知识,而需要从数据中挖掘出来。即使对于存在显式图结构的时间序列,这些图也严重依赖于相应的领域知识。同时考虑人为定义的因素,也可能导致某些隐含信息的遗漏或偏差。
在这里插入图片描述

Fig.1 ETT数据集的多变量时间序列图结构建模

1.4 论文贡献

① 提出了一种基于Transformer的模型,名为Graphformer,该模型遵循编码器-解码器结构,结合了稀疏图自注意机制、多尺度特征融合和时间惯性机制,可以实现相等或更高的预测准确性。

② 将稀疏自注意机制改为稀疏图自注意机制,考虑了不同尺度下变量之间的空间相关性,实现了Transformer架构与GCN的紧密结合。其内部的自适应图卷积模块不依赖于任何先验知识,对于没有显式图结构的多变量时间序列具有更好的通用性。

2 论文模型

2.1 问题定义

将时间序列视为具有长度 L L L、维度 d x d_{x} dx且时间间隔相同的一系列连续观测值,可以表示为 X t = { x 1 t , x 2 t , … , x L t ∣ x i t ∈ R d x } X_t=\left\{x_1^t,x_2^t,\ldots,x_L^t|x_i^t\in R^{d_x}\right\} Xt={x1t,x2t,,xLtxitRdx}。如果 d x > 1 d_{x}>1 dx>1,则该时间序列称为多变量时间序列,其中 X X X可以表示为 L × D L \times D L×D二维矩阵:
X = [ X 1 , 1 t X 1 , 2 t … X 1 , d x t X 2 , 1 t X 2 , 2 t … X 2 , d x t ⋮ ⋮ ⋱ ⋮ X L , 1 t X L , 2 t … X L , d x t ] ( 1 ) X=\begin{bmatrix}X_{1,1}^t&X_{1,2}^t&\ldots&X_{1,d_x}^t\\X_{2,1}^t&X_{2,2}^t&\ldots&X_{2,d_x}^t\\\vdots&\vdots&\ddots&\vdots\\X_{L,1}^t&X_{L,2}^t&\ldots&X_{L,d_x}^t\end{bmatrix} \qquad (1) X= X1,1tX2,1tXL,1tX1,2tX2,2tXL,2tX1,dxtX2,dxtXL,dxt (1)
其中, X i t = [ X i , 1 t , X i , 2 t , … , X i , d x t ] X_{i}^{t}=\left[X_{i,1}^{t},X_{i,2}^{t},\ldots,X_{i,d_{x}}^{t}\right] Xit=[Xi,1t,Xi,2t,,Xi,dxt]表示在时间 i i i观察到的 X t X_{t} Xt的值, X i , k t X_{i,k}^{t} Xi,kt表示在时间 i i i观察到的 X i t X_{i}^{t} Xit的第 k k k个变量值。特别是,当变量维度为 d x = 1 d_{x}=1 dx=1时,时间序列称为单变量时间序列。显然,多变量时间序列可以看作是多个单变量时间序列的组合,这些变量可能相互影响,这里主要研究在多变量条件下的长时间序列预测。

G G G是一种描述网络中实体关系的结构。本文参考了Graph WaveNet,引入了一种自适应图学习方法,以反映稀疏query矩阵的图结构。图 G = ( V , E ) G=(V,E) G=(V,E)由一组顶点集 V V V和一组边集 E E E组成,可以用邻接矩阵 A A A表示。如果顶点 v i v_{i} vi v j v_{j} vj之间存在一条边 e i j e_{ij} eij,则为 A i j > 0 A_{ij}>0 Aij>0,否则,如果不存在边,则为 A i j = 0 A_{ij}=0 Aij=0

2.2 模型架构

Fig.2 展示了所提出的Graphformer模型的架构,该模型遵循编码器-解码器架构来提取输入序列中的长期时间相关性。编码器堆叠了三个多头稀疏图自注意模块、两个自注意下采样模块和一个多尺度特征融合层。解码器由一个掩码稀疏图自注意模块和一个稀疏图自注意模块组成。
在这里插入图片描述

Fig.2 Graphformer总体架构

在编码器中,每个图稀疏自注意模块包括一个稀疏自注意机制、自适应图学习机制和图卷积网络。稀疏自注意机制计算query-key的缩放点积注意力。随后,自适应图学习机制捕捉稀疏query矩阵的图结构,并自适应地推断出稀疏query矩阵中的隐藏空间依赖关系。图卷积网络通过聚合和转换节点的领域信息来学习节点特征,基于学习权重和预定义的图结构。对于没有显式图结构的多变量时间序列,稀疏图自注意模块也能够自适应地学习序列之间的潜在空间相关性。每两个多头稀疏图自注意块由一个自注意下采样模块连接。Graphformer在Informer的自注意下采样模块基础上,通过用膨胀因果卷积层替换标准卷积层,以高效地捕捉不同粒度水平下时间序列的长期依赖关系。后面跟随一个最大池化层,极大地减少了网络大小。

在基于CNN的计算机视觉领域,通常使用特征金字塔网络提取更细粒度的特征。应用于目标检测的CNN网络Yolov5使用一个聚焦层,将早期网络的特征图与最终特征图合并,以获得更细粒度的信息。Graphformer将这一结构迁移到基于Transformer的模型领域,以合并不同尺度的特征图。在不增加额外编码器的情况下,多尺度特征融合层融合了三个稀疏自注意块输出的特征图,然后将其转换为适当维度的最终输出。

在解码器中,输入序列中要预测的元素用零填充。从掩码多头自注意块中学习到的特征与来自编码器的特征图融合。然后,解码器的输出被输入到一个全连接层,最终通过时间惯性融合层发现基于时间周期的时间模式,并与模型输出聚合。

2.2.1 自注意下采样模块(Self-attention down-sampling module)

为了提取更深层次的特征图,需要堆叠多个自注意块,这带来了更高的时间和空间复杂度。为了解决这一问题,Graphformer利用了Informer的自注意下采样模块,通过用膨胀因果卷积层替换标准卷积层,以高效地捕捉不同粒度水平下时间序列的长期依赖关系。膨胀因果卷积以固定步长对特征元素进行采样,在时间维度上在元素前填充零以确保滤波器大小相等,并对采样的特征元素进行卷积操作。对于每个自注意块之后的膨胀因果卷积,卷积操作 D C o n v ( ⋅ ) DConv(\cdot) DConv()的公式如下所示:
D C o n v ( x n ) = [ x n x n − i . . . x n − ( s − 1 ) × i ] W ( 2 ) DConv\left(x_n\right)=\begin{bmatrix}x_n\\x_{n-i}\\.\\.\\.\\x_{n-(s-1)\times i}\end{bmatrix}W \qquad (2) DConv(xn)= xnxni...xn(s1)×i W(2)
其中, x n ∈ R d x_n\in R^d xnRd是序列 X ∈ R L × d X\in R^{L\times d} XRL×d的特征元素, n ∈ { 0 , 1 , 2 , … , L } n\in\{0,1,2,\ldots,L\} n{0,1,2,,L} s s s是滤波器的大小, W ∈ R d × d W\in R^{d\times d} WRd×d是可学习的权重, i i i是膨胀因子。随着层数的增加,第 i i i个膨胀因果卷积层的卷积核在两个相邻特征点之间跳过 2 i − 1 − 1 2^{i-1}-1 2i11个元素,并在输入上滑动。此外,根据因果关系的性质,时间 t t t的每个元素 x x x只与 t t t时刻或之前的元素进行卷积,以确保不会泄露未来信息。特别是,当 i = 1 ( 2 0 ) i=1(2^{0}) i=1(20)时,膨胀因果卷积将退化为普通因果卷积。

从膨胀因果卷积层得到的特征图通过最大池化层进行下采样,其公式如下所示:
X i + 1 t = M a x P o o l ( D c o n v ( [ X i t ] M S A ) ) ( 3 ) X_{i+1}^t=MaxPool\begin{pmatrix}Dconv\left(\begin{bmatrix}X_i^t\end{bmatrix}_{MSA}\right)\end{pmatrix} \qquad (3) Xi+1t=MaxPool(Dconv([Xit]MSA))(3)
其中, [ ⋅ ] M S A \begin{bmatrix}\cdot\end{bmatrix}_{MSA} []MSA表示多头稀疏自注意块, M a x P o o l ( ⋅ ) MaxPool(\cdot) MaxPool()表示最大池化操作。

Fig.3 显示了Graphformer编码器中具有核大小为3的两个膨胀因果卷积层。与标准卷积相比,即使仅使用两个膨胀因果卷积层,它也能捕捉更大的感受野,并减少计算成本和内存开销。此外,膨胀因果卷积层和最大池化层的组合不仅消除了稀疏自注意机制块(由value均值引起)的冗余并赋予了主导特征特权,而且将输入长度从 X i + 1 X_{i+1} Xi+1剪切到 X i X_{i} Xi的一半,因此内存开销也减少到 O ( L ln ⁡ L ) \mathscr{O}(L\ln L) O(LlnL)
在这里插入图片描述

Fig.3 使用自注意下采样模块的编码器结构

2.2.2 稀疏图自注意力机制(Sparse graph self-attention mechanism)

稀疏图自注意块包括三个部分:稀疏自注意机制、自适应图学习和图卷积网络,旨在提取主导注意力和潜在的空间依赖关系。

稀疏自注意机制: Informer中的稀疏自注意机制基于Transformer,接收元组输入(query, key, value),执行缩放点积操作,如下所示:
A ( Q , K , V ) = s o f t m a x ( Q K T d ) V \mathscr{A}(Q,K,V)=softmax\left(\frac{QK^{T}}{\sqrt{d}}\right)V A(Q,K,V)=softmax(d QKT)V,其中 Q ∈ R L Q × d Q\in\mathbb{R}^{L_{Q}\times d} QRLQ×d K ∈ R L K × d K\in\mathbb{R}^{L_K\times d} KRLK×d V ∈ R L k × d V\in\mathbb{R}^{L_k\times d} VRLk×d,同时 d d d表示输入维度。根据上述公式,第 i i i个query的注意权重可以转换为概率卷积核平滑器:
A t t e n t i o n ( q i , K , V ) = ∑ j p ( k j ∣ q i ) v j = ∑ j k ( q i , k j ) ∑ l k ( q i , k j ) v j ( 4 ) \begin{aligned}&Attention\left(q_i,K,V\right)=\sum_jp(k_j|q_i)v_j\\&=\sum_j\frac{k(q_i,k_j)}{\sum_lk(q_i,k_j)}v_j\end{aligned} \qquad (4) Attention(qi,K,V)=jp(kjqi)vj=jlk(qi,kj)k(qi,kj)vj(4)
基于Informer,Graphformer使用KL(Kullback-Leibler)散度来衡量第 i i i个query K L ( q i , K ) KL\left(q_{i},K\right) KL(qi,K)的概率分布 p ( k j ∣ q i ) p\left(k_j|q_i\right) p(kjqi)与均匀分布 q ( k j ∣ q i ) q\left(k_j|q_i\right) q(kjqi)之间的相似性。通过计算所有query的KL散度,并按降序排列,选择前 u u u个queries Q ˉ ∈ R u × d s q \bar{Q}\in\mathbb{R}^{u\times d_{sq}} QˉRu×dsq作为稀疏query矩阵,其中 u = c l n L Q u=clnL_Q u=clnLQ,然后对所有key计算稀疏自注意分数。

自适应图学习: 进一步讨论稀疏自注意机制时,参考Graph WaveNet模型,Graphformer引入一种自适应图学习方法来反映稀疏query矩阵 Q ˉ \bar{Q} Qˉ的图结构 G s q G_{sq} Gsq,并自适应推断出 Q ˉ \bar{Q} Qˉ中的隐藏空间依赖关系。对于 G s q G_{sq} Gsq,这个过程如下:
G s q = S o f t m a x ( E l u ( E q ˉ − E q ˉ T ) ) ( 5 ) G_{sq}=Softmax\big(Elu\big(E_{\bar{q}}-E_{\bar{q}}^T\big)\big) \qquad (5) Gsq=Softmax(Elu(EqˉEqˉT))(5)

其中每行 E q ˉ ∈ R d e × d s q E_{\bar{q}}\in\mathbb{R}^{d_e\times d_{sq}} EqˉRde×dsq表示一个query的嵌入, d e d_{e} de表示嵌入的维度。在训练过程中,可训练query的嵌入 E q ˉ E_{\bar{q}} Eqˉ被随机初始化并分配给所有节点,每对query之间的隐藏空间依赖关系通过矩阵乘法推断,并在训练过程中自动更新 E q ˉ E_{\bar{q}} Eqˉ的梯度。

与Graph WaveNet不同,Graphformer选择ELU激活函数来消除弱连接:
f ( x ) = { α × ( e x − 1 ) , x ≤ 0 x , x > 0 ( 6 ) f\left(x\right)=\left\{\begin{array}{l}\alpha\times\left(e^x-1\right),x\leq0\\x,x>0\end{array}\right. \qquad (6) f(x)={α×(ex1),x0x,x>0(6)

其中 α \alpha α是设置的参数, ( e x − 1 ) (e^{x}-1) (ex1)函数部分使 E L U ( ⋅ ) ELU(\cdot) ELU()对输入噪声更加稳健,线性部分使 E L U ( ⋅ ) ELU(\cdot) ELU()避免梯度消失问题。 E L U ( ⋅ ) ELU(\cdot) ELU()输出的平均值接近于零,因此其收敛速度更快。最后,softmax用于归一化和生成 Q ˉ \bar{Q} Qˉ的自适应邻接矩阵 G s q G_{sq} Gsq G s q G_{sq} Gsq的节点数 d s q d_{sq} dsq。通过这种方式,可以在没有任何先验知识的情况下学习稀疏query矩阵 Q ˉ \bar{Q} Qˉ的自适应邻接矩阵,并将主导query映射到低维密集图结构,这对于各种时间序列数据建模任务非常有效。

Graph Convolution Network: 对于时间序列输入 X ∈ R L × d X\in\mathbb{R}^{L\times d} XRL×d,GCN可以通过一阶切比雪夫多项式扩展很好地近似,并扩展到高维GCN。基于谱图的图卷积操作GC可以定义为:
X g = G C × X = A ~ X Θ ( 7 ) X_g=GC\times X=\widetilde{A}X\Theta \qquad (7) Xg=GC×X=A XΘ(7)

其中 X g ∈ R P × d X_{g}\in\mathbb{R}^{P\times d} XgRP×d表示GCN的输出, A ~ ∈ R d × d {\widetilde{A}\in\mathbb{R}^{d\times d}} A Rd×d表示图的自循环归一化邻接矩阵, Θ ∈ R L × P \Theta\in\mathbb{R}^{L\times P} ΘRL×P表示参数矩阵。扩展GC后,可以得到:
X g = G C × X = ( I N + D − 1 2 A D − 1 2 ) X Θ + b ( 8 ) X_g=GC\times X=\left(I_N+D^{-\frac12}AD^{-\frac12}\right)X\Theta+b \qquad (8) Xg=GC×X=(IN+D21AD21)XΘ+b(8)

其中, I N I_{N} IN表示单位矩阵, D ∈ R d × d D\in\mathbb{R}^{d\times d} DRd×d表示图的度矩阵, A ∈ R d × d A\in\mathbb{R}^{d\times d} ARd×d表示图的邻接矩阵,且 D i i = ∑ j A i j D_{ii}=\sum_{j}A_{ij} Dii=jAij Θ ∈ R L × P \Theta\in\mathbb{R}^{L\times P} ΘRL×P b ∈ R P {b\in\mathbb{R}^{P}} bRP表示可训练的权重和偏置, D − 1 2 A D − 1 2 D^{-\frac12}AD^{-\frac12} D21AD21表示归一化拉普拉斯矩阵。Graphformer使用上述自适应生成的图结构 G s q G_{sq} Gsq来替换Eq.8中的 D − 1 2 A D − 1 2 D^{-\frac12}AD^{-\frac12} D21AD21,以提取主导query的依赖关系,并引入AGCRN提出的节点自适应参数学习模块,来挖掘每个节点的独特空间特征。计算过程如下所示:
X g = G C × X = ( I s q + G s q ) X E q ˉ W g + E q ˉ b g ( 9 ) X_g=GC\times X=(I_{sq}+G_{sq})XE_{\bar{q}}W_g+E_{\bar{q}}b_g \qquad (9) Xg=GC×X=(Isq+Gsq)XEqˉWg+Eqˉbg(9)

其中, T s q T_{sq} Tsq表示单位矩阵, W g W_{g} Wg b g b_{g} bg表示可训练的超参数。节点自适应参数学习模块解决了由于 Θ \Theta Θ过大而导致的过拟合现象,因为难以优化每个节点的参数分配。具体来说,借鉴矩阵分解的思想,GCN学习两个相对较小的矩阵 W g W_{g} Wg b g b_{g} bg来替换权重 Θ ∈ R ( k × u ) × ( k × u ) × d s q \Theta\in\mathbb{R}^{(k\times u)\times(k\times u)\times d_{sq}} ΘR(k×u)×(k×u)×dsq和偏差 b ∈ R ( k × u ) × d s q b\in\mathbb{R}^{(k\times u)\times d_{sq}} bR(k×u)×dsq。在这里, Θ = E q ˉ ⋅ W g \Theta=E_{\bar{q}}\cdot W_{g} Θ=EqˉWg b = E q ˉ ⋅ b g b=E_{\bar{q}}\cdot b_{g} b=Eqˉbg,其中 W g ∈ R ( k × u ) × ( k × u ) × d e W_{g}\in\mathbb{R}^{(k\times u)\times(k\times u)\times d_{e}} WgR(k×u)×(k×u)×de表示权重池, b g ∈ R ( k × u ) × d e b_{g}\in\mathbb{R}^{(k\times u)\times d_{e}} bgR(k×u)×de表示偏差池, E q ˉ ∈ R d e × d s q E_{\bar{q}}\in\mathbb{R}^{d_{e}\times d_{sq}} EqˉRde×dsq表示可训练的query嵌入, d e d_{e} de表示嵌入维度, d s q d_{sq} dsq表示图中节点的数量,即序列特征维度, k k k表示多头稀疏注意力头的数量。通过这种分解方法,每个节点根据 E q ˉ E_{\bar q} Eqˉ从共享的权重池 W g 和偏差池 W_{g}和偏差池 Wg和偏差池b_{g}$中提取自己的参数,减少参数大小和训练负担,同时帮助模型学习时间序列的隐藏和独特空间依赖关系。

综上所述,为了找到稀疏query矩阵 Q ˉ \bar Q Qˉ上节点之间的隐藏关联,自适应图学习层计算图的邻接矩阵,然后将该矩阵作为GCN的输入,扩展到具有潜在空间相关性的稀疏query矩阵 Q ˉ g \bar Q_{g} Qˉg
Q ˉ g = G C × Q ˉ = ( I s q + S o f t m a x ( E l u ( E q ˉ ⋅ E q ˉ T ) ) ) Q ˉ Θ ( 10 ) \begin{aligned}&\bar{Q}_{g}=GC\times\bar{Q}\\&=\left(I_{sq}+Softmax\left(Elu\left(E_{\bar{q}}\cdot E_{\bar{q}}^T\right)\right)\right)\bar{Q}\Theta\end{aligned} \qquad (10) Qˉg=GC×Qˉ=(Isq+Softmax(Elu(EqˉEqˉT)))QˉΘ(10)

其中 Q ˉ g ∈ R d s q × P \bar{Q}_{g}\in\mathbb{R}^{d_{sq}\times P} QˉgRdsq×P Θ \Theta Θ表示所有可训练参数的集合。根据Graphformer中衡量稀疏性的近似方法,第 i i i个query在稀疏query空间矩阵 Q ˉ g \bar Q_{g} Qˉg中的概率分布 p ( k j ∣ q i g ) p(k_{j}|q_{ig}) p(kjqig)与均匀分布 q ( k j ∣ q i g ) q(k_{j}|q_{ig}) q(kjqig)之间的相似性,即第 i i i个query的稀疏性最大均值 ( q i g , K ) (q_{ig},K) (qig,K),可以重写为如下形式:
M a x M e a n ( q i g , K ) = m a x j { q i g k j T d } − 1 L K ∑ j = 1 L K q i g k j T d ( 11 ) \begin{aligned}&MaxMean\left(q_{ig},K\right)=max_j\left\{\frac{q_{ig}{k_j}^T}{\sqrt{d}}\right\}\\&-\frac{1}{L_{K}}\sum_{j=1}^{L_{K}}\frac{q_{ig}{k_{j}}^{T}}{\sqrt{d}}\end{aligned} \qquad (11) MaxMean(qig,K)=maxj{d qigkjT}LK1j=1LKd qigkjT(11)

在实践中,Graphformer只需随机抽样 U = L Q ln ⁡ L K U=L_{Q}\ln L_{K} U=LQlnLK个点积对(其余点积赋值为0),计算最大均值 M a x M e a n ( q i , K ) MaxMean(q_{i},K) MaxMean(qi,K),并按大小排序,选择前 u u u个query作为稀疏query矩阵 Q ˉ \bar Q Qˉ,在自适应图学习和GCN来提取空间依赖关系后生成 Q ˉ g \bar Q_{g} Qˉg,更新 M a x M e a n ( q i g , K ) MaxMean(q_{ig},K) MaxMean(qig,K),然后计算所有key以获取稀疏图自注意力分数SparseGraphAttention:
S p a r s e G r a p h A t t e n t i o n ( Q , K , V ) = S o f t m a x ( Q ˉ g K T d ) V ( 12 ) \begin{aligned}&SparseGraphAttention\left(Q,K,V\right)\\&=Softmax\left(\frac{\bar{Q}_gK^T}{\sqrt{d}}\right)V\end{aligned} \qquad (12) SparseGraphAttention(Q,K,V)=Softmax(d QˉgKT)V(12)

与传统的稀疏自注意力机制相比,稀疏图自注意力机制在学习的高维空间中计算隐藏的空间相关性,并与多头自注意力结合,探索不同尺度潜在关系空间中的多种空间依赖关系。

2.2.3 多尺度特征融合(Multi-scale feature fusion)

受计算机视觉中focus层设计的启发,Graphformer模型在编码器中引入了多尺度特征融合设计,应用于长序列时间序列预测。Fig.4 展示了多尺度特征融合层在Graphformer编码器中的设计,其中来自每个自注意力块的不同粒度级别的三个特征图被融合成一个特征图。具体来说,当编码器堆叠n个自注意力块时,每个自注意力块将生成一个特征图,其中第k个(k=1,2,…,n)特征图的长度为 L / 2 k − 1 L/2^{k-1} L/2k1,维度为d。为了融合不同粒度级别的特征图,第k个特征图被输入到多尺度特征融合层,切割成长度为 L / 2 n − 1 L/2^{n-1} L/2n1 2 n − k 2^{n-k} 2nk个特征图。切割操作后,所有特征图沿维度连接成一个维度为 ( 2 n − 1 ) × d (2^{n}-1)\times d (2n1)×d的融合特征图。最后,添加一个1D卷积层,确保整个编码器输出一个具有适当维度d的特征图,以形成隐藏状态 H t ϵ R L 4 × d H^{t}\epsilon\mathbb{R}^{\frac{L}{4}\times d} HtϵR4L×d

需要注意的是,多尺度特征融合操作的功能类似于Informer中的蒸馏操作。然而,蒸馏操作需要构建许多额外的编码器,其数量与自注意力块的数量相同,导致相当大的计算开销。而Graphformer模型只需要使用一个多尺度特征融合的编码器,就可以降低计算成本并提取各种细粒度特征。
在这里插入图片描述

Fig.4 堆叠了三个自注意力块的编码器结构

2.2.4 时间惯性融合层(Time inertia fusion layer)

时间惯性块直接将输入序列 X t X^{t} Xt中长度最后的子序列作为预测范围P的输出,即 Y t ˉ = { x L − P + 1 t , x L − P + 2 t , … , x L t } \bar{Y^{t}}=\left\{x_{L-P+1}^{t},x_{L-P+2}^{t},\ldots,x_{L}^{t}\right\} Ytˉ={xLP+1t,xLP+2t,,xLt},具体过程如 Fig.5 所示。不难看出,时间惯性要求预测序列的长度小于输入序列的长度,即 P ≤ L P \le L PL。在长时间序列预测的实际应用场景中,数据集通常比预测范围P大几个数量级,这很容易实现。获得时间惯性输出后,将深度学习模型的输出进行加权和求和,得到最终的预测结果。

预测序列和输入序列之间的相似性对于时间惯性至关重要。对于长时间序列,可预测序列的时间模式更加稳定,反映了更完整的周期性,这体现在预测序列和输入序列的相位和振幅的相似性上。在这种情况下,应用时间惯性可能会显著提高预测性能,尤其是当预测范围是时间序列周期长度的整数倍时。

复杂的深度学习模型在一定程度上通过嵌入周期时间戳作为输入序列考虑了这种惯性。然而,自注意力机制和卷积操作的非线性特性导致它们的输出对最近范围内的输入不够敏感。这意味着在某些变化相对平缓的长时间序列周期中,时间惯性将发挥重要作用。因此,直接利用时间惯性信息来改进最终的预测结果可能是有益的。
在这里插入图片描述

Fig.5 时间惯性机制的输入输出示意图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/38153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】using namespace std 到底什么意思

📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文作为 JohnKi 的学习笔记,引用了部分大佬的案例 📢未来很长&a…

新手练习项目 7:猜数字游戏

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder) 目录 一、项目描述二、项目实现三、项目步骤四、项目扩展方向 更多项目内容,请关注我、订…

打靶记录——靶机medium_socnet

靶机下载地址 https://www.vulnhub.com/entry/boredhackerblog-social-network,454/ 打靶过程 由于靶机和我的Kali都处于同一个网段,所以使用arpscan二次发现技术来识别目标主机的IP地址 arpscan -l除了192.168.174.133,其他IP都是我VMware虚拟机正…

【Spring Boot】认识 JPA 的接口

认识 JPA 的接口 1.JPA 接口 JpaRepository2.分页排序接口 PagingAndSortingRepository3.数据操作接口 CrudRepository4.分页接口 Pageable 和 Page5.排序类 Sort JPA 提供了操作数据库的接口。在开发过程中继承和使用这些接口,可简化现有的持久化开发工作。可以使 …

springboot学习,如何用redission实现分布式锁

目录 一、springboot框架介绍二、redission是什么三、什么是分布式锁四、如何用redission实现分布式锁 一、springboot框架介绍 Spring Boot是一个开源的Java框架,由Pivotal团队(现为VMware的一部分)于2013年推出。它旨在简化Spring应用程序…

大数据面试题之Spark(1)

目录 Spark的任务执行流程 Spark的运行流程 Spark的作业运行流程是怎么样的? Spark的特点 Spark源码中的任务调度 Spark作业调度 Spark的架构 Spark的使用场景 Spark on standalone模型、YARN架构模型(画架构图) Spark的yarn-cluster涉及的参数有哪些? Spark提交jo…

编码大模型系列:Meta创新的“代码编译优化”的LLM

鲁班号导读正式上线。移步“鲁班秘笈”,查阅更多内容。 大型语言模型 (LLM) 已在各种软件工程和编码任务中展现出卓越的能力。然而,它们在代码和编译器优化领域的应用仍未得到充分探索。训练LLM需要大量资源,需要大量的 GPU时间和大量的数据…

一个合理的前端应用文件结构

在大型应用中,最关键且最具挑战性的方面之一就是拥有一个良好且合理的文件结构。在考虑通过微前端将代码库拆分成多个应用之前,可以遵循一些步骤来改善项目级别的架构,并在您考虑这一路径时使过渡更容易。 我们的目标是应用某种模块化方法&am…

MSPM0G3507——定时器例程讲解4——timx_timer_mode_periodic

以下示例以周期模式配置TimerG并切换LED。周期从500ms开始,每次切换减少50ms,直到周期为100ms,然后重复。设备在等待中断时保持待机模式 #include "ti_msp_dl_config.h"/* ((32KHz / (321)) * 0.5s) 45 - 1 495 due to N1 ticks …

Qt中用QLabel创建状态灯

首先ui设计中分别创建了4个大灯和4个小灯。 编辑.h文件 #ifndef LED_H #define LED_H#include <QWidget> #include <QLabel>QT_BEGIN_NAMESPACE namespace Ui { class Led; } QT_END_NAMESPACEclass Led : public QWidget {Q_OBJECTpublic:Led(QWidget *parent n…

服务器硬件以及RAID配置

目录 一、RAID磁盘阵列原理&#xff08;嘎嘎重要&#xff09; 1、RAID的概述 2、常用的RAID 2.1、RAID 0 2.2、RAID 1 2.3、RAID 5 2.5、RAID 10 3、阵列卡介绍 二、建立软件RAID磁盘阵列 1、添加硬盘 2、使用fdisk分区&#xff0c;类型为fd 3、mdata命令使用参数 …

安全与加密常识(3)什么是数字签名和数字证书

文章目录 数字签名工作原理关键特点应用实例 数字证书数字证书和数字签名趣味实例 数字签名 数字签名是一种通过密码运算生成的数据&#xff0c;用于验证信息的完整性和来源&#xff0c;确保数据在传输过程中未被篡改&#xff0c;同时提供发送者的身份认证和防止抵赖的功能。它…

Qt: QPushButton 按钮实现 上图标下文字

效果如下&#xff1a; 实现有如下几种方式&#xff1a; 1. 使用 QPushButton 设置 setStyleSheet 例&#xff1a; ui->recorder->setStyleSheet("QPushButton{"\"border: 1px solid #00d2ff; "\"min-height: 60px; "\"col…

python多继承的3C算法

python多继承的3C算法 有很多地方都说python多继承的继承顺序&#xff0c;是按照深度遍历的方式&#xff0c;其实python多继承顺序的算法&#xff0c;不是严格意义上的深度遍历&#xff0c;而是基于深度遍历基础上优化出一种叫3C算法 python多继承的深度遍历 class C:def ru…

MySQL高级-MVCC-原理分析(RR级别)

文章目录 1、RR隔离级别下&#xff0c;仅在事务中第一次执行快照读时生成ReadView&#xff0c;后续复用该ReadView2、总结 1、RR隔离级别下&#xff0c;仅在事务中第一次执行快照读时生成ReadView&#xff0c;后续复用该ReadView 而RR 是可重复读&#xff0c;在一个事务中&…

Django 配置静态文件

1&#xff0c;DebugTrue 调试模式 Test/Test/settings.py DEBUG True...STATICFILES_DIRS [os.path.join(BASE_DIR, static),] STATIC_URL /static/ 1.1 创建静态文件 Test/static/6/images/Sni1.png 1.2 添加视图函数 Test/app6/views.py from django.shortcuts impor…

uniapp,uni-fab组件拖动属性,替代方案

文章目录 1. 背景2. 替代方案2.1 方案一2.2 方案二 参考 1. 背景 最近基于uniapp开发一款设备参数调试的APP软件&#xff0c;其中有使用到悬浮按钮&#xff0c;快速开发阶段&#xff0c;为了能尽快上线&#xff0c;直接使用了uni-ui的扩展组件uni-fab&#xff0c;参考【1】&am…

Configure C/C++ debugging

Configure C/C debugging launch.json 文件用于在 Visual Studio Code 中配置调试器。 Visual Studio Code 会生成一个 launch.json (位于项目的 .vscode 文件夹下),其中几乎包含了所有必需的信息。要开始调试,您需要填写 program 字段,指定要调试的可执行文件的路径。这必须…

【从零开始学架构 架构基础】四 架构设计的复杂度来源:可扩展性复杂度来源

架构设计的复杂度来源其实就是架构设计要解决的问题&#xff0c;主要有如下几个&#xff1a;高性能、高可用、可扩展、低成本、安全、规模。复杂度的关键&#xff0c;就是新旧技术之间不是完全的替代关系&#xff0c;有交叉&#xff0c;有各自的特点&#xff0c;所以才需要具体…

新书速览|Linux C与C++一线开发实践

《Linux C与C一线开发实践》 本书内容 Linux C/C编程在Linux应用程序开发中占有重要的地位&#xff0c;掌握这项技术将在就业竞争中立于不败之地。《Linux C与C一线开发实践》内容针对初中级读者&#xff0c;贴近软件公司一线开发实践。全书厚达620多页&#xff0c;知识点丰富…