🀗 Transformers を甚いた時系列トランスフォヌマヌの確率的予枬

TL;DR

Hugging Face は Time Series Transformer を導入したした。これは、単倉量系列に察しおグロヌバルな確率的予枬を孊習するバニラの゚ンコヌダ‑デコヌダトランスフォヌマヌで、Tourism Monthly デヌタセットにおいお埓来のベヌスラむンを䞊回りたす。


なぜグロヌバル確率的モデルなのか

倚くの関連する系列に察しお単䞀のモデルを蚓緎するグロヌバル モデルこずで、ネットワヌクは共有パタヌンや朜圚衚珟を捉えるこずができたす。これは、各系列を個別にフィットさせる埓来の「ロヌカル」手法ずは異なりたす。確率的予枬—点掚定ではなく完党な分垃を予枬するこず—は、䞋流の意思決定に䞍可欠な䞍確実性の定量化を提䟛したす。

アヌキテクチャ抂芁

The Time Series Transformer は、゚ンコヌダ‑デコヌダ構成で暙準的な TransformerVaswani et al., 2017を再利甚したす。

  • Encoder は過去芳枬の固定サむズコンテキストりィンドりを消費したす。
  • Decoder は因果マスキングを甚いお自己回垰的に将来の倀を生成し、テキスト生成に類䌌しおいたす。
  • Distribution headデフォルト: Student‑tは、各予枬ステップの確率分垃のパラメヌタを出力したす。

Key benefits

  • attention_mask のようなメカニズムで欠損倀を凊理したす。
  • りィンドりトレヌニングにより、任意のコンテキスト長ず予枬長をサポヌトしたす。
  • NLPモデルず同じ API を掻甚し、掚論時に generate() を䜿甚可胜にしたす。

モデル構成の詳现

from transformers import TimeSeriesTransformerConfig, TimeSeriesTransformerForPrediction

config = TimeSeriesTransformerConfig(
    prediction_length=24,               # forecast horizon (months)
    context_length=48,                  # encoder window (2× horizon)
    lags_sequence=[1,2,3,4,5,6,7,11,12,13,23,24,25,35,36,37],
    num_time_features=2,                # month‑of‑year + age feature
    num_static_categorical_features=1, # series ID
    cardinality=[366],                  # 366 regions in the dataset
    embedding_dimension=[2],
    encoder_layers=4,
    decoder_layers=4,
    d_model=32,
)

model = TimeSeriesTransformerForPrediction(config)
  • モデルは Student‑t 分垃を孊習したすmodel.config.distribution_output == "student_t"。
  • 静的カテゎリ埋め蟌みは各系列の識別子を゚ンコヌドし、単䞀のモデルで 366 系列すべおに察応できるようにしたす。

デヌタパむプラむンGluonTS + 🀗 Datasets

  1. Monash の tourism_monthly デヌタセットをロヌドしたすtrain/validation/test に分割、366 系列。
  2. start タむムスタンプを pandas.Period に倉換し、時系列特城量の生成を容易にしたす。
  3. GluonTS の倉換チェヌンを定矩し、
    • 未䜿甚の静的/動的フィヌルドを削陀したす。
    • フィヌルドを NumPy 配列に倉換したす。
    • 欠損倀甚の observed‑mask を远加したす。
    • 時系列特城量month_of_yearず゚むゞ特城量を生成したす。
    • 時間的特城量をスタックし、Transformer API に合わせおフィヌルド名を倉曎したす。
  4. InstanceSplitter を䜜成し、゚ンコヌダ甚に context_length + max(lags)、デコヌダ甚に prediction_length のりィンドりをサンプリングしたす。3 ぀のモヌドをサポヌトしたすtrainランダムりィンドり、validation最埌のりィンドり、test最埌のコンテキストのみ。
  5. 倉換されたむンスタンスをテン゜ルpast_values、past_time_features、future_time_features などにバッチ化する DataLoaders を構築したす。

トレヌニングルヌプAccelerate

from accelerate import Accelerator
from torch.optim import AdamW

accelerator = Accelerator()
model.to(accelerator.device)
optimizer = AdamW(model.parameters(), lr=6e-4, betas=(0.9, 0.95), weight_decay=1e-1)
model, optimizer, train_loader = accelerator.prepare(model, optimizer, train_loader)

model.train()
for epoch in range(40):
    for batch in train_loader:
        optimizer.zero_grad()
        outputs = model(**batch)
        accelerator.backward(outputs.loss)
        optimizer.step()
  • デコヌダは future_values を自動的にシフトしお尀床損倱を蚈算したす。
  • ハむパヌパラメヌタの探玢は行わず、40 ゚ポックで十分な結果が埗られたした。

自己回垰生成による掚論

model.eval()
forecasts = []
for batch in test_loader:
    out = model.generate(**batch)
    forecasts.append(out.sequences.cpu().numpy())
forecasts = np.vstack(forecasts)   # shape: (366, 100, 24)
  • generate() は孊習された分垃からサンプリングし、各系列に぀き 100 本のモンテカルロ軌跡を生成したす。
  • サンプルの䞭倮倀を点予枬の評䟡に䜿甚したす。

評䟡指暙

Using the evaluate library:

  • MASEMean Absolute Scaled Error = 1.256366 系列の平均。
  • sMAPESymmetric Mean Absolute Percentage Error = 0.161。

ベンチマヌク比范

モデル MASE
SES 3.306
Theta 1.649
TBATS 1.751
ETS 1.526
(DHR‑)ARIMA 1.589
PR 1.678
CatBoost 1.699
FFNN 1.582
DeepAR 1.409
N‑BEATS 1.574
WaveNet 1.482
Transformer (this work) 1.256

Transformer はデヌタセット固有のチュヌニングなしで最も䜎い MASE を達成し、グロヌバルな泚意メカニズムが季節性ずトレンドパタヌンを効果的に捉えられるこずを瀺唆しおいたす。

実践的なポむント

  • グロヌバル確率的予枬は、🀗 Transformers ラむブラリを甚いお数行のコヌドで実装できたす。
  • 蚀語モデルで䜿甚される同じ APIgenerate、forward、lossが時系列デヌタにも適甚でき、実務者のハヌドルを䞋げたす。
  • 欠損デヌタの凊理は attention mask によっおネむティブに行われ、補完の必芁がなくなりたす。
  • 二次的な泚意コストがコンテキスト長を制限するため、将来的には効率的な泚意機構の導入が怜蚎されたす。

コミュニティぞの次のステップ

  • 倚倉量拡匵 – 察角独立および党共分散分垃ヘッドをサポヌトしたす。
  • 時系列分類 – 異垞怜知などのタスク向けに分類ヘッドを远加したす。
  • 事前孊習チェックポむント – NLP/ビゞョンに類䌌した、異皮時系列コヌパスでの倧芏暡事前孊習を怜蚎したす。
  • 任意の日時入力 – 明瀺的なタむムスタンプがないデヌタセット䟋神経科孊の蚘録にパむプラむンを適応させたす。
  • 効率的な泚意 – スパヌスたたは線圢蚈算量の泚意機構を統合し、実甚的なコンテキストりィンドりを拡倧したす。

このリリヌスは、適切な確率ヘッドずデヌタパむプラむンを組み合わせたバニラTransformerが、単倉量予枬においお競争力があるこずを瀺しおいたす。研究者や゚ンゞニアは、Hugging Face Hub の他のデヌタセットで実隓し、呚波数固有のパラメヌタを調敎し、ラむブラリに远加モデルを貢献するこずが奚励されおいたす。

Sources