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. 超参数
- 总结
- 参考
文章信息
- 模型: Crossformer
- 关键词:分段;跨时间;跨变量
- 作者:Yunhao Zhang, Junchi Yan
- 机构: 上海交通大学
- 发表情况:ICLR 2023 notable top
5%
- 网址: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} x∈RT×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 }}} E∈Rdmodel ×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 1≤i≤Lseg T,1≤d≤D}
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(附代码+数据集+详细讲解)