🦁

時系列基盤モデルへ①:MOMENT【論文】

2024/05/24に公開

MOMENT: A Family of Open Time-series Foundation Models (ICML2024)

ICML2024の採択論文は以下のページから確認できます.

https://icml.cc/virtual/2024/papers.html?filter=titles

図や表はことわりのない限り以下の論文からの引用です.

書籍情報

Goswami, M. Szafer, K. Choudhy, A. Cai, I. Li, S. Dubrawski, A. MOMENT: A Family of Open Time-series Foundation Models. International Conference on Machine Learning, 2024.

関連リンク

はじめに

今回は時系列に対する基盤モデルのひとつであるMOMENTを確認します.

機械翻訳タスクで導入されたTransformerは時系列タスクにも導入されています. しかしながら, Transformerの性能がNLP分野ほど発揮されているとは言えないのが現状です. 例えばAre transformers effective for time series forecasting?という有名な論文では, 非常にシンプルな線形モデルでこれまでの時系列Transformerより優れた結果を残しています. それに加えてこれまでの時系列Transformerベースのモデルではself-attentionの計算量削減に重きを置いていましたが結果として追加モジュールによってかえって計算量が増大していることまで示唆されています.

それに対してHuggingFaceのブログYes, Transformers are Effective for Time Series Forecasting (+ Autoformer)では単変量という条件付きではTransformerの方がいいと反論しています. さらに, 多変量では大規模なデータセットがないことが原因と述べています. このように, 時系列タスクでは予測というサブタスクひとつとっても一概にTransformerが強いと言える状況ではありません.

ところで, 最近は基盤モデルが主流です. 基盤モデルは大規模なデータで訓練されているために基礎的な能力を獲得してるとされています. 例えば言語を記述する能力ですとか, 画像に写ったいるものを認識する能力といったものが挙げられます. LLMやStable Diffusionが代表例ですが, 時系列データに対してはそのまま適用してもイマイチな結果です. それは時系列データが言語などとは異なるドメインだから, あるいは学習していないからと考えられると思います. そこで, 時系列データに特化した基盤モデルの開発が望まれます.

基盤モデルと謳うからには大規模なデータセットで学習されます. そして, 大規模なデータセットで学習するということはTransformerのメリットを引き出せる可能性が大いにあります.

ここでは, MOMENTがどのようにして基盤モデルとなったかを扱います.

  1. 事前学習データ
  2. モデルのアーキテクチャと事前学習
  3. 下流タスクでのfine-tuning

事前学習データ

画像や自然言語の世界ではImageNetやThe Pileといった巨大なデータセットがあります. それらはアクセスも容易なために広く使われています. しかし, 時系列にそのようなものはありません. そこで著者らは, 公開されているデータからいろいろなものを収集してデータセットを新たに構築しました. このデータセットをThe Time-series Pileと名付けています. ここではどのようなデータを集めたかまで記述されているのでそれを確認します. データの収集場所は4つです.

Informer long-horizon forecasting datasets

Informerという論文では, long-horizon forecastingで広く使われている9つのデータを集めていました. EET (hourlyとminutelyが2つずつで4つ), Electricity, Traffic, Weather, ILI, Exchange-rateです.

Monash time series forecasting archive

58のshort-horizon forecastingのデータセットです. 100Kを超える時系列で幅広いドメインや時間分解能を持ちます.

UCR/UEA classification archive

分類タスクでよく用いられている159の時系列データで構成されています. 7つのカテゴリから成り立っていてクラス数やデータサイズが大きく異なります. 7つのカテゴリとはImage Outline, Sensor Readings, Motion Capture, Spectrographs, ECG, Electric Devices, Simulated Dataです.

TSB-UAD anomaly benchmark

過去10年に提案された18の異常検知データセットからラベル付き異常を含む1980個の単変量時系列を集めたものです. 人体, 宇宙船, 環境やWebサーバなど, 幅広いドメインを扱っていますが合成データも含まれています.

さて, これらを集めたのはいいですが, 機械学習ではtrain/val/testにデータを分けるのが一般的です. どのように分ければいいでしょうか. これはタスクによって分け方を変えるしかありません.

タスクによって分け方を変えるとは言っても2つの分け方しか使いません. これはタスクによっては時系列が短い可能性が多分にあるためです. 図を見れば一目瞭然なので特に追記することはありませんが, この論文では常にrandom seedを13にしてリークを防いでいます.

アーキテクチャ

データを集めたので訓練させたいですが, どういったアーキテクチャや訓練方式を採用するかがまだ決まっていないのでその部分を確認します.

詳しいことは後述するのですが, Masked Time series Modelingを訓練方式とします. そのため, モデルは単変量時系列 \mathcal{T}\in\mathbb{R}^{1\times T} とマスク M=\{0, 1\}^{1\times T} を受け取ります. その後, 長さ PN 個のパッチに分割します. 各パッチは D 次元の埋め込み表現にします. この変換は訓練によって学習する線形変換を使用します. その後, Transformerモデルに入力します. これを図にすると以下のようになります. モデル自体は非常に単純なTransformerを並べたものです.

時系列データはその系列長が様々ですが, MOMENTの入力では T=512 の単変量時系列に制限します. そうすることで可変長への対応を実現します. これより長い時系列ではサブサンプリングし, 短い時系列ではzero-paddingを行います. さらに, 時系列をパッチ分割することで計算量削減を図ります. パッチの次元に沿って各チャネルを独立に操作することで多変量時系列も扱うことが可能になるので入力を単変量としても問題ありません. この戦略は例えば One Fits AllPatchTSTで有効だとわかっています. 最後にインスタンス正規化を行い, 時系列をre-scalingとcenteringすることで時間分布が大きく異なるデータでもモデリングすることができます. これはRevINで採用されているものです.

NLPでのTransformerの設計に従うことでNLPでの実装の成果 (例えばgradient checkpointingやmixed precision training)を流用できます.

通常はEncoderと同じサイズのDecoderを用いますが, MOMENTではその代わりに軽量なPrediction Headを用います. これを用いることでEncoderのパラメータはそのまま, Headだけ交換すれば下流タスクに適用可能です.

Pre-training using Masked Time series Modeling

事前学習ではMasked Time-series Modelingを用います. 訓練中は, まずごく一部のパッチをランダムにマスクし [MASK]埋め込みに置き換えます. この埋め込みは学習可能なものです. すると壊された時系列パッチができあがります. それをTransformerのencoderに入力し, パッチの表現を学習します. ほとんどMaksed Language Modelingと同じです. 目的関数はマスクされたパッチ全体のMSEです.

実験では3つの異なるサイズのMOMENTを学習します. おおよそT5-Small, Base, Largeに相当するサイズで設定は以下の表に従います.

Small Base Large
Layers 6 12 24
D 512 768 1024
Heads 8 12 26
FFN size 2048 3072 4096
#params (M) 40 125 385

事前学習前に重みをランダムに初期化します. 全ての設定で T=512, N=64, P=8 とし, 30%のパッチをマスクします.

モデルはAdamで最適化します. ハイパーパラメータは \lambda=0.05, \beta_1=0.9, \beta_2=0.999 です. 勾配は5.0でclippingし, batch sizeは2048です. 学習率は 1e-4 から 1e-5 まで減少するcosine schedulerを使用します. また, gradient checkpointingとlayer normなどの不安定な演算ではfloat32を, 安定な演算ではbfloat16を用いる混合精度の学習を行います. 全てのモデルで2 Epoch学習します.

何も紹介しないと新規手法のように聞こえてしまいますが, Masked Time series Modeling自体も例えば以下のような論文で採用されています.

https://openreview.net/forum?id=ginTcBUnL8

下流タスクでのfine-tuning

5つの時系列タスクを考えます.

  • long horizon forecasting
  • short horizon forecasting
  • classification
  • anomaly detection
  • imputation

予測タスクではreconstruction headを置き換えます. それ以外では保持します. N 個の D 次元のパッチ埋め込みを N\times D のベクトルに平坦化し, 線形射影をもって H 次元の時系列にして予測を行います.

実験設定

基本的にはTimesNetでのベンチマークを拡張したものを用います.

上の表に示されるように, 実用的価値の高い5つの主要な時系列モデリングタスクから構成されています. 計算資源の都合でDNNを更新することができない状況や, データが不十分な場合のみを考慮します. 従って, MOMENTでは可能な限りzero-shotでの評価をし, そうでない場合は数エポックのみの学習とします.

分類タスクでは, 教師なし表現学習を考えます. 先行研究に従って時系列の表現の質はSVMを用いて測定します.

評価指標はlong horizon forecastingではMSEやMAE, short horizon forecastingではsMAPEなどのタスク固有の指標を複数用います. TimesNetやGPT4TSでは時系列の逐次性を無視したvanilla F1で評価していますが, ここではadjusted best F1 scoreやVUS-ROCを用いて異常検知の性能を確認します.

ベースラインはdeepなものからdeepでないものまで含みます. 最近の研究では直近のTransformerベースの手法のみと比較されているのでその中で性能がいいと主張しているだけだと著者らは主張したいのだと思います.

ハイパーパラメータチューニングは行いません. 特に言及がなければ, batch sizeは64でMOMENT-Largeをfine-tuningし, 5e-51e-3 の間のピーク学習率で1サイクルの学習率スケジュールを用います. ベースライン手法については、その論文や公開リポジトリから推奨される設定を使用しています.

実験では以下の3つの疑問に対する答えを探求します.

  1. MOMENTの有効性: 通常の論文同様性能が出るかどうかを確認します.
  2. 解釈可能性: MOMENTが振幅や頻度といった直感的な特性を捉えることができているかを確認します.
  3. 特性: LLMのような特性があるかを確認します (例. スケーリングなど).

実験結果

1. 有効性

まずは, long horizon forecastingについて結果を見てみます.

最良スコアがboldになっていないので見難いですが, 全体的に最高性能に近い結果 (PatchTSTに次ぐ性能)であることがわかります. LLMベースのモデルであるTimeLLMやGPT4TSより性能いいです. 特筆すべき点としてN-BEATSが近年の主要な手法より高性能です. これは, 表データ生成でGANベースのモデルよりSMOTEの方が高性能なことに似ています.

続いて, short horizon forecastingの結果をみます. 評価指標はsMAPEです.

boldはARIMAを上回る結果になっています. 基盤モデルということで, 個々のデータに即したモデルよりは若干劣る点があります. こちらの場合でもThetaやETSなど, deepなモデルより性能が良い場合があります.

続いて, 分類タスクの結果を見ます.

ここではMOMENTをfine-tuningしていませんが, 5番目のスコアであることがわかります.

異常検知の結果を確認します.

\texttt{MOMENT}_\texttt{O} はzero-shot, \texttt{MOMENT}_\texttt{LP} は予測ヘッドのみをfine-tuningしたものです. どちらの指標でもzero-shotでGPT4TS, TimesNetと同等程度, fine-tuningで上回る性能を発揮しています. VUS ROCでは k-NNの方が強いですがAdj. F_1 ではそうではなく, 両方の指標でバランスが取れているのが提案手法です.

最後に, imputationの結果を見ます.

fine-tuningするとETTでは最高性能が出ています. zero-shotでも統計的手法より高性能です.

これまでの結果からわかるように, zero-shotではある程度の性能が出ていて, fine-tuningを行うことで最高性能になるという結果で, 十分基盤モデルとしての可能性はあるのではと思います.

2. 解釈可能性

MOMENTはどのような特性を捉えているのでしょうか. 以下のように正弦波に色々手を加えたデータを用意します.

このデータに対して, PCAで可視化してみます.

ここから, 時系列のトレンドや振幅, 周波数, 位相といった特性は捉えられていることがわかります. しかし, 垂直方向のシフトは捉えられないことがわかります. これは, MOMENTに入力する前に各信号を正規化するためと考察されています.

また, 表現学習をしていますのでzero-shotの設定で埋め込み表現を可視化します.

これを見ると, 訓練中はlabelにアクセスできないにも関わらず, 異なるクラスを明確に学習していることがわかります.

3. 特性

モデルサイズを大きくすることで, training lossが減少することが確認できます. 特にモデルサイズによる下流タスクのzero-shot性能の比較やVal lossのグラフは見当たらないので汎化性能が上がっているとは言えないと思いますが, 性能はおそらく良くなるのではないかと思います.

他にも, Pretrainedなlanguage (vision) transformerがfine-tuningすることで他のモダリティのシーケンスに適用できることが知られています. これに倣ってMOMENTがimage, text, binaryの系列分類を行うことができるかを確認します. self-attentionとFFNを固定することで, GPT-2やFlan-T5と同等の性能を得られています. 述べられていませんが, おそらくsMNIST, sCIFARなのではと思います (pMNISTの場合も考えられるのでちゃんと述べるべきだと思います). S4の実験結果でもTransformerベースのモデルはsMNISTが98.9, sCIFARが62.2というスコアだったので妥当な結果だと思います.

また, どのように重みを初期化するかという点も考えるポイントとなります. 実験では, 十分なデータがあるという条件のもとではfrom scratchで事前学習を行った方が性能が良いことがわかりました.

まとめ

  • 時系列基盤モデルとなりうるMOMENTの提案
  • 時系列基盤モデル開発を促すためのデータセットであるThe Time-series Pileの提案と公開
  • LLMで見られるような諸特性が観察された
  • deepでない手法もdeepな手法と競争力のある場合がある

思ったこと

  • 図表のリンクが適切でなかったり (p29のE.6.), そもそも参照されていない表があったり (Tabs 4, 9), Appendix B, F, Gの本文が全くないなど (例えばAppendix BはTable 9のみの内容だとはわかりますが, この表で何が言いたいかは本文にも書くべきだと思います.)など, 気になるところがいくつもあります (他にもありますが, 文章が長くなるのでこれくらいにします).
  • 時系列の基盤モデルを作るという試みは最近成果が出始めているところであり, 非常に挑戦的な内容でいいと思います. 昨今はデータ非公開であることが多いので, 収集した場合であってもデータセットを公開している部分は好印象です.
  • かなりやっていることは既出のものなので, 特に新規性という点では薄いのかなと思います. パッチ化やmasked modelingはrelated worksなどで触れられているように先行研究がありますし, Transformerの構造自体もごく普通のものです. データを集めて実験したという点が評価されているのでしょうか.

参考文献

  • One fits all: Power general time series analysis by pretrained LM. In Thirty-seventh Conference on Neural Information Processing Systems, 2023. URL https://openreview.net/forum?id=gMS6FVZvmF.
  • Nie, Y., Nguyen, N. H., Sinthong, P., and Kalagnanam, J. A time series is worth 64 words: Long-term forecasting with transformers. In The Eleventh International Conference on Learning Representations, 2023. URL https://openreview.net/forum?id=Jbdc0vTOcol.
  • Kim, T., Kim, J., Tae, Y., Park, C., Choi, J.-H., and Choo, J. Reversible instance normalization for accurate time-series forecasting against distribution shift. In International Conference on Learning Representations, 2022. URL https://openreview.net/forum?id=cGDAkQo1C0p.
  • Wu, H., Hu, T., Liu, Y., Zhou, H., Wang, J., and Long, M. Timesnet: Temporal 2d-variation modeling for general time series analysis. In The Eleventh International Conference on Learning Representations, 2023. URL https://openreview.net/forum?id=ju_Uqw384Oq.
  • Goswami, M. Szafer, K. Choudhy, A. Cai, I. Li, S. Dubrawski, A. MOMENT: A Family of Open Time-series Foundation Models. International Conference on Machine Learning, 2024.
  • Gu, A. Goel, K. Re, C. Efficiently Modeling Long Sequences with Structured State Spaces. In International Conference on Learning Representations, 2022. URL https://openreview.net/forum?id=uYLFoz1vlAC.

Discussion