欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > (17)时间序列预测之Crossformer(跨时间+跨变量)

(17)时间序列预测之Crossformer(跨时间+跨变量)

2025/2/13 14:18:53 来源:https://blog.csdn.net/m0_62113015/article/details/144237637  浏览:    关键词:(17)时间序列预测之Crossformer(跨时间+跨变量)

md,其他论文多学学这篇论文,写的多规整

文章目录

  • 前言
  • 一、网络结构
    • 1. Dimension-Segment-Wise (DSW) embedding
      • 可视化对比(分割的作用)
      • 实现
    • 2. Two-Stage Attention (TSA) layer
      • Cross-Time Stage(跨时间)
      • Cross-Dimension Stage(跨维度)
      • 可视化
    • 3. Hierarchical Encoder-Decoder (HED)
      • Encoder
      • Decoder
  • 二、实验结果
    • 1. 长时预测结果
    • 2. 消融实验
    • 3. 超参数
  • 总结
  • 参考


文章信息

  1. 模型: Crossformer
  2. 关键词:分段;跨时间;跨变量
  3. 作者:Yunhao Zhang, Junchi Yan
  4. 机构: 上海交通大学
  5. 发表情况:ICLR 2023 notable top 5%
  6. 网址:Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series Forecasting

前言

  Crossformer的主要思想:数据分段将输入序列转变为二维向量数组;使用两阶段注意力层来高效地捕获跨变量和跨时间的依赖关系;采用分层编码器-解码器结构,在不同层次(尺度)上利用信息进行预测。

在本文中,跨维度(cross-dimension)指的是跨变量


一、网络结构

1. Dimension-Segment-Wise (DSW) embedding

可视化对比(分割的作用)

在这里插入图片描述
  图(a)中,我们可以看到,注意力值有分割的趋势,即相近的数据点具有相似的注意力权重。图(b)显示的是先前的Transformer未显式建模跨变量依赖关系且计算的是逐点的注意力,而一个时间步只能提供少量的信息。
  基于以上两点,作者认为嵌入向量应该表示单个维度序列段(图1 (c)),而不是在单个时间步中所有维度的值(图1 (b))

实现

  分段的公式如下:
在这里插入图片描述

其中嵌入的输入为: x ∈ R T × D \mathbf{x}\in \mathbb{R}^{T \times D} xRT×D ,回望窗口为 T T T个时间步,变量个数为 D D D x i , d ( s ) ∈ R L s e g \mathbf{x}_{i, d}^{(s)} \in \mathbb{R}^{L_{s e g}} xi,d(s)RLseg 是第 d d d 个变量长度为 L seg  L_{\text {seg }} Lseg  的第 i i i 个分段。
  然后按照以下公式单独对每个变量( d d d)的每段( i i i)进行线性映射+位置编码:
h i , d = E x i , d ( s ) + E i , d ( p o s ) \mathbf{h}_{i, d}=\mathbf{E} \mathbf{x}_{i, d}^{(s)}+\mathbf{E}_{i, d}^{(p o s)} hi,d=Exi,d(s)+Ei,d(pos)
其中 E ∈ R d model  × L seg  \mathbf{E} \in \mathbb{R}^{d_{\text {model }} \times L_{\text {seg }}} ERdmodel ×Lseg 为一个可学习的投影矩阵, E i , d ( pos  ) ∈ R d model  \mathbf{E}_{i, d}^{(\text {pos })} \in \mathbb{R}^{d_{\text {model }}} Ei,d(pos )Rdmodel 为每段的位置编码。
  嵌入后,我们得到一个2D矢量数组: H = { h i , d ∣ 1 ≤ i ≤ T L seg  , 1 ≤ d ≤ D } \mathbf{H}=\left\{\mathbf{h}_{i, d} \left\lvert\, 1 \leq i \leq \frac{T}{L_{\text {seg }}}\right., 1 \leq d \leq D\right\} H={hi,d 1iLseg T,1dD}

在这里插入图片描述

2. Two-Stage Attention (TSA) layer

Cross-Time Stage(跨时间)

  对于每个维度,直接应用多头自注意力(MSA)机制来捕捉同一维度不同时间段之间的依赖关系。计算复杂度为 O ( D L 2 ) O(DL^2) O(DL2) L L L 为输入的段数。

在这里插入图片描述

Cross-Dimension Stage(跨维度)

  为了避免直接在维度之间应用MSA所带来的 O ( D 2 ) O(D^2) O(D2) 的计算复杂度,提出了一种路由机制。为每个时间步设置了一小组可学习的向量,称为“路由器”,用于从所有维度聚集信息。这些路由器随后将聚合的信息分发到各个维度,有效地建立了维度之间的全连接,而没有高复杂度。路由机制显著降低了复杂度,从 O ( D 2 L ) O(D^2L) O(D2L)减少到 O ( D L ) O(DL) O(DL)

可视化

  总的注意力计算和连接方式如下图,TSA层的计算复杂度为 O ( D L 2 + D L ) = O ( D L 2 ) O(DL^2 + DL) = O(DL^2) O(DL2+DL)=O(DL2)
在这里插入图片描述

3. Hierarchical Encoder-Decoder (HED)

Encoder

  除了第一层之外,编码器的每一层都会将时间域内两个相邻的向量合并,以获得更粗糙级别的表示。然后应用TSA层来捕获这个尺度上的依赖性。如果层数不是2的倍数,将进行填充以确保适当的长度。这个过程的输出表示为 Z e n c , l Z^{enc,l} Zenc,l,它是编码器第 l l l 层的输出。编码器的每一层的复杂度是 O ( D T 2 / L s e g 2 ) O(DT^2/L_{seg}^2) O(DT2/Lseg2)
在这里插入图片描述

Decoder

  解码器接收编码器输出的 N + 1 N+1 N+1个特征数组: Z e n c , 0 , Z e n c , 1 , … , Z e n c , N , ( Z e n c , 0 = H ) \mathbf{Z}^{e n c, 0}, \mathbf{Z}^{e n c, 1}, \ldots, \mathbf{Z}^{e n c, N},\left(\mathbf{Z}^{e n c, 0}=\mathbf{H}\right) Zenc,0,Zenc,1,,Zenc,N,(Zenc,0=H) N N N 为encoder层数。且第 l l l 层取第 l l l 层编码的数组作为输入,然后输出解码的二维数组,解码器共 N + 1 N+1 N+1层。
  解码过程中也使用了TSA层和多头自注意力机制(MSA),构建编码器和解码器之间的连接。解码器的每一层的复杂度是 O ( D τ ( T + τ ) / L s e g 2 ) O(D\tau(T+\tau)/L_{seg}^2) O(Dτ(T+τ)/Lseg2) τ \tau τ是预测长度。

在这里插入图片描述

二、实验结果

1. 长时预测结果

在这里插入图片描述

2. 消融实验

在这里插入图片描述

3. 超参数

总结

参考

【ICLR 2023】时间序列预测实战Crossformer(附代码+数据集+详细讲解)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com