体系 › 時系列データ系
·無料·論文·13分で読めます

時系列にTransformerは効くのか — 論争と実務の答え

1層の線形モデルが当時の時系列Transformer群を上回った2022年の論争から、パッチ化で反撃したPatchTST、軸を転置したiTransformerまで。原因は注意機構ではなくトークンの切り方でした。それでも実務のコンペを勾配ブースティングが取り続ける理由も、データの形の違いから説明します。

対象textタスクforecasting

Are Transformers Effective for Time Series Forecasting?


「1層の線形モデルに負けた」という事件

Transformerは言語を制圧し、画像へ渡り、音声へ広がりました。次は時系列だろう——そう考えるのは自然です。2021年から2022年にかけて、Informer、Autoformer、FEDformerといった時系列専用の亜種が次々と発表され、標準ベンチマークの記録は毎年塗り替えられていきました。

そこへ2022年、身も蓋もないタイトルの論文が出ます。"Are Transformers Effective for Time Series Forecasting?"。著者らが対抗馬に立てたのは、注意機構も層の重なりもない、入力から出力へ一発で写す線形写像1枚でした。それが標準ベンチマークの大半で、当時のTransformer系を上回ってしまった。

面白いのは、これが「深層学習の敗北」の話ではないことです。悪かったのは注意機構ではなく、時系列をTransformerに食わせるときのトークンの切り方でした。しかも正しい切り方が見つかった後ですら、実務のコンペは勾配ブースティングが取り続けている。この記事はその3段構えの話です。

なぜ「効きそう」に見えたのか

動機は筋が通っています。時系列予測の基礎で見た伝統的な弱点が、そのまま自己注意の得意分野の裏返しだからです。遠い過去に届かない——再帰型は記憶を1ステップずつ受け渡すので365ステップ前は途中で薄まるが、自己注意は距離に関係なく1回の内積でつながる。並列化できない——再帰型は前の時刻が終わるまで次へ進めないが、注意は全時点を同時に処理できる。多変量の絡み合いを人手で書けない——気温・価格・在庫・曜日のどれがどれに効くかを、注意なら学習で決められそうに思える。

反証: 線形1層で足りてしまう

DLinearは拍子抜けするほど単純です。入力を移動平均で滑らかにしてトレンド成分を取り出し、元の系列から引いた残りを季節成分とする。あとはそれぞれに、長さ LL の入力を長さ TT の出力へ写す行列を1枚ずつ掛けて足すだけ。

y^=Wtrend xtrend+Wseasonal xseasonal\hat{y} = W_{\text{trend}}\, x_{\text{trend}} + W_{\text{seasonal}}\, x_{\text{seasonal}}
(1)

xtrendx_{\text{trend}} は移動平均で取り出したなだらかな成分、xseasonalx_{\text{seasonal}} はそこから外れた振動ぶん、WW は T×LT \times L の重み行列です。つまり「過去 LL 点それぞれに定数の重みを付けて足し、未来の各点を作る」だけで、非線形性もゲートも注意もない。パラメータは 2×T×L2 \times T \times L 個、Transformer側と桁が2〜3つ違います。

なぜこれで足りたのか。説明は3つあります。

1. 自己注意はそもそも順序を見ない。 中身は全ペアの内積と重み付き平均であって、位置符号を足す前なら入力を並べ替えても出力が並べ替わるだけです。言語ではそれで足りました。単語自体が意味を持つので、順序は補助情報だからです。ところが時系列では順序が情報のほぼ全部で、数値の集合 {12, 15, 19} に意味はなく「12→15→19と上がってきた」ことだけが意味を持つ。順序を後付けする設計は、この種のデータと相性が悪いわけです。

2. 1時点はトークンとして情報が薄すぎる。 Attention機構の本質は、QueryとKeyの内積で意味の近さを測ることでした。ところが1時点の観測値はスカラー1個です。線形射影して数十次元にしても増えたのは見かけの次元だけで、こうして作ったベクトル同士の内積は、意味の近さではなくほぼノイズを測ります。

スコアに差がつかないとどうなるか。softmaxは差を割合に変える装置なので、横並びのスコアからはほぼ一様分布が出ます。全時点を等しく混ぜる——ただの移動平均です。何層積んでも注意層が移動平均を繰り返しているなら、移動平均を明示的に持つ線形モデルに負けても不思議はありません。

FIG 1温度を上げるとスコアの差が潰れ、分布は一様に近づく。1時点をトークンにした注意で起きていたのはこれで、重みが横並びになった注意層は「全部を等しく混ぜる=移動平均」に退化する

3. データが3桁足りない。 標準ベンチマークの系列は長くても数万点で、言語モデルが読む兆単位とは3〜4桁違います。表現力で勝つには表現力を埋めるデータが要る。小さいデータでは、強い帰納バイアス(あらかじめ組み込まれた構造の仮定)を持つ単純なモデルが有利です。「トレンドと季節に分けて線形に足す」は、時系列に対するかなり良い仮定でした。

本当の問題は「トークンの単位」だった

思い出したいのが画像です。Vision Transformerは1ピクセルを1トークンにしませんでした。トークン数が爆発しますし、そもそも1ピクセルの値に「猫らしさ」の情報がない。16×16のパッチにまとめて初めてトークンが意味の単位になり、内積が意味を持ちました。時系列でも同じで、1時点をトークンにするのは1ピクセルをトークンにするのと同じ誤りだったのです。

PatchTST: パッチに切り、変量を分ける

2023年のPatchTSTは、この診断に対する直接の処方箋です。部品は2つしかありません。

パッチ化。 長さ LL の入力を、長さ PP の窓でずらし幅 SS ごとに切り出し、その PP 個の値をまとめて1トークンにします。トークン数は

N=⌊L−PS⌋+1N = \left\lfloor \frac{L - P}{S} \right\rfloor + 1
(2)

です。LL が入力長、PP がパッチ長、SS がずらし幅、NN が出来上がるトークン数。「長さ LL の列を、幅 PP の窓を SS ずつずらして切ると何枚できるか」という数え上げにすぎません。

効果が2つ同時に出ます。ひとつはトークンが意味を持つこと。パッチ1枚には「上がり調子」「山を越えた」「段差が入った」という局所的な形が入るので、パッチ同士の内積が「似た形か」を測る量になります。もうひとつは計算量で、自己注意はトークン数の2乗に比例するため、トークン数が SS 分の1になれば計算とメモリは S2S^2 分の1です。

FIG 2自己注意はトークン数の2乗で効く。O(n²)とO(n)の差はnが小さいうちは誤差でも、nが伸びれば桁になる。パッチ化がやったのはnそのものをS分の1に縮めることで、2乗の側にいたまま実効コストをS²分の1にする操作だった

もう一段の理由があります。DLinear論文の指摘のひとつは、当時のTransformer系は参照窓を伸ばしても誤差が下がらない——むしろ悪化することがある、というものでした。長い履歴を見せているのに使えていない。パッチ化はトークン数を抑えたまま参照窓を伸ばせるので、この制約が外れます。長期予測でTransformerが本来持つはずだった利点は、ここで初めて現実になりました。

チャネル独立。 もうひとつの部品は直感に逆らいます。多変量(例: 7本のセンサ)なら、素朴には7本まとめて1トークンにして変量間の相互作用を注意に学ばせたくなる。PatchTSTはその逆で、各変量を独立に、同じ重みのモデルへ1本ずつ通し、変量間の注意をかけません。情報を捨てているようで利得が2つあります。7本の系列が7本ぶんの学習事例になり重みが共有されるので実効データ量が増えること。そして変量間の擬似相関に過学習しなくなること——7本のセンサにはたまたま似た動きをしている組が必ずありますが、テスト期間で同じ関係が続く保証はどこにもありません。

実装上の要として、入力窓ごとの正規化(窓の平均と標準偏差を引いて割り、出力側で戻す)も置かれます。時系列は水準そのものが動くので、窓ごとに水準を剥がして形だけを学ぶ。統計量を訓練期間からではなくその窓の中だけで取る点が重要で、これは情報漏洩の予防も兼ねています。

iTransformer: 軸を転置してしまう

2024年のiTransformerは行と列を入れ替えます。これまでは時点(またはパッチ)をトークンにして時間方向に注意をかけていました。iTransformerは1つの変量の全期間の系列を丸ごと1トークンにする。7変量なら7トークンで、注意は変量と変量のあいだにかかり、時間方向は各トークンの中の全結合層が担当します。

PatchTSTの「変量間の注意をやめる」とは正反対に見えますが、根っこでは一致しています。どちらも「1時点=1トークン」をやめた。トークンを意味のある塊に取り直したことが本体で、その塊を時間軸に取るか変量軸に取るかはデータ次第です。

それでも実務のコンペは勾配ブースティングが取る

ここまではすべて学術ベンチマークの上の競争です。実務に近いコンペでは景色が変わります。2020年のM5(Walmartの店舗×商品の日次需要予測)では上位解法の多くがLightGBMを中核に据えた勾配ブースティングでした。2018年のM4は優勝が指数平滑と再帰型ネットワークのハイブリッド、2位は複数手法の重み付けを勾配ブースティングで学習する方式で、純粋な深層モデル単体が勝ったわけではありません。

理由は、実務の時系列がベンチマークと形が違うことです。系列が短く本数が多い——店舗×SKUで数万〜数百万本、1本あたりは数百点。ベンチマークは逆に「数本の非常に長い系列」なので、測っている能力が違います。外生変数が結果を支配する——価格、値引き、販促、祝日、天気。変動の大半はここから来るのに、ベンチマークの多くは過去の自分だけから未来を当てる設定です。0が多い間欠需要では、平均を当てにいく二乗誤差が噛み合いません。そして階層がある(SKU→カテゴリ→店舗→全社)ので、上下の合計を一致させる調整も要ります。

勾配ブースティングはこの形に素直に噛み合います。ラグ、ローリング統計、価格、カレンダー、カテゴリIDを列に並べれば表形式の回帰になり、欠損もカテゴリ変数もそのまま扱え、「価格が閾値を割ると需要が跳ねる」という非線形な段差を木が自然に表す。学習は速く寄与も見え、何より外生変数を足すのが列を1本増やすだけで済みます。

ベンチマークの数字を読むときの注意

長期予測ベンチマークは事実上、ETT(変圧器の温度)・Electricity・Traffic・Weather に予測長 96/192/336/720 を掛けた表に標準化されています。参照窓が揃っていない比較がある——最適な入力長はモデルごとに違うので、片方だけ短い窓で走らせた比較は意味を持ちません。評価の実装差で数字が動く——標準的な実装のいくつかはテスト用データローダで端数バッチを捨てるため、バッチサイズで評価対象数が変わります。正規化統計をどの期間から取るか、分割が1通りだけか、といった細部でも動く。近年のベンチマーク再整備の論文が繰り返し指摘している点で、桁の違う差は信じてよく、小数点以下の順位争いは信じないのが安全です。ベースラインが弱い表を疑う——季節ナイーブ(1周期前をそのまま出す)と単純な線形モデルが無い表は、それだけで警戒に値します。

現場ではこう使う

この判断が要るのは、小売・製造の需要予測、電力・交通の需給予測、クラウドのキャパシティプランニング、金融のリスク推定をやる人たちです。「新しいTransformerが出たので試したい」と言われたとき、何から順に試すかを説明できることが仕事になります。

順番はほぼ決まっています。まず季節ナイーブと移動平均でベースラインを引く。ここに勝てないなら以降は全部無意味です。次に、系列が少数で履歴が長く外生変数が乏しいなら古典手法(SARIMAX、ETS)。系列が多く外生変数が効くなら勾配ブースティング。系列が多く長いホライズンを一気に出したいなら深層モデル。早く当たりを付けたいなら時系列基盤モデルでゼロショットの当て馬を作る。この順序は、上で述べた「データの形」の判定とそのまま対応しています。

触るパラメータも覚えておくと話が早い。PatchTST系なら patch_len(パッチ長)、stride(ずらし幅)、context_length または input_size(参照窓)、d_model、n_heads、窓ごと正規化の on/off。実装は neuralforecast、darts、GluonTS あたりで、どれも h(予測ホライズン)と input_size が最初に効きます。勾配ブースティング側はLightGBMの objective(間欠需要なら tweedie、分位点なら quantile)、num_leaves、min_data_in_leaf、カテゴリ特徴の指定です。

事故はモデルの中より周辺で起きます。

参照窓を揃えずに比較する。 「PatchTSTがDLinearに勝った/負けた」を自社データで検証するとき、片方だけ短い窓で走らせると結論がひっくり返ります。両方をそれぞれの最良付近まで調整してから比べること。

正規化をモデルの外で全期間fitする。 窓ごと正規化は窓の中で閉じているので安全ですが、その前段で StandardScaler を全期間に当てると、テスト期間の統計が訓練へ流れ込みます。最も気付かれにくい漏洩です。

チャネル独立を「変量を捨ててよい」と読む。 これは「変量間の相関がベンチマークでは頼りにならなかった」という経験則であって、価格→需要のように因果がはっきりした関係まで捨てる理由にはなりません。そういう変量は注意に発見させるのではなく、外生変数として明示的に入れるのが確実です。

1ステップ先モデルの再帰で長期予測を作る。 自分の誤差を自分に食わせ続けるので誤差が累積します。長期予測モデルが多出力(direct multi-step)なのはこのためで、学習時と本番でホライズンを揃えるのが原則です。

設計レビューや面接では、「DLinear論争の結論は」「なぜチャネル独立が効くのか」「実務でまず何を試すか」の3点に収束します。答えの筋道は、それぞれ次のまとめのとおりです。

まとめ

次は、事前学習した1つのモデルに未見の系列をそのまま食わせる「時系列基盤モデル」が、どこまでを肩代わりできるのかを見ていきます。

参考文献

  1. Are Transformers Effective for Time Series Forecasting?. arXiv:2205.13504論文ページ·PDF
  2. A Time Series is Worth 64 Words: Long-term Forecasting with Transformers. arXiv:2211.14730論文ページ·PDF
  3. iTransformer: Inverted Transformers Are Effective for Time Series Forecasting. arXiv:2310.06625論文ページ·PDF

本記事は上記論文の本文にもとづいて執筆しています。数値・主張は原典を優先してください。

運営: TechAthletes · 編集方針 · 出典の付け方 · 訂正の記録

コメント

コメントにはログインが必要です