분석하고싶은코코

다양한 시계열 예측 모델(ARIMA, Prophet, LSTM) 정리 본문

데이터분석

다양한 시계열 예측 모델(ARIMA, Prophet, LSTM) 정리

코코로코코 2023. 3. 26. 19:45
반응형

시계열 데이터를 예측하는 토이 프로젝트를 진행하면서 여러 가지 모델에 대해서 알게 되었다.

 

시계열 데이터 예측에 대표적인 ARIMA, Prophet, LSTM이 있었다. 공부한 내용을 정리하고자 글을 작성한다.

 

ARIMA 모델의 경우 실시간 데이터 예측을 위한 Online ARIMA모델과 단점을 해결하기 위해 적용된 RLS 알고리즘이 적용된  RLS_Online_ARIMA 대해서 작성하였다.

 

 

 

ARIMA (Online ARIMA)


우선 ARIMA의 경우 AR(자기회귀) + MA(이동평균)이 합쳐진 ARMA모델이 시계열 예측할 수 있는 모델이다. 그런데 이 모델은 시계열 데이터의 정상성이 확보가 되어있다는 가정이 베이스기 때문에 실제 데이터에 적용하기에는 어려움이 있었다고 한다. 우리 주위에서 일어나는 사건들의 시계열 데이터는 보통 정상성 확보가 되지 않기 때문이다.

 

이를 해결하기 위해서 나온 개념이 차분(differencing)이다. 차분을 통해 시계열 데이터의 정상성 확보가 가능하게 만들어 ARMA 모델로 분석이 가능해진다. 이를 ARIMA모델이라고 한다.

 

기본적으로 ARIMA 모델은 시계열 데이터를 예측하는데 사용된다. 그런데 이 ARIMA모델은 정적인 데이터를 기반으로 예측하는데 좋은 성능을 보인다고 알려져있다. 즉, 동적인 데이터에 대한 예측력이 좋지 못하다는 것인데 이를 보완한 모델이 실시간 데이터에 대응할 수 있는 온라인 ARIMA 모델이다. 이 모델의 경우 학습한 내용을 바탕으로 예측값을 만들어낸다. 그리고 실제값과 예측값에 대한 정보를 업데이트하여 성능을 개선한다. 그래서 online이라는 단어가 모델 앞에 붙었다. 기본 ARIMA의 경우 학습된 데이터를 기반으로 지속적인 예측을 하기 때문에 시간이 지나면 새로운 데이터에 대한 재학습이 필요하지만 온라인 ARIMA는 새로운 데이터를 업데이트하여 모델 개선이 진행되었기 때문에 전체 데이터에 대한 새로운 재학습이 필요하지 않다는 것이 다른점이다.

 

그런데 이런 온라인 ARIMA 모델도 방대한 양의 데이터를 기반으로 지속적으로 예측을 하게 된다면 많은 시간이 걸릴 수 밖에 없다. 이를 해결하기 위해서 적용한 방법이 RLS(Recursive Least Squares) 알고리즘이다. 

 

RLS 알고리즘과 ARIMA에 적용된 최소 자승법(Least Squares Method)의 차이는 최소 자승법을 재귀적으로 사용하여 과거 데이터에 대한 가중치를 둘 수 있다는 점에 있다. 이렇게 계산된 가중치는  'Forgetting Factor'라는 파라미터로 사용할 수 있게 되는데 이를 통해서 과거 데이터임을 구분하고 일정 수준으로 내려간다면 예측하는데 제외시킬 수 있게 된다. 이러한 방법으로 최근 트렌드를 더욱 반영하고 머나먼 과거 데이터를 사용하지 않아 계산 복잡도를 줄일 수 있게 되어 모델의 속도를 개선 시킬 수 있게 되는 것이다.

 

이것이 RLS_Online_ARIMA 모델이 된다. 이 모델을 통해서 다양한 분야에서의 실시간 데이터에 대응할 수 있게 된다. 게임 분야에서는 이를 통해서 유저 이탈을 예측하거나 이벤트에 대한 유저들의 반응, 이상 탐지 등 다양한 컨텐츠에 적용할 수 있다. 단, 이상 탐지의 결과에 대한 정확성이 중요하기 때문에 RLS_Online_ARIMA만을 통한 탐지하는 것이 아니라 더 높은 정확성을 보여주는 LSTM과 결합하여 사용하는것이 일반적이다.

 

 

 

Prophet


Prophet은 페이스북에서 개발한 모델로, ARIMA와 같은 전통적인 시계열 모델보다 사용이 더욱 쉽다. ARIMA와 달리 계절성, 트렌드(추세)를 직관적으로 추출하고 시각화가 가능하고 이러한 부분이 확실한 데이터라면 좋은 성능을 보여준다. 특히 시계열 데이터에 대한 입문을 하기에는 가장 좋은 모델이라고 할 수 있다.

 

다만 이 Prophet은 정적인 데이터를 대상으로 만들어진 모델이기 때문에 동적인 데이터에 대해서 예측은 할 수 있지만 성능이 좋다고 할 수는 없다. 특히 실시간으로 예측하는 경우에는 대량의 데이터가 들어왔을때 빠르게 처리할 수 있는 방법이 존재하지 않기 때문에 동적인 데이터 그 중에서도 실시간 데이터 예측에는 적합한 모델이라고 할 수는 없다. 

 

그럼에도 Prophet은 정적인 시계열 데이터 예측인 이슈 트래킹, 시간 상관 관계 분석, 트렌드 예측, 계절성 예측 분양에서 훌륭한 성능을 보여준다는 점은 큰 강점이다.

 

 

 

LSTM


LSTM(Long Short Term Memory)은 RNN을 기반하여 만들어진 모델이다. 과거 데이터의 정보를 전달 받기도 하지만 그 데이터에 대한 가중치를 판단할 수 있는 게이트가 존재하는데 여기서 또 다른 정보를 받아온다. 이를 통해서 과거 혹은 이전 데이터와의 연관성을 판단하는 파라미터로 활용한다.

 

이러한 LSTM은 시계열 데이터의 예측에서 사용될 뿐 아니라 NLP(자연어 처리)분야에서도 유용하게 사용되는 모델이다. 예를 들어, 문장 내 단어의 순서를 고려하여 자연스러운 문장을 생성하는 텍스트 생성 작업이나, 텍스트 분류 작업에서도 좋은 성능을 보인다. 또한, 음성 인식 분야, 주가 예측, 자율주행 분야에서도 적용되는 등 다양한 분양에서 활용되는 모델이다. LSTM의 강점은 단기 예측에서도 좋은 성능을 보이는 것뿐 아니라 장기 예측에 대해서도 좋은 성능을 보이며, 정확성 역시 높다는 것이 큰 강점이다.

 

단점은 기본적인 학습을 위해서는 많은 양의 데이터가 필요하며, 결과에 대한 정확한 해석이 어렵다는 점이 있다. 또한, 방대한 양의 데이터를 통해서 예측하게 된다면 정확도는 높을 수 있지만, 연산하는 데 시간이 오래 걸릴 수 있다는 단점 또한 존재한다.

 

 

 

 

 

 

 

이상탐지의 경우


이상 탐지를 위한 모델의 경우 위에서 설명한 모델 중 하나의 모델로만으로는 진행되지 않는다고 한다.

 

내가 관심있는 게임 분야쪽에서 이야기를 하자면 게임에는 실시간으로 많은양의 데이터가 들어오기 때문에 이를 처리하기 위해서는 RLS_Online_ARIMA 모델이 가장 적합하다. 하지만 이상탐지라 하면 불량이용자를 탐지하는 것인데 이 모델의 정확성이 좋은 편인건 맞지만 다른 모델과 비교해서 월등히 높다고 할 수 없다. 따라서 실시간 데이터에 대해서 이상탐지를 ARIMA모델을 통해서 진행하고 여기서 탐지된 데이테에 대해서 LSTM, AutoEncoder, Variational AutoEncoder(VAE)와 같은 모델을 사용하여 한 번 더 검증을하고 여기서도 이상탐지(불량 이용자)로 분류하게 된다. 이 중에서는  LSTM이 시계열 데이터에서 높은 예측률을 보이기에 시간적 여유가 된다면 LSTM을 사용하는게 좋다고 한다. 이렇게 2차 분류에서도 불량 이용자로 판단 됐을때 로그를 확인하고 최종 결정을 내린다고 한다.

 

 

 

 

(+)

이러한 이상 탐지 모델을 만들기 위해서는 도메인 지식이 필수적으로 필요하게 된다. 왜냐하면 모델을 만들때 이상 데이터인지 아닌지 판단할 수 있는 기준을 만들어 줘야한다. 그런데 기계는 이상치에 대한 판단을 학습된 내용으로 하는 것이지 스스로 할 수 있는게 아니기 때문에 이를 설정해줄 필요가 있어 도메인 지식이 중요한 역량중 하나가 되는 것이다.

 

 

 

 

반응형