3. 시계열적 접근 방법

#3.-시계열적-접근-방법

먼저 이상치 탐지를 위한 대표적인 시계열적 접근 방법에 대해 살펴 보겠습니다

3-1. Moving Averages

#3-1.-Moving-Averages

먼저 가장 많이 쓰이는 Moving Averages 방법을 살펴보겠습니다.

Moving Average는 White noise의 영향을 줄이기 위해 사용

=> white noise를 필터링(smooth하게 만들어 줌)

Simple Moving Average(SMA)

@@0@@

데이터마다 같은 가중치를 줌

Exponentially Weighted Moving Average (EWMA)

@@0@@

@@1@@

SMA와는 다르게 전 시점의 정보와 다음 시점의 가중 평균으로 반영

@@0@@:현재 정보의 반영 비율

높을 수록 현재 정보를 많이 반영하고 전 시점의 정보 조금 반영

시계열 데이터가 갑작스럽게 변하면 EWMA는 anomaly를 잡아내지 못 하는 문제가 있음

Probabilistic Exponentially Weighted Moving Average (PEWMA)

EWMA에서 @@0@@

@@1@@의 확률을 측정

가중치 파라미터 @@2@@를 데이터에 적응적으로 조절함

Loading output library...
  • SMA는 빨간 선으로 하루(1440분) 주기로 smoothing을 했을 때 smoothing을 너무 많이 해서 거의 직선에 가까워져 버려 계절성과 같은 패턴에 대한 정보를 잃어버렸습니다.
  • EWMA는 파란선으로 @@0@@를 0.05로 두어 최근 정보를 많이 반영하게 했지만 한 시점 정도 느리게 추세를 따라가는 경향이 있었습니다.
Loading output library...

첫 째 그림은 EWMA로 데이터의 트렌드를 제거하고 ESD를 적용한 것 입니다.

맨 우측의 Outlier를 탐지 못하고 특정 기간의 outlier를 집중적으로 포착했습니다

이것으로 보아 global anomaly와 seasonal anomaly 모두 포착하는데 문제가 있음을 알 수 있습니다.

두 번째 그림은 Residual의 plot으로 여전히 계절성이 존재함을 알 수 있습니다.

세 번째 그림은 residual의 plot으로 여전히 Normal 분포라고 보기 어려워 ESD를 적용하는게 타당한지에 대한 의문이 생깁니다.

또한 이동 평균 방법은 대부분의 계절성을 가진 anomaly를 filter out 해버리는 문제점이 있습니다

3-2. Seasonality and STL

#3-2.-Seasonality-and-STL

이제 계절성을 처리하기 위해 Seasonality를 고려할 수 있는 STL decomposition에 대해 살펴 보겠습니다.

먼저 데이터의 특성을 다시 살펴 보겠습니다.

  • 데이터의 계절성이 뚜렷
  • 데이터의 분포가 multimodal로 normal 하지 않음
  • 멀티 모달일 경우 표준편차가 높아져서 진짜 anomaly를 찾는데 방해함
  • Residual이 유니모달한 분포이면 ESD 같은 방법 활용 가능해짐

@@0@@: 원래 시계열 데이터

@@1@@:계절성

@@2@@:트렌드

@@3@@:Residual

@@4@@를 @@5@@로 분해해 Residual을 찾음

전형적인 STL decompostion은 다음과 같습니다.

@@0@@: moving average filter을 사용

그후에 @@1@@로 트렌드 제거

@@2@@은 sub-cycle의 평균으로 구하자 (sub-cycle은 예를 들어, 달마다, 연마다 계절성이 두 개 있으면 더 작은 달마다 계절성을 말함, 여기서는 하루마다)

@@3@@

하지만 @@0@@에 단순한 moving average filter을 사용하면 Residual에 극단적인 anomaly가 있으면 제대로 작용하지 않습니다.

따라서 LOESS를 사용한 로버스트 추정을 사용하여 계절성을 추정하였습니다.

LOESS는 decompostion 방법이 더 복잡한 함수에 적합할 수 있도록 하는 장점이 있습니다.

Loading output library...
Loading output library...
  • STL decompostion으로 하면 EWMA만을 사용했을 때보다 훨씬 많은 Anomaly를 찾아 냈습니다
  • 하지만 10월 4일을 보면 Anomaly가 아닌데도 잡아낸 것도 보입니다.
  • 또한 10월 1일 부근의 Anomaly만 집중적으로 잡아낸 문제가 있습니다.

4. Twitter의 제안 모델

#4.-Twitter의-제안-모델

4.1. STL Variants (S-ESD)

#4.1.-STL-Variants-(S-ESD)
  • 앞서 본 것 처럼 STL decompostion으로 하면 Spurious anomaly를 만들 수 있습니다(anomaly가 아닌데 anomlay로 착각)
  • 따라서 트렌드를 원래 데이터의 중위수로 두는 @@0@@ 이용하여
  • @@1@@로 decompostion 할 것을 제안
  • 먼저 계절성 @@0@@을 추정할 때 LOESS를 사용하여 계절성을 분해합니다.
  • 이후 안정적인 트렌드를 추출하기 위해 Medain을 사용하여 트렌드를 분해합니다.
  • Median을 이용하여 트렌드를 분해하여 Residual을 안정화 시켜 Spurious를 제거합니다
Loading output library...
  • 10월 4일 쯤에 STL로 anomaly라고 진단했던 것들이 사라져 Suprious anomaly를 잡아내는 문제가 많이 개선 됐습니다
  • 하지만 S-ESD는 global anomaly와 local anomaly를 발견할 수 있지만 데이터에서 anomaly의 비율이 높으면 잘 작용을 안하는 문제가 있습니다.
  • 그 이유는 ESD 검정 부분에서 평균과 표준편차를 사용하기 때문에 값이 큰 데이터가 평균과 분산을 과대 추정하게 만들기 때문입니다

4-2. Seasonal Hybrid ESD (S-H-ESD)

#4-2.-Seasonal-Hybrid-ESD-(S-H-ESD)

평균과 표준편차는 Outlier에 민감하다는 문제가 있습니다. 따라서 Twitter에서는 척도에 Median을 사용할 것을 제안했습니다.

  • Medain(중위수)은 Outlier에 더 robust하다는 장점

MAD: 분산을 대신하여 사용 @@0@@

@@1@@

데이터가 Normal 분포를 따를때 b=1.4286

Leyes 등은 Normal 분포가 아닐 때 @@2@@은 분포에서 0.75 quantile)

Seasonal Hybrid ESD는 S-ESD에서 ESD를 계산할 때 Median을 이용한 이상치에 로버스트한 척도를 사용한 방법입니다.

Loading output library...
Loading output library...
Loading output library...

Median, MAD를 사용했을 때 B에서는 같은 이전과 같은 결과를 얻었지만 C에서는 데이터 하나를 더 outlier라고 진단했습니다

이제 트위터 데이터를 살펴 보겠습니다

Loading output library...

데이터를 봤을 때 평균과 중위수는 5 정도 차이가 나고 표준편차와 MAD 또한 5정도 차이가 났습니다.

이는 평균이나 표준편차가 중위수와 MAD 보다 데이터의 특징을 과대 추정하는 것을 알 수 있습니다.

Loading output library...
  • S-H-ESD를 적용했을 때 Anomaly라고 진단 된 것이 더 적어 로버스트하다는 것을 알 수 있습니다.
  • 특히 10월 2일 중순에 S-ESD에서 Anomaly라고 진단했던 것을 S-H-ESD에서는 Anomlay가 아니라고 진단했고 시각적으로 봤을 때 S-H-ESD의 결과가 더 타당해 보입니다
  • 또한 전체적으로 봤을 때 S-H-ESD가 seasonal anomaly나 local anamaly를 훨씬 더 잘 탐지하는 것을 알 수 있습니다

5. 평가

#5.-평가

1) Capacity Engineering: 과부하된 데이터를 Precision, Recall, F-score로 평가

2) User behavior: 서비스 제공자가 사용자 행동을 변화 시킬 수 있는 신호를 탐지하기 위해 데이터에서 관심 있는 부분에 임계치를 설정하고 그것을 넘었냐 안 넘었냐를 Precision, Recall, F-score로 평가

3) Supervised Learning: anomaly인지 아닌지 일일히 레이블을 달기는 어렵기 때문에 데이터에 Smooth spline 적합해서 원래 데이터와 같은 성질의 트렌드와 계절성을 추출. 그후에 진짜 anomaly를 추출한 시계열 데이터에 넣어서 알고리즘이 그 진짜 anomaly를 얼마나 탐지하는지 측정