본문 바로가기

Machine Learning/Paper Review

[Review] TranAD: Deep Transformer Networks for Anomaly Detection in Multivariate Time Series Data

Tuli, S., Casale, G., & Jennings, N. R. (2022). TranAD: Deep Transformer Networks for Anomaly Detection in Multivariate Time Series Data. Proceedings of the VLDB Endowment, 15(8), 2277-2287.

 

이상 탐지 모델 중 마음에 들어서 사용해 보았던 모델을 리뷰해보려 한다!

마음에 들었지만... 이젠 떠나 보내줄게..🥲

 


Contents

 

1)Introduction
-Limitations of Previous Research
-Transformer
2)Model
-TranAD
Encoder
Decoder
Loss Function
Anomaly Score
3)Experimental Results
4)Conclusion

1. Introduction

 

먼저 기존 연구의 한계점들엔 이러한 어려움들이 존재했다. 논문이 2022년에 게재되었으며 그 때의 기준임을 참고하기!

 

Limitations of Previous Research

복잡한 패턴 학습의 어려움

기존 모델들은 단순한 패턴 학습에는 적합하지만, 복잡한 상호작용이나 비선형적인 시간적 패턴을 효과적으로 학습하지 못함.

장기 의존성 학습의 제한

RNN LSTM 기반 모델들은 기울기 소실 문제로 인해 실제로는 장기 의존성을 효과적으로 학습하기 어려움.

정확한 이상치 탐지의 한계

재구성 기반 모델들은 복잡한 데이터에서 정상 데이터와 이상치를 명확하게 구분하지 못해 높은 오류율을 나타낼 수 있음.

모델의 효율성과 계산 비용 문제

트랜스포머 기반 모델은 강력한 성능을 제공하지만, 계산 비용이 크고 훈련 시간이 길어 실시간 이상 탐지에는 비효율적임.


TranAD는 이름에서도 유추할 수 있듯이 Transformer 기반이다!

 

Transformer

Transformer는 자연어 처리(NLP)에서 처음 도입된 모델로, RNN이나 LSTM과 달리 시퀀스 데이터의 병렬 처리가 가능하며, 특히 긴 시퀀스 데이터의 학습에 효과적임.

기존의 순차적 처리 대신, 모든 입력 토큰(데이터 포인트)을 동시에 처리하는 병렬 처리 구조를 사용.

 

 

Self-Attention 메커니즘

입력 데이터의 각 요소가 다른 요소들과의 관계를 학습하도록 하는 메커니즘. 각 입력 요소가 전체 시퀀스에서의 상대적 중요도를 계산하여 학습.

장점: 입력 시퀀스의 모든 요소 간 상호작용을 고려하여, 중요한 정보에 더 높은 가중치를 부여. 특히 장기 의존성(Long-Term Dependency) 문제를 해결하는 데 유리함.

Transformerencoder에서 Query(Q)Key(K)를 사용하여 attention score를 계산하고, Value(V)와 내적을 통해 Context vector를 출력함​.
Context vectorTransformerdecoder에 사용되어 결과를 예측하는 데 사용됨.

 

Transformer 구조

Transformer는 인코더-디코더 구조로 구성되며, 인코더는 입력 시퀀스를 잠재 벡터로 변환하고, 디코더는 이 벡터를 기반으로 출력 시퀀스를 생성.

Encoder: 각 인코더는 다수의 Self-Attention 레이어와 피드포워드 네트워크로 구성됨. 레이어 정규화와 잔차 연결이 추가되어 학습 안정성을 높임.

Decoder: 디코더는 인코더와 유사하지만, 인코더의 출력을 참조하여 새로운 시퀀스를 생성.

각 시퀀스 데이터의 Q와 다른 시점 데이터들의 K값을 곱해서 각 요소 마다 다른 요소들과의 어텐션 스코어(Attention Score)를 구함.

이 어텐션 스코어는 각 요소가 다른 요소들과 얼마나 관련이 있는지를 나타내며, 이를 통해 모델은 시퀀스 내에서 중요한 부분에 더 집중할 수 있게 됨.

이렇게 어텐션 값을 계산하면 결과적으로, Q⋅K^T는 각 시점의 데이터가 다른 시점의 데이터와 얼마나 관련이 있는지, 또는 얼마나 중요한지를 나타내는 역할을 함. 이 값은 어텐션 메커니즘에서 매우 중요한 역할을 하며, 모델이 시퀀스 내의 중요한 정보를 효과적으로 학습할 수 있게 함.

 


2. Model

TranAD

https://arxiv.org/pdf/2201.07284v6

Transformer구조를 통해 기존 다변량 시계열 데이터에서의 anomaly detection 개선함.
전체적인 시점정보와 지역적 시점정보 모두 반영하여 시계열 데이터가 지닌 장단기 특징 반영

  Complete Sequence: 데이터 상의 전체 Sequence임. ( 코드 상 전체 데이터를 특정 길이의 시퀀스로 나눴을 때 그 시퀀스를 의미함. 데이터 전체 정보가 아님!)

  Input Window: 전체 Sequence 중 일부임. ( 코드 상 현재 시점의 시퀀스 데이터를 가리킴!)

두개의 decoder를 지닌 구조로 adversarial training을 통해 안정적인 학습 및 불량 탐지 효가 개선

       à 정상에 대해 좀 더 강건하고 일반화된 특징을 적절히 학습


https://arxiv.org/pdf/2201.07284v6

앞 부분은 Transformer 인코더-디코더 구조를 뿌리채 박아 놓은 것을 볼 수 있음.

 

Encoder와 두개의 Decoder로 구성

-Encoder는 기존 Transformer 구조와 동일, Transformer에서의 encoder, decoder를 모두 포함
-Decoder는 각각에 대한 reconstruction 수행 후 reconstruction loss 도출함

          reconstruction을 기반으로 adversarial training 적용


Encoder

TranAD는 Complete Sequence의 장기적 특징과 Input Window의 단기적 특징을 모두 반영하여 해당 window에 대한 특징 추출함.

 

--> Complete Sequence: 여러 시점에 대한 정보
-->  Input Window: 현재 시점에 대한 정보

 

 

Phase 1

초기에는 Window input과 같은 차원의 0으로 구성된 focus score를 활용하고, 차원을 증폭 시킴

--> 차원을 맞춰주기 위해 Focus ScoreComplete SequenceConcatenate 연산을 함

https://arxiv.org/pdf/2201.07284v6

 


Decoder

https://arxiv.org/pdf/2201.07284v6

Representation가 디코더의 입력으로 들어옴.

*Representation은 시계열 데이터의 중요한 특징을 요약하고 압축한 특징 벡터

 

Decoder 12는 모두 데이터를 복원하고 reconstruction loss를 연산하지만 각각의 역할이 다름.

Decoder 1: reconstruction decoder의 역할로 진짜 데이터를 적절히 재구축.( 재구축된 데이터는 가짜 데이터임)

Decoder 2: prediction decoder로 진짜 데이터는 적절히 재구축, 가짜 데이터는 재구축 하지 못 함. (decoder1의 재구축된 데이터가 들어오면 재구축을 잘 못 해야함.)


Phase 2

https://arxiv.org/pdf/2201.07284v6

Decoder 1의 결과 값을 adversarial training의 입력 값으로 활용(Focus Score)

--> Window값을 잘 복원한(Decoder1) 가짜 데이터가 추가적으로 학습에 사용됨.
--> Representation값이 새롭게 갱신됨. 
--> 이 값을 Decoder2의 입력으로 활용하여, 진짜 같은 가짜 데이터가 입력으로 들어왔을 때를 의미함.(가짜 데이터를 판별 할 수 있는지를 확인 가능)

Loss Function

Reconstruction lossadversarial loss가 병합된 형태로 최종 손실함수 정의함.

1. Reconstruction loss: 디코더 1, 디코더 2 손실 함수 둘 다 입력 데이터와 재구축 데이터가 각각 유사해지도록 학습(재구성 및 예측 오류를 최소화하는 방향으로 모델을 최적화)

https://arxiv.org/pdf/2201.07284v6

 

2.Adversarial loss: Decoder1은 입력 데이터와 재구축 데이터가 각각 유사해지도록 학습

L1 = O2hat 과 실제 window값이 유사해지도록 학습

          (Decoder 1이 재구성 과정에서 정상 데이터를 정확하게 복원하지 못한다면, 즉 재구성 오류가 발생한다면 Decoder 1의 재구성 오류를 보완)

L2 =  O2hat 과 실제 window값이 차이가 크도록 학습(Decoder 2 이상치에 대해서는 예측 오류를 높이도록 유도)

 

Anomaly Score

정상 신호의 경우    O1    O2hat   이 실제 값과 차이가 작음

이상 신호의 경우      O1   O2hat 이 실제 값과 차이가 큼 


3. Experimental Results

 

실험 결과

9개의 데이터셋과 10개의 다른 모델과 비교 실험 수행

데이터셋: TranAD는 다양한 도메인에서 6개의 공개 시계열 데이터셋(: SWaT, WADI, SMD, SMAP, MSL )에서 실험

비교 모델: 기존의 주요 시계열 이상치 탐지 모델(: LSTM-ED, OmniAnomaly, USAD, GDN )과 성능을 비교.

 

F1-Score: TranAD는 대부분의 데이터셋에서 가장 높은 F1-score를 기록, 특히 복잡한 패턴을 가진 데이터셋에서 우수한 성능을 보임.

Precision: TranAD는 높은 Precision을 유지, 이는 정상 데이터에 대해 오탐(False Positive)이 적음을 의미.

Recall: 일부 데이터셋에서는 Recall이 기존 모델과 유사한 수준을 보였지만, 대부분의 경우 높은 Recall을 달성하여 이상치 탐지 성능이 뛰어남을 입증.

시각화, 모델 해석 가능한 모델임.


 

9개의 데이터셋과 10개의 다른 모델과 비교 실험 수행

데이터셋: TranAD는 다양한 도메인에서 6개의 공개 시계열 데이터셋(: SWaT, WADI, SMD, SMAP, MSL )에서 실험

비교 모델: 기존의 주요 시계열 이상치 탐지 모델(: LSTM-ED, OmniAnomaly, USAD, GDN )과 성능을 비교.

주요 결과

훈련 속도: TranAD는 상대적으로 짧은 훈련 시간에 비해 높은 정확도를 달성, 이는 실시간 이상치 탐지에 유리함.

 


4. Conclusion

 

TranAD는 복잡한 시계열 데이터에서 기존 모델들을 능가하는 높은 F1-score를 기록, 정상 데이터와 이상치를 효과적으로 구별할 수 있음을 입증.
기존 방법에 비해 최대 99% 낮은 학습 시간을 달성.
 

Applications

상대적으로 짧은 훈련 시간에도 불구하고, 높은 정확도와 재현율을 달성하였으므로 실시간 이상 탐지에 적합함.

사용 후기 (끄적 끄적)

TranAD는 제가 처음 선택한 애착이 가는 모델이었다. 사용한 비지도 학습 기반의 이상 탐지 모델로, 모델이 예측한 부분을 해석할 수 있어 어떤 부분에서 성능이 저하되는지 쉽게 확인할 수 있었다.💫👍🏻이는 모델의 성능을 평가하고 개선하는 데 큰 도움이 되었다. 그러나 Transformer 모델의 특성상, 긴 시퀀스를 Complete Sequence로 설정할 경우 메모리 부족 오류가 발생하는 아쉬움이 있었다. 만약 훈련 데이터가 매우 다양한 패턴을 가지고 있다면, 더 긴 시퀀스를 효과적으로 학습할 수 있는 다른 모델을 사용하는 것이 좋을 것 같다는 생각이 들었다. 그래도 내가 사용해 본 모델 중 TranAD의 추론 속도는 가장 빨라서 데이터에 맞는 모델이라면  실시간 이상 탐지에 매우 적합한 것 같다. 왕 따봉.~😎