📖

時系列データ分析 論文解説①「 Transformersは有効? 」

に公開

本記事の動機

かなり久しぶりの開発ブログです。

金融時系列データを使った学習を開始しようと考えています。その体系的な理解を求めて ChatGPT と会話していたところ本論文に出会ったので、自分の理解の整理を兼ねて紹介しようと思います。

余談ですが、論文の理解は本当に楽に時代になりました。以前は、Githubなどの公式実装が無いとほぼ諦め状態で、仮にあったとしても理解のためには論文とにらめっこしながらコードを読んだり走らせたりという作業が必須でしたし、さらに分からない数学的な内容なども追加で調べる必要がありました。しかし今はChatGPTを始めとするLLMがあるおかげで、自分が納得いくまで無限に質問を繰り返す事ができ、効率的な理解が可能になりました。

本記事もそんなLLMの助けを十二分に借りていますが、あくまで私が理解した内容をベースに記載します。

論文

Are Transformers Effective for Time Series Forecasting?
論文: https://arxiv.org/pdf/2205.13504
Github: https://github.com/cure-lab/LTSF-Linear

概要

タイトルにもある通り、Transformer は本当に時系列データに対して有効か? という問いに対して、非常にシンプルな線形ベースのモデルを基に検証を行う。結果としては、既存の複雑なTransformerモデルより、シンプルな線形モデルの方が一貫して良い結果であった。

用語

  • LTSF
    long-term time series forecasting. 長期時系列予測
  • IMS
    iterated multi-step ( forecasting ). 逐次的多時系列点予測。
    i時点の予測値を入力して、i+1時点の予測を逐次的に行う行為。
  • DMS
    direct multi-step ( forecasting ). 一発多時系列点予測。IMSとは対照的に、複数の時系列点に対して1度の出力で予測する行為。

疑問点と前提条件

本検証の動機である、Transformer が時系列データに対して有効なのか? という問いの元になった疑問は以下です。

  • Self-Attention は各時系列との意味的相関を抽出するのは優れているが、本質的にはその入力順序に依存しない。様々な種類の Position Encoding を用いているが、時間情報の喪失は避けられないはず。NLP のような、文章のいくつかの単語を入れ替えても全体の意味としては保存されやすいドメインでは問題ないが、時系列データ解析では時系列点の入れ替えはクリティカルだ。

  • 以前の論文ではIMS予測が基本であるが、これは LTSF 問題において重大な誤差蓄積の影響を受ける(逐次的に予測するため、少しの誤差がその後の予測において大きく伝播する)。なので、足並みそろえてDMSで検証する。

検証

検証用モデル

検証のためのベースラインとして、次の3つのモデルを用意します。

LTSF-Linear

https://github.com/cure-lab/LTSF-Linear/blob/0c113668a3b88c4c4ee586b8c5ec3e539c4de5a6/models/Linear.py#L26-L35

Channel 次元とは、例えば金融データで言うと、通貨A価格, 通貨B価格, ... にあたります。ある時系列点にある特徴量次元です。各通貨価格毎に、それぞれのLinear層を適用して計算するモデルです。

DLinear

https://github.com/cure-lab/LTSF-Linear/blob/0c113668a3b88c4c4ee586b8c5ec3e539c4de5a6/models/DLinear.py#L72-L81

移動平均項(trend_init) と 残差項(seasonal_init) に分けて、それぞれを別々に予測し、足し合わせています。移動平均項の導出は以下の絵で、端は同じ値でパディングして、kernel size のウインドウ幅で平均を取っています。

残差項は移動平均項をもとの入力から引いた値です。

NLinear

https://github.com/cure-lab/LTSF-Linear/blob/0c113668a3b88c4c4ee586b8c5ec3e539c4de5a6/models/NLinear.py#L26-L38

こちらは、最後の値(時系列的に一番直近の値)を全体から引いた差分を入力として、最後の値からの差分をそれぞれ予測しています。

DMS予測

補足として載せますが、DMS予測は一度の出力で複数の時系列点に対して予測する行為です。

検証方法

データセットは論文参照。

AutoFormer などの各種モデルは、出力された [B: Batch, L: Length, D: D features] から pred_len (つまり予測対象の時系列長)分だけ直近の値をとってきている模様。

https://github.com/cure-lab/LTSF-Linear/blob/0c113668a3b88c4c4ee586b8c5ec3e539c4de5a6/models/Autoformer.py#L113-L121

評価方法は Mean Squared Error (MSE) と Mean Absolute Error (MAE)。

Optimizer は Adam。
https://github.com/cure-lab/LTSF-Linear/blob/main/exp/exp_main.py#L46

損失関数は MSE。

https://github.com/cure-lab/LTSF-Linear/blob/main/exp/exp_main.py#L50

結果

各種データセットでの評価結果。本論文で比較した Linear, DLinearm NLinear が基本的に良い結果となっています。

以下は実際の出力予測例。

以下は、720step の長期予測を、入力時系列長を変えながら検証した結果。評価値は小さいほど良いので、下に行くほど良い結果です。

考察や補足

本論文の位置付け

2025年8月現在は、LLM や IDE ( Claude code や Cursor など ) の盛り上がりがすごい時期です。本論文は2022年8月の論文ですが、当時は拡散モデルによる画像生成AIの盛り上がりがすごい時期だったといえます。現在のようなLLMの精度は当然まだありませんが、とはいえ、基本構造となる Transformer は今と大きく変わらないでしょう。

この論文の反響というと、ChatGPT曰く、Transformer に一石を投じたという事もあり、大きな反響があったそうです。公式HuggingFaceからの反論や、後継 Transformer モデル への影響(構造やベンチマークでの線形モデルの登場)、2011 という被引用数 (2025/08/26現在)、などなど。

時系列予測といえば Transformer がスタンダードですが、それらを考える上でのベースといえる論文ではないかと思います。

結果に対する考察

あらゆるモデルの論文は、当然ですがモデルの中身にフォーカスします。画像や自然言語といった特定ドメインの場合は、モデル構造で性能が変わるのはもっともだといえますが、時系列データのような特徴量が幅広いものに対しては、どうなんだろうという気持ちです。

本論文でもDLinearやNLinearなどがありますが、その中身は移動平均や残差項であり、それって事前に作って特徴量に加えればよくない? と思ってしまいます。

また感覚的に、Transformer は自然言語や画像の領域でも凄まじい性能を発揮しており、そういった優れた構造が単なる線形モデルに負けるというのは色々と条件が違うのでは? という気持ちです。そもそもデータ量が少ないのに Transformer 使うのは力が発揮できなかったり、複雑な Transfomer 派生モデルよりもピュアな Transformer でも比較してほしかったり、そもそも学習が難しい Transformer では入力の値の正規化などもっと気を付けないといけない、などなど。

とはいえ、シンプルイズベストだよね、というのはやはり常に念頭におかないといけない思想であり(自身の信仰でもある)、それを標準の比較として復帰させたという意味では、大変意味のある論文ではないかと思います。

Discussion