[논문리뷰] N-BEATS: Neural Basis Expansion Analysis for Interpretable Time Series Forecasting

hyo._.op·2026년 7월 22일

논문리뷰

목록 보기
10/16

Overview

논문명: N-BEATS: Neural Basis Expansion Analysis for Interpretable Time Series Forecasting
학회(출판연도): ICLR (2020)
연구분야: 딥러닝 기반 시계열 예측 및 시계열 표현 학습


Background Concept

Basis Expansion

  • 복잡한 시계열을 여러 기본 함수(basis)의 조합으로 표현하는 것

  • 하나의 복잡한 곡선을 “조각”으로 나눠서 설명
    • 직선, 사인파, 작은 변동을 다 더하면 원래 데이터가 됨
  • 수식

기호의미
( ϕi(t\phi_i(t) )basis function (기본 함수)
( θi\theta_i )weight (얼마나 쓸지)
( K )basis 개수
  • 기존에는 푸리에 방식으로 사람이 직접 basis를 정했는데 N-BEATS의 경우 네트워크가 직접 θ\theta 학습하는 방식

✓ N-BEATS에서는 어떻게 쓰는가?

  • 총 2가지 모드 - Generic / Interpretable mode
  • Generic (Black-box)
    • basis 없음 (learned)
    • 그냥 Neural Net
  • Interpretable mode ← 여기에 basis 등장
    • Trend basis: ϕ(t)=[1,t,t2,t3,t,t^2,t^3] → 다항식
    • Seasonality basis: ϕ(t)=[sin(2πt),cos(2πt)\sin(2πt),\cos(2πt)] → 주기패턴

Abstract

  • 연구목표: 단변수 시계열 예측(한 개의 값만 있는 시계열)를 딥러닝으로 해결하자!

    • Point forecasting: 미래의 값을 “하나의 숫자”로 예측 (확률 분포 X, 단일 값O)

    ✓ 현실에서 단변수 시계열을 많이 쓰는가?

    • N-BEATS의 목표는 “복잡한 구조 없이도 SOTA 성능 + 해석 가능성”

      • 입력 : 하나의 시계열
      • 구조: 매우 단순(MLP + residual)
    • 수요 예측(상품 하나의 판매량), 에너지(특정 지역 전력 소비), 금융(특정 주식 가격) 등 다양한 분야에서 사용

      • 하지만 실제로 단변수처럼 보이지많 다변수 문제인 경우도 있음

        → 매출 = 가격 + 날씨 + 이벤트 영향 받음

    • 다변수 시계열

      • 여러 변수가 동시에 존재 xtx_t=[xt(1),xt(2),...,xt(n)x_t^{(1)},x_t^{(2)},...,x_t^{(n)}]
    • N-BEATS는 다변수에 최적화된 모델은 아님

    • 그래서 다변수 시계열 문제를 풀기 위해서는

      • 모델 자체가 multivaritate한 LSTM, RNN, Transformer기반의 DeepAR이나 Temporal Fusion Transformer 사용
      • 피처엔지니어링을 할 수도
      • 앙상블
        • N-BEATS + XGBoost, RNN + Transformer
  • forward / backward residual 연결 구조를 가진 아주 깊은 fully-connected 네트워크 제안

    • residual links(잔차연결) - 입력을 그대로 더해주는 skip connection
    • forward&backward residual - 단순히 앞으로만 흐르는 게 아니라 예측 및 보정(backcast) 구조를 동시에!
    • fully-connected layers - CNN이나 RNN없이 MLP만 사용

    → 즉 일반적으로 시계열에서는 RNN과 LSTM을 쓰는데 여기서는 그게 필요없다는 도전적인 주장 준비중!

  • 기여

    • ① Interpretable (모델 내부가 왜 이렇게 예측했는지 설명 가능하고)

    • ② Applicable without modification (도메인별 feature engineering 필요없음)

    • ③ Fast to train (FC기반으로 구조가 단순해서 계산 효율이 좋음)

      ↔ 기존 시계열 모델들을 복잡하고 도메인 의존적이며, 느리다..

  • 실험

    • M3, M4, TOURISM 같은 유명한 시계열 데이터셋에서 테스트

    • 2가지의 N-BEATS 모델 설정으로 모든 데이터셋에서 SOTA 달성

      • 기존 통계 모델보다 11% 더 좋고
      • M4 대회 우승 모델보다 3% 더 좋다
    • 첫번째 모델은 시계열 전용 구조(RNN, seasonal component 등)없이도 다양한 데이터에서 잘 작동

      시계열은 특별한 구조가 필요하다는 기존 생각과 달리 단순한 딥러닝 구조(residual block 같은 기본 building block)만으로도 충분하다는 것을 보여줌

    • 해석가능한 결과를 만들면서도 성능도 거의 유지!

      → 성능과 해석가능성은 보통 trade-off관계인데 이 논문에서는 둘 다 가능하다!


1. Introduction

  • 시계열예측은 ① 비즈니스에서 매우 중요하고 ② 머신러닝이 잘 활용되는 대표적인 분야

    • 재고관리, 고객관리, 생산 및 유통, 금융, 마케팅 등 거의 모든 비즈니스 핵심 영역에서 사용됨

    • 예측정확도가 조금만 올라가도 수백만 달러의 규모의 경제적 효과 발생 가능!

    • CV나 NLP에서는 딥러닝 good, 시계열에서는 딥러닝보단 전통 통계 모델 多

      → 실제 M4대회에서 상위 모델은 대부분 통계 모델의 앙상블

      • 우승모델은 딥러닝(LSTM+어텐션) + Holt-winters 통계모델의 하이브리드 모델
  • 핵심 주장

    • 기존까지는 DL 단독으로는 어렵고 섞어야 한다는 것이 주된 흐름이었지만 통계 모델 없이 DL모델만으로도 충분하다
    • 단순 성능뿐만 아니라 해석 가능성도 보여줄 것

1.1 Summary of contributions

  • Deep Neural Architecture
    • 시계열 전용 구조 없이 딥러닝만으로도 기존 통계 모델보다 더 좋은 성능
    • M4기준
      • 통계 베이스라인보다 11% 향상
      • 최고 통계 모델보다 7% 향상
      • 대회 우승 모델보다 3% 향상
  • Interpretable DL for Time Series
    • 성능뿐아니라 해석가능한 딥러닝 모델 가능
      → 전통적인 trend + seasonality 분해 방식처럼 사용 가능

✓ Depcomposition(분해)

  • 시계열을 trend (장기 증가/감소), seasonality (주기성), level (기본값)로 나누는 방식

2. Problem statement

  • 문제 정의

    • ① 이산 시간(discrete time)에서 ②단일 변수 시계열 예측 문제를 다룸

      → 즉, continuous time 문제, multivariate 문제는 고려하지 않겠다.

    • 길이 T의 과거 데이터가 주어지면 앞으로 H개 미래 값 예측

      • y1 yTy_1~y_T : 과거 / yT+1 yT+Hy_{T+1} ~ y_{T+H} : 미래
    • 실제 모델 입력(Loockback window)은 전체 과거(T)가 아니라 최근 t개만 사용

      → 먼 과거는 중요하지 않을 수 있음, sliding window방식 사용

  • 평가지표

  • sMAPE: 실제값과 예측값의 차이를 두 값의 평균으로 나눈 값

    • 데이터의 크기에 영향을 받지 않음

    ⇒ (상대 오차 측정) 작은 값/큰 값 모두 공정하게 평가하려는 의도

  • MASE: 예측 오차를 naive 모델의 평균 오차로 나눈 값

    • Naive predictor: y(t) = y(t-m)

      ✓ Naive 모델?

      • “다음 값 = 바로 이전 값”이라고 예측하는 가장 단순한 모델

      • 왜 이렇게 멍청한 모델을 쓰는가?

        • baseline: 이것보다 못하면 모델 쓸 이유 없음
        • 많은 시계열에서 변화가 느리고 패턴이 단순한 경우가 많기 때문에 naive가 꽤 잘 맞음

      ⇒ seasonality 고려한 baseline

    ✓ MAPE, sMAPE, MASE 비교

    Metric핵심 아이디어장점단점
    MAPE실제값 기준 비율 오차직관적0에서 터짐
    sMAPE평균 기준 비율 오차대칭적, 안정적약간 해석 어려움
    MASEnaive 모델 대비 성능dataset-independent직관성 낮음
    • MAPE: 실제값 대비 몇 % 틀렸나?

    • sMAPE(Symmetirc MAPE)

    • MASE: 이 모델이 naive보다 얼마나 좋은가?

  • OWA: sMAPE와 MASE를 baseline 대비 정규화해서 합친 metric

    • naive 모델 기준으로 정규화되고 naive 모델인 경우 OWA = 1

3. N-BEATS

  • 모델 설계의 원칙

    • 구조는 단순해야하지만(simple&generic), 표현력은 충분히 커야 한다 (깊어야 한다)

    • 시계열 전용 feature engineering이나 특별한 scaling없이 동작해야한다.

      ⇒ 순수한 딥러닝의 가능성 테스트

    • 모델이 해석 가능하도록 확장 가능해야함

3.1 Basic block

  • 블록

    • 첫번째 블록 입력: 전체 모델 입력(최근 t개의 시계열)

      • 입력 길이: H의 배수로 보통 2H~7H 사용

        ex. 월요일~일요일(7일)까지의 일별 기온을 예측하고 싶다 → 2H:과거14일간의 기온 데이터 사용

        → 미래 길이(H) 대비 충분한 과거 필요(과거 데이터에서 시계열의 잠재적인 패턴, 추세, 계절성 등 미래를 예측하는 데 필요한 정보를 학습하기 위함)

    • 다음 블록 입력: 이전 블록의 residual

      • residual: 아직 설명되지 않은 부분

        → 즉 각 블록은 “남은 정보만 처리”

  • 블록 내부

  • 첫 번째 부분: FC 네트워크로(-> 복잡하고 비선형적인 특징을 추출하고 데이터를 고차원으로 표현하기 위함) θf (forecast 계수), θb (backcast 계수)를 만듦

  • 두 번째 부분: basis function을 이용해서 실제 output을 만듦

  • 출력은 그냥 값이 아니라 basis 벡터들을 θ\theta계수로 가중합해서 만듦

    → 모델을 “패턴들의 조합”으로 예측 ⇒ trend, seasonality 해석 가능한 구조!

    • basis 함수는 학습할 수도 있고 미리 정할 수도 있으며 특정 구조(trend, seasonality)를 반영할 수 도 있음

3.2 Doubly residual stacking

  • 기존

    • ResNet: 입력을 출력에 더해서 다음 레이어로 넘기는 방법

    • DenseNet: 모든 레이어의 출력이 이후 모든 레이어의 입력으로 연결

      ⇒ 이러한 구조는 깊은 네트워크를 학습하기 쉽게 만듦
      하지만, 해석하기는 어려운 구조,,(블랙박스)

  • 그래서 이중 residual 구조 제안

    • backcast쪽의 residual

      • 입력을 계속 “빼면서” 정제
      • 설명한 부분을 제거하고 남은 것만 다음 블록으로
    • forecast쪽의 residual

      • 예측을 계속 “더하면서” 생성
      • 각 블록이 일부를 예측하고 모두 합쳐서 최종 결과
  • ✓ 모델의 핵심 아이디어 → 입력을 점점 분해한다

    • xl1x_{l-1} (backcast) → 설명된 부분

    • residual → 아직 설명 안 된 부분

    • 최종 예측은 모든 블록의 예측을 더한 값

      • 각 블록은 부분 예측만 담당

      ⇒ 이전 블록이 잘 설명할 수 있는 부분을 제거하면 다음 블록은 더 쉬운 문제만 남음

      ⇒ 즉 각 블록의 예측이 계층적으로 합쳐짐

  • basis 함수가 자유롭게 학습되면 gradient 흐름이 더 좋아지고, 반대로 basis를 특정 구조로 제한하면 의미 있는 해석이 가능해짐

    • 자유: FC network(θ\theta 생성 부분)
    • 제한: basis function(gbg^b, gfg^f) ← 사람이 설계 (trend, seasonality … )

3.3 Interpretability

  • basis함수 (gbg^b, gfg^f)를 어떻게 선택하느냐에 따라 2가지 모델 구조 제안

    → 해석 가능성은 basis 선택에 달려있음

    • gbg^b → backcast 생성 함수
    • gfg^f → forecast 생성 함수
  • 하나는 일반 딥러닝 모델, 다른 하나는 특정 구조를 넣어 해석 가능하게 만든 모델

Generic Model ← 성능에는 짱!

  • 시계열 지식을 전혀 사용하지 않는 모델
  • gbg^b, gfg^f ← 그냥 linear layer로 설정
  • basis matrix: V와 θ\theta의 곱으로 생성

  • FC 네트워크: basis VfV^f를 학습하고 그 basis의 조합으로 예측

    • VfV^f

      → 시간길이 H x basis 개수 크기

      → 행은 시간 (t=1~H), 열은 basis 함수 index (하나의 파형)

      이때, 아무 제약이 없기 때문에 학습된 wave는 의미없는 형태일수도,,

    ✓ 왜 generic모델에서는 의미없는 wave가 나올까?

    • 같은 데이터를 설명하는 방법이 너무 많아서 모델이 굳이 의미 있는 방식으로 표현할 필요가 없기 때문
    • 각 부분이 표현할 수 있는 형태를 제한하면, 그 역할이 강제되기 때문에 나누면 의미가 생김

    ⇒ 즉 basis가 자유로워서 해석이 불가능

Interpretable Model ← 해석 가능!

  • 해석 가능한 모델은 basis에 구조를 넣어서 만듦
    • 시계열을 trend + seasonality로 나눠서 이걸 모델에 넣음
    • y = trend + seasonality

Trend Model - 해석가능성

  • trend는 천천히 변하는 함수 → basis를 저차 다항식으로 제한

  • t는 0~1로 normalize된 값

  • basis matrix는 polynormal basis

    ⇒ 즉 trend는 smooth + polynomial 로 충분하다

✓ Polynomial

  • 변수의 거듭제곱들의 합으로 이루어진 함수
  • trend는 보통 천천히 증가하거나 감소 = smooth + low-frequency
    • y=a+bt+ct2+dt3y = a + bt + ct^2 + dt^3 - 부드럽게 변하고 갑자기 진동 불가능
  • 간단하고 과도한 복잡성이 없으며 느린 변화에 딱 맞음

Seasonality Model - 해석가능성

  • seasonality는 반복되는 패턴 → periodic 함수로 제한

  • 푸리에 basis 사용

⇒ Seasonality는 주기이므로 푸리에가 자연스러움

✓ N-BEATS 구조에서 일어나는 일

  • Stack1 (trend)
    • polynomial만 학습 가능
    • trend만 설명
  • Stack2 (seasonality)
    • 푸리에만 가능
    • 남은 periodic만 설명
  • 즉 모델은 trend stack + seasonality stack으로 구성됨

    • 먼저 trend를 먼저 제거하고 나머지로 seasonality 처리

      → trend와 seasonality를 각각 따로 볼 수 있음

  • 각 스택은 여러 블록으로 구성되어 있으며 같은 basis를 stack 내에서 공유함

    • 각 stack에는 3개의 블록이 있음
    • weight공유가 성능에 좋은 영향을 줌

3.4 Ensembling

  • M4대회 상위 모델들이 모두 앙상블 사용했음 → 우리도 공정한 비교를 위해 앙상블진행

  • 앙상블은 dropout이나 L2 보다 훨씬 강력한 regularization(오버피팅 방지)임

    • dropout과 L2는 개별 모델 성능은 올리지만 앙상블 성능은 오히려 떨어짐

      → dropout과 L2는 모델을 더 안정적이고 비슷하게 만듦
      그래서 개별 모델이 좋아질수록 서로 비슷해지고 다양성이 줄어듦

      → 앙상블에서는 모델 간 다양성이 더 중요함

      (앙상블에서 중요한 것은 모델이 얼마나 잘 맞추냐보다 모델들이 얼마나 다르게 틀리냐이다)

      ✓ 왜 다르게 틀리는 게 중요할까?

      • 모델이 다 같이 똑같은 걸 틀려버리면 아무런 소용이 없음
      • 서로 다른 걸 틀려서 오차가 서로 상쇄,,

      이 논문에서 dropout보다 앙상블이 강한 이유는 dropout은 하나의 모델을 안정화(variance 줄임)인 반면, 앙상블은 여러 모델을 평균 즉, variance를 크게 줄여서 오차를 상쇄시킴

  • 다양성을 만드는 방법

    • 서로 다른 loss function으로 학습 → sMAPE, MASE, MAPE

      • loss가 다르면 모델이 다른 방향으로 학습됨
    • 입력 길이를 다르게 해서 학습 (다양한 시간 범위 고려)

      • 2H,3H, … , 7H

        → 짧은 window (최근패턴), 긴 window (장기패턴)

      ⇒ 전체 모델은 multi-scale 특성을 가짐

    • random initialization을 다르게 해서 여러 모델 만듦 (id = “m4l3)

      ⇒ 총 180개의 모델을 앙상블

      • 3가지 loss x 6가지 window x 여러 seed
      • 이때 결과는 평균이 아닌 median 사용
        → median은 이상치에 강하기 때문

  • 시계열 예측 방법에는 몇 가지 주요 카테고리로 나눌 수 있음

Statistical Methods

  • exponential smoothing(최근 데이터에 더 큰 가중치를 주는 방식)기반 통계 모델은 산업에서 기본 선택
  • Theta method → 시계열을 여러 구성 요소로 나눠 예측
  • ARIMA계열 → state-space 모델(다양한 모델을 하나로 설명하는 framework)로 통합 가능

ML+TS Hybrid

  • 최근 통계 모델 출력과 ML을 결합한 방식이 등장
    • 2등 모델은 gradient boosting 방식으로 결합

Deep Learning(RNN 계열)

  • 딥러닝 기반 시계열 모델은 대부분 RNN기반
  • 주로 전력 수요 예측과 같은 multivariate 문제에서 사용
  • 일부에서는 dilation, residual, attention을 결합

M4 Winner

  • Holt-Winters + 딥러닝 결합 → 통계 모델에 크게 의존하는 hybrid 구조

5. Experimental results

  • 각 데이터셋마다 기존 top-5 모델들과 비교

    • M4 → OWA, sMAPE
    • M3 → sMAPE
    • TOURISM → MAPE
  • 3가지 모델로 비교:
    ① N-BEATS(generic), ② N-BEATS-I(interpretable) ③ N-BEATS-I+G(앙상블)

    ⇒ generic vs interpretable vs ensemble

  • 모든 데이터셋에서 N-BEATS가 SOTA 달성

5.1 Datasets

  • M4데이터셋
    • 1982년부터 이어진 가장 영향력있는 시계열 대회 시리즈의 최신 버전
    • 10만 개의 시계열, 매우 다양한 도메인을 가지고 있으며
    • 시간 단위부터 연 단위까지 포함되어 있음
  • M3 데이터셋
    • M4와 비슷하지만 더 작음
    • 통계 모델 발전에 많이 사용됨
    • 최근 연구에서 ML이 통계보다 못하다고 나왔음,,
      → 본 연구에서 뒤집으려는 것
  • TOURISM
    • 관광 관련 시계열 데이터
    • 다양한 시간 단위 포함

5.2 Training Methodology

  • 데이터 → train/validation/test로 나눔

    • test는 기존의 brench mark 그대로 사용

    • train 데이터는 다시 나눠서 validation생성하고 validation으로 튜닝

    • 튜닝 후 전체 train으로 다시 학습

      ⇒ train → validation (튜닝) → full train → test (평가)

  • TensorFlow로 구현하고, horizon마다 같은 구조를 사용함 → horizon별로 따로 학습

    • 각 시계열을 하나의 task로 본다면 multitask learning으로 볼 수도 있음
  • 학습 방식

    • 배치 사이즈 = 1024

    • 랜덤하게 시계열 선택

      • 각 시계열에서 랜덤 시점 선택
    • lookback 범위 튜닝

    • 데이터가 많으면 짧은 window, 데이터가 적으면 긴 window

      → 데이터가 많으면 최근 정보만으로도 충분하고, 데이터가 적으면 더 많은 과거가 필요하기 때문

    • 입력: 과거 window, 출력: 미래 H

    • Adam 사용

    • sMAPE는 unstable하기때문에 학습 시 분모 gradient를 차단

5.3 Interpretability results

  • generic 모델의 출력은 의미 없이 섞여있음

    • trend와 seasonality가 아무 stack에나 섞여 있음
    • 두 번째 stack 출력은 더 작은 값
    • residual 구조 때문에 뒤로 갈수록 남는 정보가 적음
  • Interpretable 모델은 명확한 패턴을 가짐

    • trend는 천천히 변하고 부드러움

    • seasonality는 반복적이고 주기적임

      ⇒ seasonality가 강하면 변동폭이 크고, trend가 없으면 trend 출력도 작음

      ⇒ 따라서 trend와 seasonality로 분해 됨 - 즉 딥러닝도 해석 가능하도록 할 수 있음

      • 구조에 적절히 bias를 넣어서,,! + 해석가능하면서 성능도 유지!

6. Discussion: Connections to meta-learning

  • 메타러닝은 내부학습과 외부학습과정으로 나눌 수 있음

✓ meta-learning

  • epoch학습과 메타러닝의 차이
구분Epoch 학습Meta-learning
데이터하나여러 task
목표정확도 ↑적응 속도 ↑
일반화같은 task새로운 task
  • 한 번의 학습으로 끝내는 게 아니라 여러 task를 통해 학습 능력을 일반
    • 쉽게 말해 문제를 푸는 게 아니라 문제 푸는 방법을 배우는 것
  • 2단계 학습
    • Inner loop (task 학습) : 각 task에서 모델 학습
    • Outer loop (meta 학습) : 어떻게 학습할지 업데이트
  • inner learning은 outer learning에 의해 파라미터화되거나 조건화되거나 혹은 다른 방식으로 영향 받을 수 있음

  • 내부 파라미터(ex. 시냅스 가중치): 내부 학습 과정에서 변화

  • 외부 파라미터 또는 메타 파라미터(ex. 유전자): 외부 학습 과정에서만 변화

  • N-BEATS도 메타러닝의 한 사례라고 볼 수 있다 → gradient descent를 통해 학습

  • 내부 학습 과정

    • 기본적인 블록의 집합으로 구성

    • basis 함수 gfg^f의 입력으로 확장계수 θf\theta^f수정

    • 여러 단계로 학습이 이루어지는데, 각 단계는 아키텍처 스택 안의 하나의 블록에 해당

      ① 각 블록은 하나의 업데이트 단계처럼 작동하고

      ② 확장계수 θf\theta^f를 점진적으로 수정하고

      ③ 이 계수들은 각 블록에서 gfg^f에 입력되어 최종적으로 합쳐져 예측 생성

  • 해석 가능한 모델의 경우 gfg^f가 고정되어 있어 메타 파라미터는 FC레이어에만 존재

    ↔ Generic 모델은 gfg_f를 정의하는 행렬V 역시 학습되므로 이 또한 메타 파라미터에 포함됨

  • 스택 내 블록 수나 스택의 개수를 증가시키면 일반화 성능이 향상되는 이는 내부 학습 과정의 반복 횟수 증가로 해석 가능


7. Conclusions

  • 핵심 가설
    • 시계열 도메인 지식 없이도 순수 딥러닝 접근이 다양한 단변량 시계열 예측 문제에서 매우 뛰어난 성능을 낼 수 있다.
    • 딥러닝 모델에 추가적인 제약을 가함으로써, 예측을 사람이 이해 가능한 구성 요소로 분해하도록 만들 수 있다.
  • 또한 딥러닝 모델이 여러 시계열을 동시에 학습하는 멀티테스크 방식으로 학습할 수도 있고, 이 과정에서 개별 시계열 간의 학습 내용을 효과적으로 공유할 수 있음!
  • 이 모델이 성능이 좋은 이유는 meta-learning과 유사한 과정을 수행하기 때문일 것이고 추후 더 깊은 분석을 하겠다.

0개의 댓글