渋谷駅前で働くデータサイエンティストのブログ

元祖「六本木で働くデータサイエンティスト」です / 道玄坂→銀座→東京→六本木→渋谷駅前

「機械学習で時系列予測はできるのか」論議がTransformerと共に帰ってきた

先日、こちらのポストをお見かけしました。

なるほど、NN全盛というかNN一択の時代にあっては時系列予測もNNでやるのが当たり前になったのだなという感想でした。大昔「沖本本」で古典的な計量時系列分析を一通り学んだ身としては隔世の感がありますが、これもまたNN時代の趨勢なのでしょう。



なお、元論文2点は上記リンクから辿れます。ただし、Slideshareのまとめを読んだ方が分かりやすい(というか論文自体は短くて素っ気ない)と思いますので、どちらかというとまとめの方を参照された方が良いでしょう。


……ただ、個人的な感想を書いてしまうと「ああまた相変わらず同じテーマで使うML技法を変えて堂々巡りしているな」と思ったのも事実です。そこで今回の記事では、過去に同様の議論をした際のポイントをおさらいしつつ、改めて「Transformerで時系列予測を行うのは是か非か」について論じてみようと思います。なお、僕はTransformerについてはど素人を通り越して「知ったかぶりが出来ているかどうかも怪しい」レベルの理解しかありませんので、完全なデタラメを書いている可能性が自分でも否定できません。ということで、誤りや理解不足などの点があれば是非ご指摘いただけると有難いですm(_ _)m

「Transformerよりもただの線形自己回帰の方が時系列予測に強い」という論文


今回話題を呼んだ論文Zeng et al. (2022)は、単変量時系列の予測に対して4種類のTransformer NNと3種類の単純な線形回帰(移動平均や自己回帰などを使った1層の線形モデル)の4種類の予測モデルを用意し、幾つかの典型的な非線形時系列データの予測を行わせてみた結果を比較したものです。


その詳細がFigure 3に出ていますが、これが面白いくらい「Transformer NNたちがことごとくただの線形回帰に予測精度で負けている」んですね。代表的なデータセット3つにおける実験結果がここでは紹介されているわけですが、物の見事にTransformerは状態変化(しかも予測開始点よりもずっと手前のもの)や周期性やトレンドに追従できていないどころか明後日の方向に飛んでしまっているものが多く、まだ惰性で微妙に外した感じの予測を示している線形回帰の方が精度という点では上回っているという惨憺たる結果になっています。


これに対してHugging Faceがブログで「そんなことはない」という趣旨の考察を展開していたようですが、僕が斜め読みしてみた感想としてはあまり本質的な議論ではないところにこだわっているという印象でした。というより、「それはTransformerそのものの擁護になっていないのではないか」という論旨展開が目立つように感じました。どちらかというと「その議論は計量時系列分析分野で散々言われてきた話なので何が新しいのか良く分からない」と言った方が良いかもしれません。


時系列のドリフトは機械学習では扱いづらいのか


4年前の記事でも簡易的なシミュレーションをもとに考察したことがありますが、今でも基本的には大半の機械学習モデルはNNであろうとそうでなかろうとある程度「平均回帰的なパート」を学習&予測の対象としており、トレンドや周期性などの「系列相関的なパート」は扱いづらいままだと見て良いかと思います。その点で、ARIMAモデルのように平均回帰的なパート(線形自己回帰)と系列相関的なパートをあらかじめ分離し、別々に扱うことで予測性能を確保する計量時系列分析的なアプローチが生き残る余地があったのでしょう。


一方でHugging Faceのブログ記事でも指摘されているように、最近の時系列機械学習モデルはそれらの系列相関的なパートを分離して別に扱う工夫がされており、その上でTransformerのように時系列データを遡って特徴的なサンプルをattentionで捉え、予測に活かすというアプローチが取られてきたように見えます。4年前の記事を書いた際にも、いくつかそのようなコメントをいただいたものです。


しかしながら、今回のZeng et al. (2022)の実験結果を見る限りでは、Transformerは時系列にありがちな状態変化やドリフトに対して「追従すべきところで追従できない」「平均回帰すべきところで平均回帰できない」という結果になっています。これはHugging Faceブログでも指摘されているように「サンプルサイズが十分に大きければ解決できるはず」なのかもしれませんが、他方で現状のサンプルサイズでもただの線形回帰の方がマシな結果を返していることを考えれば良いdefenseとは言えないように思います。


Transformerに固有の問題があり得るのか


ここからは僕個人の憶測というか妄想ですが、例えばただの線形回帰なりARIMAや状態空間モデル系の線形自己回帰モデルたちなら「ある程度のタイムラグ幅まで過去に遡って学習できる限りは個々の自己回帰係数が互いに対等に推定されるので『これまでのトレンドは(途中ドリフトや状態変化があればそれ以降のトレンドは)今後も続く』という一般的な時系列データの性質にバランス良く追従できる」ということなのでしょうが、これがTransformerになると「attentionが過去サンプルの重要性にバラバラに重みづけをかけてしまうためにサンプルサイズが小さいと容易に過学習してしまいドリフトや状態変化があると追従できない」ということなのかもしれません。


それが、上の方で挙げたFigure 3にも如実に現れているように見える気がします。例えば(a)では「途中の状態変化(レジームスイッチ)後は平均回帰的」という元データの挙動に対して、線形回帰だけがレジームスイッチ+平均回帰という予測をしており、Transformerはレジームスイッチを無視して平均回帰だけさせています。(b)では「一定の(下降)トレンド+途中でインパルス」という元データの挙動に対して、線形回帰だけが一定下降トレンドという予測をしているものの、Transformerは何故か平均回帰させてしまったり直前の僅かな落ち込みに過学習して階段状の急激な下降トレンドを予測してしまっています。(c)はいかなるモデルでも予測が難しいタイプの「途中で大きなドリフト下降があって以後は平均回帰的」という元データなんですが、これも線形回帰は学習データの最後のラインから平均回帰するように予測しているにもかかわらず、Transformerだと勝手にそこより低いラインから平均回帰させてしまったりしています。


結局、Transformerご自慢の(self-)attentionという仕組みと、世の中に溢れる一般的な時系列データが持つ「トレンド」「周期性」「ドリフト」「レジームスイッチ」といった気まぐれ感ある特徴との相性が悪い、というのが今回のZeng et al. (2022)で明らかになったポイントなのかな?と個人的には感じています。それはやはり、Transformerが良くも悪くも「個々のサンプル(単語やフレーズ)がその重要性を変化させながら常に前後しばらく離れたところまで関係性を保ち続ける」自然言語テキストを扱うために作られたモデルであるが故の問題なのかもしれません。


ただし、Transformerと例えばARIMAとが自己回帰的なモデル同士であることに変わりはないわけで、この辺の問題はネットワーク構造の工夫で解決可能なのではないかという気が素人考えながらしています。引き続き「機械学習で時系列予測はできるのか」問題については、今後もフォローしていこうと思う次第です。