논문 소개 : https://paperswithcode.com/paper/neuralprophet-explainable-forecasting-at
논문 링크 : https://arxiv.org/pdf/2111.15397v1.pdf
이전 prophet논문 리뷰: https://outta.tistory.com/19
NeuralProphet: Explainable Forecasting at Scale
0. Abstract
- facebook prophet의 후속 모델
- 설명 가능하고 확장 가능 / 사용자 친화적 예측 프레임워크
- 시계열 데이터에서의 적용
- 기존의 prophet은 근접 미래를 예측하기 위해 필수적인 지역적 맥락이 없다면, 적용 및 확장이 어려움.
- nerual prophet 모델은 pytorch를 기반으로 하여, 표준 딥러닝 방법을 사용하여 훈련됨.
- 기존의 prophet과 동등하거나 나은 품질의 해석 가능한 예측 구성 요소를 생성
- 단기 / 중기 예측에서 예측 정확도가 55% -> 92%
1. Introduction
1-1. Background
- 시계열데이터는 산업에서 주요한 역할, 데이터 수집의 큰 개선을 통해 데이터 가용성이 데이터 분석 능력을 초과하는 경우가 많아짐. 시계열 전문가가 아닌 실무 전문가가 예측자일 수 있음
모델이 설명 가능해야 하므로, 일반적으로는 해석 가능한 구성 요소로 분해함.
고전적인 시계열 방법으로는 통계적 기법이 활용되었음.
ARIMA(Auto-Regressive Integrated Moving Average), ETS(Exponential Smoothing) 등
> 이러한 통계 모델은 제한적 가정과 모수적 특징으로, 실제응용분야에서는 성능 제한
성능 발전을 위해서는 시계열 모델링에 대한 심층적 Domain Knowledge가 필요
- ML / DL 기술이 예측 성능에서 좋아지고 있으나, 여전히도, “설명가능성”(설명력)은 예측 분야에서의 연구문제로 남아 있음. 실무자들은 가장 정확한 최신 모델의 사용 보다는 설명 가능성, 확장성, 모수의 최소한의 조정이 가능한 정확한 모델 찾기에 관심
예측 성능이 낮더라도, 사용자 친화적이고, 해석가능한 전통적 통계 기법을 사용하는 경향도 존재. >> 고전적 시계열 모델링과 ML 기반 방법 사이의 간극을 메울 수 있는 새로운 방법이 필요
이전 논문 (2017 – Facebook prophet)은 hybrid method에 대한 선구자이며, 해석 가능한 모델, 초보자에게 완전한 자동화를 제공하며, 도메인 전문가의 세부조정 가능한 모델(by GAM based model) 그러나, 지역적 맥락의 부재 및 확장성 문제 등이 존재함.
이를 해결하기 위한 neural prophet 모델임.
prophet 모델에서의 고전적 시계열 구성요소에 Neural Network 모듈을 혼합하여, 비선형 동적에 적합하도록 만든 혼합 모델임
PyTorch를 백엔드로 사용 / 강한 기본값을 사전 선택 및 모델링 결정의 많은 부분을 자동화함으로써 예측에 대한 비전문가들의 접근, 편리한 도구 제공 / 전문가들은 도메인 지식을 사용자 정의 옵션과 결합할 수 있어 유용한 패키지 모델
2.1. Model Components
Modular composability : 예측에 대해 더하는 모델이라는 의미
T(t) : 시점 t에서의 트렌드
S(t) : 시점 t에서의 계절적 효과
E(t) : 시점 t에서의 이벤트 및 휴일 효과
------위의 내용은 prophet모델에서 사용하던 component
F(t) : 시점 t에서 미래에 알려진 외부 변수에 대한 회귀 효과
A(t) : 시점 t에서의 자동회귀 효과 (과거 자료 기반) - AR
L(t) : 시점 t에서의 외부 변수의 지연된 관측에 대한 회귀 효과
- 각 컴포넌트의 결합을 이용하여 모델을 구성함. 적절한 오프셋 매개변수를 활용하고, 기본적으로는 트렌드 및 계절성 term만 활용하고, 모든 효과를 포함한 식이 위의 식임.
2.1.1 Trend
트렌드의 일반화 >> 델타_t 가 성장률을 의미하는데, 시점에 따라 성장률이 일정하지않을 수 있기 때문.
Piece-wise linear trend >> changepoint + delta parameter활용 : (지난 prophet논문에서 소개하는 방식임)
2.1.2. Seasonality
위의 식 역시 지난번 prophet논문(2017) 리뷰에서 나왔던 계절성을 그대로 활용중.
연간 주기성(p = 365.25) >> k = 6
주간 주기성(p = 7) >> k = 3
일일 주기성(p = 3) >> k = 6
- k값이 기본적으로는 위의 값일 때 잘 맞는다
2.1.3. Auto-Regression
변수의 미래 값을 해당 변수의 과거 값에 대해 회귀하는 과정
- t시점에서의 값은 과거의 theta_i 값 계수에 적합되어, p개의 값을 참고하는 것으로 결정
c는 절편 / e_t는 noise 포함
2019년 수정 버전인 AR-Net을 기반으로 함. 대상변수에 대해 y_t-1 ... y_t-p 즉 마지막 p개의 관측치를 사용함. >>> 특정 origin에서 예측시 마다 h개의 예측을 얻게 됨.
h : 예측하는 뒤의 단계수를 의미 / 어떠한 추정도 적어도 1단계 뒤의 것을 추정함을 가정.
--> t-1과 그 이전 단계까지의 관측값만 알기 때문
선형 AR과 기본 AR-Net에 대해 기능적으로는 동일하며, AR-Net 은 input이 p / 출력이 h인 단일 레이어 NN에 해당, bias x / 활성함수 x
AR-Net을 통해 비선형 동적 모델링을 수행할 수 있다는 장점.
2.1.4. Lagged Regressors
- 다른 관측 변수를 대상 시계열과 관련시키기 위해 사용 / t시점에는 t-1까지의 데이터만 사용 가능 ( 공변량 – covariate)
2.1.3과 달리 y자체를 예측하는 것이 아니라,
input : x의 마지막 p 관측치 output : 예측값
즉, 다른 변수에 의해 covariate을 이용하여, y값을 예측에 포함하는 과정에 해당
이외의 원리는 2.1.3과 동일
2.1.5. Future Regressor
- 미래 회귀 변수를 F라 표현하면, 그 이전까지의 회귀변수를 모두 더하고, 미래 회귀 변수 f에 대해 이전 트렌드 T(t)에 곱해서 다음이 결정되면, 위의 식 / 아니면 아래의 F_f(t)로 모델링함
2.1.6.Events and Holidays
두가지 유형의 이벤트 모델링을 허용
1) 사용자 정의 이벤트
2) 국가별 휴일
+ 휴일 앞뒤 범위를 Z_e에 포함시켜 휴일의 영향을 넣는것이 가능
ex) 크리스마스 + 크리스마스 이브 >> [-1,0] 범위를 넣어서 전날까지의 영향을 포함시키는 것이 가능
2.2. Preprocessing
2.2.1. Missing Data
- 결측치를 단순히 제거하는 경우에, 그 데이터 샘플 손해가 발생 + 위에서의 AR의 경우에는 h, p의 값에 따라, 샘플 손실이 커짐 : ex) p=10 / h = 3 >> 13개의 데이터 손실이 발생
<데이터 보충하기>
--> 누락된 이벤트 및 부재 >> 0으로 채우기
--> 다른 실수값을 회귀변수로 대체하기
1) 양방향 선형 보간(각 방향으로 최대 5개의 결측치에 대해 시행) 누락된 값이 10개이상인경우 NaN으로 유지
2) 남은 NaN에 대해 30일 이동평균을 기준으로 최대 20개의 연속된 누락된 값을 채워 넣기
3) 만약, 30개이상의 값이 연속으로 결측치인 경우에는 삭제를 진행
2.2.2. Data Normalization
시계열에 적용할 정규화 유형을 설정하기 가능
defalut : soft / 시계열 값이 이진값이면 minmax로 진행
2.2.3. Tabularization
- SGD 기반 훈련에 필요한 가상의 독립적, 동일 분포의 데이터 세트로의 변환 / 시계열 데이터를 표로 생성. 정규화해서 저장 /
2.3. Training
prophet은 모델 매개변수를 데이터에 맞추기 위해 stan기반 L-BFGS를 사용하는 대신 NeuralProphet은 pytorch로 prophet을 완전 재구성한다는 장점.
SGD버전에 의존하는데 이는 대부분의 DL과 호환 / 복잡한 모델 구성을 수용 가능
Loss Function
L1 loss
- beta 아래에서는 MSE / 다른경우에는 MAE와 동일한 Loss
- 그러나 이 loss function은 분석자에 따라 선택 가능
Regularization
Optimizer
- SGD optimizer
Learning Rate
Batch Size
Training Epochs
2.4. Postprocessing
2.4.1. Metrics
2.4.2. Forecast Presentation
- 예측 수행시, 예측 구성요소에 대한 열이 있는 DataFrame이 반환되어, 각 구성요소를 더함으로써, 모델에 반영이 가능 y_hat3이면 현 위치의 데이터를 기반으로 3단계전 이용 가능한 데이터를 통해 y를 예측
3. Experimental Setup
실제 데이터셋에 대해서 위에서설명한 parameter를 설정하는 예시를 보여준다.
- 각 데이터 셋에 대해, 각 구성요소가 모델에 포함되는 여부를 보여주는 표이다.
- 예시에서의 파라미터 설정하는 자세한 과정은 논문을 참고하면 된다.
- prophet모델에 비해 RMSSE가 비슷하거나, 하락한 것을 확인할 수 있다.
- 선은 5-SD범위
- 왼쪽은 lagged component를 포함하지 않은 경우의 성능차이 / 오른쪽은 포함하였을 때의 성능차이
즉, lagged component(covariate을 이용해 L(x)로 예측한 component를 추가한 경우)가 유의미한 결과 차이를 나타내는것을 볼 수 있다.
각 구성요소들에 대한 모델링에서도, prophet보다 성능이 비슷하거나 좋은 것을 확인 할 수 있다.
그 외의 자세한 결과는 논문을 참고하면 확인할 수 있다.
상황에 따른 추천하는 모델 X표시 된 것을 추천하는 내용이다.
예시로, small dataset에 대해서는 prophet모델을 추천하는 것을 알 수 있다.