안녕하세요.😊
오늘은 최초로 다변량 데이터에 Transfomer 구조를 사용한 논문을 살펴보겠습니다. 본 논문에서는 최초로 Multi variate time series data의 unsupervised representation learning에 Transformer를 접목한 Time Series Transformer를 제안했습니다. 본 논문에서 기존의 Transformer와 동일하게 사전학습과 fine-tuning을 진행했습니다. 사전학습과 fine-tuning의 방법은 기존 transformer를 이용한 여러 모델과 유사하나 unsupervised time series data를 예측하기 위해 일부분만 변경되었습니다.
- Pre-training: unlabeled time series data를 기반으로 masked input을 예측하는 task를 통해 time series representation을 학습합니다.
- Fine-tuning: pre-trained TST의 feature extrator의 가중치는 고정하고 labeled time series data에 output layer만을 supervised fine-tuning합니다.
Overview
Pre-training

TST의 self-supervised pre-training 과정은 다음과 같습니다.
- input time window에 연속적인 masking을 진행할 수 있는 binary noise mask를 생성합니다.
- input에 mask를 적용하여 일부 값이 0으로 치환된 데이터를 model dimension으로 변환한 후에 position embedding을 더하는 과정을 통해 input encoding을 수행합니다.
- endoded input을 transformer encoder에 input으로 넣어 모든 값이 채워져 있는 각 시점의 데이터를 예측합니다.
- masking된 위치의 실제 값과 예측 값의 차이를 통해 모델을 학습합니다.
Binary noise mask 생성
TST의 input time series는 w개의 시점으로 구성되어 있으며, 각 시점의 데이터는 m개의 변수로 구성되어 있습니다.
- 이 때 w는 시계열 데이터의 길이입니다.
Input에 적용하는 binary noise mask는 input과 동일한 차원을 가지며, w차원의 각 column은 독립적으로 r의 비율만큼 0으로 설정됩니다.
Bernoulli 분포를 사용하여 mask의 각 element를 독립적으로 masking하면, 모델이 masked element를 trivial vlaue로 예측해도 학습이 잘 될 수 있어 특정 길이의 time segement가 한 번에 masking 되도록 합니다. 그림 1에서 볼 수 있듯이 회색 직사각형의 길이만큼 masking이 됩니다.
- Trivial value: 시계열 데이터에서 예상되는 기준선 또는 최소값을 나타냅니다. 시계열 데이터의 특성 상 바로 이전 또는 이후 시점의 값 또는 두 시점의 평균 값으로 masked element를 예측해도 예측이 잘 될 수 있습니다.
m개의 변수에 대하여 길이 w의 mask를 독립적으로 생성한 후 이를 통합하여 binary noise mask를 구축합니다.
mask는 'masked=0'와 unmasked=1'에 대한 Markov chain을 기반으로 생성되며, 두 요소는 각각 다른 transition probability(전이 확률)를 가집니다.
- Transition probabiliy: 한 상태가 다른 시점의 상태에서 어떻게 변화할지 나타내는 확률
TST에서는 masked segment의 길이가 평균이 $l_{m}$인 기하 분포를 따르고, unmasked segment의 길이가 평균이 l_{u}인 기하 분포를 따른다는 점을 고려하여 Markov chain의 transition probability를 설정합니다.
기하분포는 실험결과가 성공은 1, 실패는 0인 베르누이 시행을 분포로 나타낸 것입니다. masked는 0, unmasked는 1을 성공과 실패의 관점에서 본다면 베르누이 시행으로 구할 수 있습니다. 따라서 masked와 unmasked segment의 길이는 서로 다른 기하분포를 가집니다.
- $\because l_{m} = r(l_{m} + l{u}))$: $l_{m}$의 길이는 전체 segment의 길이 중 r만큼의 비율입니다.
변수를 masking하는 방법은 베르누이 분포와 이를 활용한 markov chaing으로 masking 여부를 결정하는 것입니다.
Markov Chain
본 연구에서는 Markov chain을 기반으로 각 변수에 대한 길이 w의 mask의 값을 1~w 시점까지 순차적으로 'masked = 0', 또는 'unmasked=1'으로 설정합니다.
- Markov chain: "특정 상태의 확률은 오직 과거의 상태에 의존한다."는 Markov 성질을 가진 이산 확률 가정으로 $P(s_{t+1}|s_{t},...,s_1) = P(s_{t+1}|s_{t})$와 같이 나타냅니다. $s_{t+1}$ 시점은 $s_{t}$의 정보만 활용하는 것입니다.
본 논문에서는 transition probability는 아래와 같이 $L_{m}$과 $L_{u}$ 의 분포를 기반으로 하며, 최종적으로 r과 $l_{m}$을 0.15와 3으로 설정하여 mask를 생성합니다.
- $P(s_{t} = 1 | s_{t} = 0) = p_{m}$ & $P(s_{t+1} = 0 | s_{t} = 0) = 1 - p_{m}$
- $P(s_{t+1} = 0 | s_{t} = 1) = p_{u}$ & $P(s_{t+1} = 1 | s_{t} = 1) = 1-p_{u}$
상태 전이 확률 행렬 $$ P =\begin{bmatrix}
1-p_m & p_{m} \\
p_{u} & 1-p_{u} \\
\end{bmatrix} $$
Input encoding
아래 두 방법을 통해 input time series를 model dimension vector로 변환할 수 있습니다.
- Linear projection layer & 1D-convolutional layer
Input time series를 model dimension으로 변환하는 방법의 경우 데이터의 길이 및 변수 개수에 따라 도출하는 변환 방법이 다릅니다.
- Shorter and higher dim: linear projection layer만 사용하여 multi-head attention의 key, query, value를 계산하기 위한 input encoding을 수행합니다.
- Longer and lower dim: linear projection layer로 multi-head attention의 key와 query를 계산하기 위한 input encoding을 수행하고, 1D-convolutional layer로 value를 계산하기 위한 input encoding을 진행합니다.
Transformer는 self-attention을 사용하여 input의 순서에 영향을 받지 않으므로 시계열 데이터의 특성을 살리기 위해 position embedding을 사용합니다.
최종적으로 input $X = [x_1, x_2,...,x_w] \in \mathbb{R}^{w\cdot m}$에 linear projection을 적용하여 $U = [u_1, u_2,...,u_w] \in \mathbb{R}^{w\cdot m}$ 를 도출한 후, learnable position embedding $W_{pos} \in \mathbb{R}^{w\cdot d}$를 더한 $U + w_{pos}$를 Transformer의 input으로 사용합니다.
Base Model
본 논문에서는 아래와 같은 이유로 Transformer의 encoder만 사용합니다.
- Classification, regression, imputation, forecasting 등의 다양한 multivariate time series task를 위한 통합된 framework를 구축하고자 합니다.
- 기본 Transformer의 model parameters의 절반만 사용하여 계산 복잡도를 낮추고 학습 단계에서 overfitting을 막고자 합니다.
본 논문에서는 시계열 데이터가 관측치마다 길이가 다를 수 있다는 점을 고려하기 위해 아래와 같이 self-attention을 수행합니다.
- 전체 데이터의 최대 길이를 sequence length로 설정한 후, 해당 길이보다 짧은 sample은 padding을 적용합니다.
- padded input의 attention score에 large negative value를 더하는 padding mask를 사용하여 모델이 padded input 값을 무시하도록 강제합니다. padding된 부분은 사실 상 의미가 없는 부분이라 attention score를 무시하기 위해 사용합니다.
본 논문에서는 아래와 같은 시계열 데이터의 특성을 반영하기 위해 기본 Transformer 구조에서 layer norm을 batch norm으로 대체합니다.
- Batch Normalization: 학습 과정에서 각 batch 단위 별로 데이터가 다양한 분포를 가지더라도 각 배치 별로 평균과 분산을 이용해 정규화하는 것을 뜻합니다.
- Time series 데이터에는 NLP word embedding에는 없는 outlier가 존재합니다.
- Time series 데이터는 각 관측치의 길이 변화가 NLP의 문장 길이의 변화보다 작습니다.
Pre-training

- 각 관측치 및 epoch마다 독립적으로 생성한 mask를 input과 elementswise multiplication하여 masked input을 도출합니다.
- $\widetilde{X}$를 input encoding과 Transformer encoder에 순차적으로 넣어 latent representation $\overline{z} = [z_1,z_2,...,z_w] \in \mathbb{R}^{w\cdot d}$ 를 도출한 후, $\overline{z}$를 linear output layer에 넣어 모든 값이 채워져 있는 각 시점의 데이터를 예측합니다(masked된 부분을 예측하는 것이 목적).
- Masking된 부분의 실제 값과 예측 값의 mean squared error를 기반으로 모델을 학습합니다.
Fine-tuning
TST의 supervised fine-tuning 과정은 아래와 같이 3단계로 진행됩니다.
- mask를 적용하지 않은 input time window를 input encoding과 transformer encoder에 순차적으로 넣어 representation(Z)을 도출합니다.
- 도출된 모든 시점의 representation을 concat한 것을 output linear layer에 input으로 넣어 regression 또는 classification의 정답을 예측합니다.
- task의 실제 정답과 TST가 예측한 값의 차이를 통해 output linear layer를 fine-tuning합니다.
본 논문에서는 fine-tuning task를 수행하기 위한 output layer를 제외한 pre-trained model은 freezing하고 fine-tuning을 진행합니다.
Pre-trained model에서 도출된 representation $\overline{z} = [z_1,z_2,...,z_w] \in \mathbb{R}^{w\cdot d}$를 활용해 regression 및 classification을 수행할 수 있습니다.
세부적으로 $\overline{z}$를 새로운 linear output layer에 input으로 넣어 regression 및 classification을 수행하며, 해당 layer만 task에 맞는 loss를 통해 학습합니다.
https://gaussian37.github.io/dl-concept-batchnorm/
배치 정규화(Batch Normalization)
gaussian37's blog
gaussian37.github.io
https://arxiv.org/abs/2010.02803
A Transformer-based Framework for Multivariate Time Series Representation Learning
In this work we propose for the first time a transformer-based framework for unsupervised representation learning of multivariate time series. Pre-trained models can be potentially used for downstream tasks such as regression and classification, forecastin
arxiv.org
http://dsba.korea.ac.kr/seminar/?uid=1880&mod=document&pageid=1
[Paper Review] Unsupervised Representation Learning Approaches for Multivariate Time Series (2)
[ 발표 요약 ] 1. Topic Unsupervised Representation Learning Approaches for Multivariate Time Series (2) 2. Overview 이번 세미나 시간에는 multivariate time series 데이터의 unsupervised representation learning에 대한 아래 두가지
dsba.korea.ac.kr
'AI' 카테고리의 다른 글
| 머신러닝 프로젝트 완벽 가이드 (0) | 2025.09.29 |
|---|---|
| Beyond efficient transformer for long sequence time-series forecasting (0) | 2023.02.27 |
| Time-series Transformer: Transformer를 사용한 다변량 시계열 데이터 예측 (0) | 2023.01.25 |
| Bert: Pre-training of deep bidirectional transformers for language understanding (0) | 2023.01.25 |
| Transformer: Attention is all you need (0) | 2023.01.18 |