본문 바로가기
TechStudy/TimeSeries

TimeMixer (ICIR2024)

외국 블로그글, 논문을 참조하여 정리하는 글

 

github: https://github.com/kwuking/TimeMixer

 

GitHub - kwuking/TimeMixer: [ICLR 2024] Official implementation of "TimeMixer: Decomposable Multiscale Mixing for Time Series Fo

[ICLR 2024] Official implementation of "TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting" - kwuking/TimeMixer

github.com

 

paper: https://openreview.net/pdf?id=7oLshfEIC2

 

video: https://iclr.cc/virtual/2024/poster/19347

 

ICLR Poster TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting

Abstract: Time series forecasting is widely used in extensive applications, such as traffic planning and weather forecasting. However, real-world time series usually present intricate temporal variations, making forecasting extremely challenging. Going bey

iclr.cc

 

 

 


Idea

 

시계열 데이터는 다양한 형태가 존재한다. 그리고 그 형태에 집중하여 논문들이 설계되어왔다.

 

 

 

 

 

그러나 시계열 데이터는 미시적 패턴과 거시적 패턴이 둘 다 있는 것이 특징이다.

 

가령, 교통량 시계열 데이터의 경우, 단위(스케일)에 따라 하루 단위 모양과 일주일 단위 모양이 다르다.

또한 기후 데이터의 경우, 하루 단위와 월간 단위, 연간 단위 추세성이 둘 다 존재한다.

  (ex> 온도의 경우, 하루에 낮은 따뜻하고 밤은 내려감. 월간으로 할 경우, 겨울은 춥고 여름은 더운 양상을 보임,

         연간 단위의 경우, 지구 온난화로 인한 온도 상승 트랜드 존재 등)

 

 

 

Small scale(top) and Large scale(bottom)

가장 미세한 단위, 작은 스케일 기준의 시계열 데이터는 제일 위의 그래프처럼 반복적인 뾰족한 주기가 나타나는 반면, 

가장 큰 단위, 큰 스케일 기준의 시게열 데이터는 가장 아래의 그래프처럼 굵직한 패턴을 보인다.

 

 

그러면 작은 단위와 큰 단위 각각의 추세성을 시계열 예측에 어떻게 반영할까?

Seasonal and trend parts show different mixing properties; thus, fine-scale seasonal and coarse-scale trends are essential for (b) history extraction. Multiscale past series jointly determining future variation is the key to (c) future prediction.

 

다양한 스케일로 입력된 시계열데이터를 downsampling(a)하여서 전달하면

History extraction(과거 계절성, 트랜드 반영)은 (b) Past Decomposable Mixing(PDM block)으로

Future predction(미래 예측) 기반은 (c) Future Multipredictor Mixing(FMM block)으로 TimeMixer 설계

 

 

 

 

 

(A) Multiscale Time Series (input값 처리 logic)

* downsampling:  sample의 개수를 줄이는 처리과정(딥러닝에서는 인코딩할때 data의 개수를 줄이는 처리과정)

 

input x 입력방법: $ x\in\mathbb{R}^{P\times C} $ 

여기서 M은 scale, C는 the variate number = feature 수 = Multivariate model로서 작동함을 보이는 근거(병렬처리개념)

가장 작은 단위(finest, lowest level series)는 $x_{0}$, 가장 큰 단위(macroscopic variation)는 $x_{M}$  where $m \in \{0, ... , M\}$

 

 

그림에서 보듯, 시계열 데이터를 downsampling해도 여전히 trend(추세성), seasonal properties(계절성)이 같이 존재함

-> 이 두 특성을 분리(decomposition)해서 입력할 필요 있음

 

 

 

 

 

 

(B) [PDM] Decomposition: season, trend parts 분리 및 mixing

분해 방법: The moving-average-based season-trend decomposition(이동평균기반 분해법)

실제 연구 사례: Autoformer (Wu et al., 2021), FEDformer (Zhou et al., 2022b), DLinear (Zeng et al., 2023)등에 쓰임

 

다중스케일 시계열(multiscale time series) = Seasonal parts + trend parts 로 decompose하고, 수식은 아래와 같음

 

$ X^l = S^l + T^l  $ where $ S^l = \{s^l_{0}, ... , s^l_{M}\}, T^l = \{s^l_{0}, ... , s^l_{M}\} $  

(decompose parts들은 모두 series)

 

 m스케일에서의 l 번째 PDM block 은 아래와 같이 정의한다.

FeedForward(): 채널간 교류 상호작용을 위해 2개의 선형 inermediate GELU 활성화함수를 포함, S-Mix(), T-Mix()는 seasonal, trend mixing

 

 

 

 

* 이동평균기반 분해법 외, 이산 푸리에 변환법(DFT; Discrete Fourier Transformer)도 유명함.

1) DFT 기반 고주파, 저주파 분해법: 오히려 성능이 떨어짐 -> 모델 근간인 mixing strategies에 부적절한 방법이기 때문

2) DFT 기반 분해법(DFT based season-trend decomposition): DFT로 가장 두드러진 주파수를 뽑고 inverse DFT를 적용하여 seasonal part를 추출 후 원본(raw) series - seasonal part 으로 trend part 추출. 성능도 이동평균 기반 분해법을 적용했을 때보다 더 좋음. but 이 방법은 다소 구현하기 복잡함

-> 성능과 효율 두 가지 측면의 균형을 갖추면서 pytorch 친화적이고 구현이 간편한 이동평균 기반 분해법으로 선택

 

 

 

 

Seasonal Mixing, S-Mix()

The temporal linear layer in seasonal mixing

개념: 작은 계절성 패턴의 결합이 큰 계절성 패턴을 이룸; seasonality analysis (Box & Jenkins, 1970)

$$ S^l = \{s^l_{0}, ... , s^l_{M}\} $$

 

ex) weekly seasonality = daily seasonality 각각의 7일패턴 결합

-> 작은것을 합쳐서 큰 것을 만드므로 Bottom-Up-Mixing

 

 

 

 

Trend Mixing, T-Mix()

The temporal linear layer in trend mixing

개념: 거시적 추세(trend)를 downsampled series에서 추출하려면 noise 발생하므로 top-down mixing 사용

$$T^l = \{s^l_{0}, ... , s^l_{M}\}$$

->  거시적 추세가 미시적 추세를 더 잘 알려줌

 

 

 

 

 

 

(C) [FMM] Future Multipredictor Mixing

The temporal linear layer in future prediction

 

FMM = 제각각 scale인 과거 정보를 바탕으로하는 multiple predictors 앙상블

각 예측변수(predictors)들은 scale이 제각각임 -> 동시에 사용되지 않음

이유: finer scale은 쪼개진만큼 그 개수가 많으므로 step이 많고, coarse scale은 그 개수가 적어서 step이 적음

-> FMM = predictors들을 상호보완적으로 잘 섞는 것

 

 

 

 

Q: 그래서 구체적으로 mixing을 어떻게 했다는거임?

A: PDM, FMM의 구체적인 Mixing 방법을 담은 수식은 원본 논문을 읽으셈

 


이 외 추가 노트

 

1. multivariate model로서 기능도 가능

  -> multi도 input으로 받아서 병렬처리방식으로 output을 냄 (즉, feature 수는 병렬처리 개념으로 작동함)

단, 변수들 간의 통계적 상관관계나 인과관계를 명시적으로 모델링하여 에측하는 것이 아님
PDM과 FMM 블록에서 변수 간 직접적인 상호작용을 위한 특별한 메커니즘은 없음

그런데 이런 개념을 추가하면 성능은 올라갈지라도 모델이 무거워질 수 있는 단점이 있음.

 

Multivariate models are typically computationally expensive and empirically do not necessarily offer better forecasting performance compared to using a univariate model.
(NIXTLA, NeuralForecast)

 

 

 

2. short-term은 N-HITS(2020)보다 성능, 효율측면에서 떨어진다는 결과가 존재

-> 그러나 long-term에서는 성능의 특출함이 두드러짐. 그리고 TimeMixer는 둘 다 무난하게 가능하다는 측면에서 좋음

 

3. TimeMixer는 MLP 기반 구조임 (가벼움. 연산 효율 좋음)

 

4. GPU 메모리, 시간에서 효율성을 보이는 모델이지만 input값이 늘어날수록 linear mixing layer 특성 상, 모델 파라미터를 급증하게할 수 있음 -> attention based 또는 CNN based로 발전할 여지 있음

 

5. temporal dimension mixing만 다뤘지만 variate dimenstion mixing으로 확장, 발전할 여지 있음

 

728x90
반응형