본문 바로가기

논문리뷰

[논문리뷰] Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series Forecasting (1/2)

SCINet으로 모델을 구현하는 데는 성공했지만 최종 점수는 그리 좋지 않았던 반면, 같이 대회에 참여하는 학부생 인턴 친구가 구현한 모델은 꽤 좋은 점수가 나왔다. 따라서 이 모델로 구현한 코드를 제출하기로 결정했는데, 그게 바로 crossformer이다. 그리하여 또다시 이 모델에 대해 자세히 이해하기 위해 논문을 읽어보았다.

 

1. Introduction

Multivariate Time Series (MTS)는 multiple dimension을 갖는 time series로, 각 dimension은 특정한 univariate time series를 나타낸다. MTS forecasting은 해당 MTS의 과거 값으로부터 미래 값을 예측하는 것을 목표로 한다. MTS forecasting은 downstream task의 decision-making에 도움이 되며, 기상, 에너지, 금융 등 여러 분야에서 널리 사용된다. deep learning의 발전으로 인해 많은 모델들이 제안되어 MTS forecasting에서 우수한 성능을 달성했는데, 그 중에서도 최근 Transformer-based model은 long-term temporal dependency를 포착할 수 있는 능력으로 큰 잠재력을 보이고 있다.

cross-time dependency 외에도 MTS forecasting에서는 cross-dimension dependency도 중요하다. 특정 dimension에 대해 다른 dimension의 series에서 얻은 정보가 예측을 개선할 수 있다. 예를 들어 앞으로의 온도를 예측할 때, 과거의 온도뿐만 아니라 과거의 바람 속도도 도움이 될 수 있다. 이전의 convolution neural network (CNN)이나 graph neural network (GNN)과 같은 neural model은 이러한 cross-dimension dependency를 명시적으로 포착하여 latent feature space에서 차원의 정보를 보존하였다. 그러나 최근의 Transformer-based model은 embedding을 통해 이 dependency을 암묵적으로 활용한다. 일반적으로, Transformer-based model은 모든 차원의 data point를 동일한 시간 단계에서 feature vector로 embedding하고 서로 다른 time step 간의 dependency를 포착하려고 한다. 이 방식으로 cross-time dependency는 잘 포착되지만, cross-dimension dependency는 제한적일 수 있으며 이로 인해 예측 능력이 제한될 수 있다.

 

기존 모델들과의 차이를 메꾸기 위해 우리는 Crossformer라는 Transformer-based model을 제안한다. 이 모델은 MTS forecasting을 위해 cross-dimension dependency를 활용한다. 특히, 우리는 Dimension-Segment-Wise (DSW) embedding을 개발하여 과거의 time series를 처리한다. DSW embedding에서 각 dimension의 series는 먼저 segment로 분할되고 그 후 feature vector로 embedding된다. DSW embedding의 output은 2D vector array로, 두 축은 time과 dimension에 해당한다. 그런 다음 Two-Stage-Attention (TSA) layer를 제안하여 2D vector array 간의 cross-time 및 cross-dimension dependency를 효율적으로 포착한다. DSW embedding과 TSA layer를 사용하여 Crossformer는 예측을 위한 Hierarchical Encoder-Decoder (HED)를 구축한다. HED에서 각 layer는 스케일에 해당한다. encoder의 상위 layer는 하위 layer에 의해 출력된 인접한 segment를 병합하여 coarser scale에서의 dependency를 포착합니다. decoder layer는 다른 scale에서 예측을 생성하고 최종 예측으로 추가한다. 본 논문의 의의는 다음과 같다.

1) 우리는 MTS forecasting을 위한 기존의 Transformer-based model을 자세히 조사하고, cross-dimension dependency가 충분히 활용되지 않았음을 알아냈다. 이러한 모델들은 특정 시간 단계에서 모든 차원의 data point를 single vector로 embedding하고 서로 다른 time step 간의 cross-time dependency를 포착하는 데 중점을 둔다. 충분하고 명시적인 cross-dimension dependency를 제대로 활용하지 않으면 forecasting capability가 제한되는 것을 확인하였다.


2) 우리는 MTS forecasting을 위해 cross-dimension dependency를 활용하는 Transformer model인 crossformer를 제안했다. 이 모델은 MTS forecasting을 위해 cross-dimension dependency를 탐색하고 활용하는 몇 안 되는 Transformer model 중 하나이다.

3) 6개의 real-world benchmark에서 수행한 실험 결과는 이전의 state-of-the-art와 비교했을 때 Crossformer의 효과적인 성능을 보여준다. 특히, Crossformer는 다양한 prediction length와 metric의 58가지 설정 중 36가지 설정에서 상위 9개 모델 중에서 1위를 차지했으며, 51가지 설정에서 상위 2위를 차지했다.

 

2. Related Works

Multivariate Time Series Forecasting, Transformers for MTS Forecasting, Vision Transformers 등에 대한 연구가 진행되어 왔다.

 

3. Methodology

multivariate time series forecasting의 목적은 history $\mathbf{x}_{1:T} \in \mathbb{R}^{T \times D}$가 주어졌을 때 time series의 future value인 $\mathbf{x}_{T+1:T+\tau} \in \mathbb{R}^{\tau \times D}$를 예측하는 것이다. 이때 $\tau$와 $T$는 각각 future, past의 time step의 수를, $D>1$은 dimension의 수를 나타낸다. 이때 forecasting accuracy를 향상시키기 위해 $D$개의 series는 서로 연관되어 있다고 가정한다. cross-dimension dependency를 얻기 위해 Dimension-Segment-Wise (DSW) embedding을 사용하여 MTS를 embedding하였고, embedded segment 간의 dependency를 포착하기 위해 Two-Stage Attention (TSA) layer를 제안했다. 이후 final forecasting에 대한 정보를 종합하기 위해 DSW embedding과 TSA layer를 사용하여 hierarchical encoder-decoder (HED)를 설계했다.

 

3.1. Dimension-Segment-Wise Embedding

우리의 접근법을 설명하기 위해, 먼저 MTS forecasting에 사용된 이전의 Transformer-based model의 embedding method를 분석해보았다. Fig. 1(b)과 같이, 현재의 방법은 같은 time step의 data point를 vector로 바꾼다. 즉, $\mathbf{x}_t \in \mathbb{R}^D$가 step $t$에서 $D$ dimension의 모든 data point를 나타낼 때 $\mathbf{x}_t \rightarrow \mathbf{h}_t$, $\mathbf{h}_t \in \mathbb{R}^{d_{model}}$로 변환된다. 그 결과 input $\mathbf{x}_{1:T}$는 $T$개의 vectors $\{\mathbf{h}_1, \mathbf{h}_2, \cdots, \mathbf{h}_T\}$로 embedding되고, 이후 $T$개의 vector의 dependency를 포착한다. 따라서 이전의 Transformer-based model은 cross-time dependency를 주로 포착하지만, cross-dimension dependency는 embedding 과정에서 고려되지 않기 때문에 forecasting capability가 제한된다.

 

Fig. 1(a)는 MTS forecasting의 original Transformer의 전형적인 attention score map을 보여주는데, 이때 attention value는 segment에서 특정한 경향을 띠는 것을 확인할 수 있다.

 

Figure 1: Illustration for our DSW embedding.

 

위에서 언급한 내용을 토대로, 우리는 embedded vector가 Fig. 1(b)와 같이 single step의 all dimension의 값을 나타내기보다 Fig. 1(c)와 같이 single dimension의 series segment를 나타내야 한다는 결론에 도달했다. 그러기 위해서 각 dimension을 길이 $L_{seg}$의 segment로 나누고 embedding하는 Dimension-Segment-Wise (DSW) embedding을 제안했다.

 

이때 $\mathbf{x}_{i, d}^{(s)} \in \mathbb{R}^{L_{seg}}$는 dimension $d$에서 $L_{seg}$의 길이를 갖는 $i$-th segment이다. 편의성을 위해 $T$와 $\tau$는 $L_{seg}$로 나누어진다고 가정한다. 이후 각 segment는 position embedding이 추가된 linear projection을 통해 vector로 embedding된다.

 

이때 $\mathbf{E} \in \mathbb{R}^{d_{model} \times L_{seg}}$는 learnable projection matrix, $\mathbf{E}_{i, d}^{(pos)} \in \mathbb{R}^{d_{model}}$은 position $(i, d)$의 learnable position embedding을 뜻한다. embedding 이후에는 2D vector array $\mathbf{H}=\{\mathbf{h}_{i, d}| 1 \leq i \leq \frac{T}{L_{seg}}, 1 \leq d \leq D\}$를 얻을 수 있고, 이때 $\mathbf{h}_{i, d}$는 univariate time series segment를 나타낸다.

 

3.2. Two-Stage Attention Layer

이렇게 얻어진 2D array $\mathbf{H}$는 1D sequence로 flatten되어 canonical transformer의 input이 될 수 있지만, 고려해야 할 사항이 있다. 1) height와 width가 interchangeable한 image와 달리, MTS의 time과 dimension의 axes는 다른 의미를 갖고 있기 때문에 동일하게 처리되면 안 된다. 2) 2D array에 self-attention을 직접적으로 적용시키면 $O(D^2 \frac{T^2}{L_{seg}^2})$의 complexity가 발생하는데, 이는 $D$가 큰 경우 좋지 않은 방법이다. 따라서 우리는 2D vector array로부터 cross-time 및 cross-dimension dependency를 포착하기 위해 Fig. 2(a)와 같은 Two-Stage Attention (TSA) layer를 제안하였다.

 

Figure 2: The TSA layer.

 

segment와 dimension의 수를 각각 $L$과 $D$라 할 때, DSW embedding의 output은 2D array $\mathbf{Z} \in \mathbb{R}^{L \times D \times d_{model}}$로 TSA Layer의 input이 된다. 편의성을 위해 $\mathbf{Z}_{i, :}$가 time step $i$에서 모든 dimension의 vector이고, $\mathbf{Z}_{:, d}$가 dimension $d$에서 모든 time step의 vector를 나타낸다고 할 것이다. cross-time stage에서 multi-head self-attention (MSA)를 각 dimension에 적용시키면 다음의 식을 얻을 수 있다.

 

이때 $1 \leq d \leq D$이고 $\text{LayerNorm}$은 layer normalization을 나타내며, $\text{MLP}$는 multi-layer, $\text{MSA}(\mathbf{Q}, \mathbf{K}, \mathbf{V})$는 $\mathbf{Q}, \mathbf{K}, \mathbf{V}$를각각 query, key, value로 갖는 multi-head self-attention을 나타낸다. 모든 dimension은 같은 MSA layer를 공유하며, $\hat{\mathbf{Z}}^{time}$과 $\mathbf{Z}^{time}$은 각각 MSA와 MLP의 output이다.

 

이때 cross-time stage의 계산 복잡도는 $O(DL^2)$이다. 이 단계를 통해 같은 dimension에서 time segment의 dependency에 대한 정보가 $\mathbf{Z}^{time}$에 포착되고, $\mathbf{Z}^{time}$은 cross-dimension dependency를 포착하기 위해 Cross-Dimension Stage의 input이 된다.

 

Cross-Dimension Stage: 우리는 DSW Embedding에서 큰 값의 $L_{seg}$를 사용함으로써 cross-time stage에서 segment $L$의 수를 줄일 수 있다. Fig. 2(b)와 같이 Cross-Dimension Stage에서 MSA를 직접적으로 적용시키면 $O(D^2)$의 복잡도가 발생하기 때문에 이는 $D$의 값이 큰경우에는 적합하지 않다. 이런 문제를 해결하기 위해 Fig. 2(c)와 같이 각 time step $i$에서 small fixed number ($c<<D$)만큼의 learnable vector를 router로 설정한다. 이 router는 router를 query, 모든 dimension의 vector를 key와 value로 사용하여 메시지를 종합하고, 그 다음에는 dimension의 vector를 query, 종합된메시지를 key와 value로 사용하여 메시지를 dimension에 분배한다. 이를 식으로 쓰면 다음과 같다.

 

이때 $\mathbf{R} \in \mathbb{R}^{L \times c \times d_{model}}$은 router로 작동하는 learnable vector array이고, $\mathbf{B} \in \mathbb{R}^{L \times c \times d_{model}}$은 모든 dimension에서 종합된 메시지이며, $\bar{\mathbf{Z}}^{dim}$은 router mechanism의 output을 나타낸다. 모든 time step ($1 \leq i \leq L$)은 $\text{MSA}_1^{dim}$와 $\text{MSA}_2^{dim}$를 공유하고, $\hat{\mathbf{Z}}^{dim}$과 $\mathbf{Z}^{dim}$은 각각 skip connection과 MLP의 output을 나타낸다. 이러한 router mechanism은 복잡도를 $O(DL^2)$에서 $O(DL)$로 감소시킨다. Eq (3)과 Eq (4)를 결합하면 다음의 식을 얻는다.

 

이때 $\mathbf{Z}, \mathbf{Y} \in \mathbb{R}^{L \times D \times d_{model}}$은 각각 TSA layer의 input and output vector array이다. TSA의 전체적인 계산 복잡도는 $O(DL^2+DL)=O(DL^2)$이 된다. Cross-Time과 Cross-Dimension Stage 이후에는 $\mathbf{Z}$의 두 segment가 결합되어 $\mathbf{Y}$는 cross-time 및 cross-dimension dependency에 대한 정보를 갖는다.