LSTNetの論文を読んだのでまとめてみた

LSTNetの論文を読んだのでまとめ記事を書いてみました。
私の理解度に合わせて記事内容は更新される可能性があります。

原著論文:
Lai, G., Chang, W. C., Yang, Y., & Liu, H. (2018, June). Modeling long-and short-term temporal patterns with deep neural networks. In The 41st International ACM SIGIR Conference on Research & Development in Information Retrieval (pp. 95-104).

LSTNetとは

多変量時系列予測アルゴリズムであり,大きく3つのコンポーネントからなる。各コンポーネントとその役割は以下の通り。

1 Convolution component:

多次元入力間の局所的な依存パターンの学習に寄与。

2 Recurrent component:

多次元入力間の長期的な依存パターンの学習に寄与。特に新たな Recurrent layer である,Recurrent-skip layer は時系列データの周期性を利用することで,超長期的な依存パターンの学習に効果を示す。

3 Autoregressive linear component:

Convolution / Recurrent layer によって構築されるニューラルネットワークに並行して組み込むことで,トレンド傾向を示す時系列データに対しても頑健な予測を示す。

f:id:RYHR:20200518205632p:plain
論文より引用:LSTNet の構成

Convolution component

LSTNet における最初のコンポーネント。Pooling のない Convolution layer。\(ω*n\) (\(n\)は入力次元)サイズの複数のフィルタからなる。活性化関数は\(RELU(x) = max(0, x\))。

Recurrent component

LSTNetにおける二つ目のコンポーネント。Recurrent layer とその他の layer による2層構造。論文中では以下2種類の構造を検証。

① Recurrent layer + Recurrent-skip layer
② Recurrent layer +Temporal Attention layer

Recurrent layer:
Convolution component の出力を受け取る。Recurrent layer としては Gated Recurrent Unit (GRU) を使用。活性化関数として一般的な\(tanh\)ではなく\(RELU\)を採用。

Recurrent-skip layer:
上述の Recurrent layer 同様に,Convolution componentの出力を受け取る。24時間おきに周期的な変動を見せる電気使用量などの,Seasonality(季節性)を示すデータに対して,効果的な学習を行うことが可能となる。例えば\(p\)時刻おきに一定の変化パターンを示すデータに対して,GRUセルの隠れ状態を\(p\)個スキップしながら学習することで,重要な依存パターンを学習するための時間幅を拡張しているとのこと。

Temporal Attention layer:
Recurrent-skip layer では明示的にスキップする隠れ状態の個数\(p\)を決定する必要があるが,これでは季節性を示さないデータや,周期が同的に変化する時系列データに対しては適用が困難となる。そこで,Attention layer を用いて過去系列の隠れ状態の注目度を求め,予測に使用する過去系列の重要度を決定することで,明示的に\(p\)を求める必要性をなくしている (?)。

 Autoregressive linear component

Convolution layer や Recurrent layer によって構成されるニューラルネットワークの欠点として,出力のスケールが入力のスケールに対して敏感ではない点が挙げられる。

f:id:RYHR:20200518210210p:plain
論文より引用:未学習の入出力スケールに対して,GRU 単体ではテストデータに対する予測ができないことを示す図。

そこで,論文では Autoregressive model (自己回帰モデル) に基づく出力であるAR成分を求め,Recurrent component の出力と併せることで,スケール変化の大きいデータセットに対しても頑健な予測を実現している。

そこで,論文では Autoregressive model (自己回帰モデル) に基づく出力であるAR成分を求め,Recurrent component の出力と併せることで,スケール変化の大きいデータセットに対しても頑健な予測を実現している。

f:id:RYHR:20200518210332p:plain
論文より引用:Prediction = Recurrent component の出力 + Autoregressive model の出力

論文内の結果について

Traffic, Solar-Energy, Electricity, Exchange-Rate の4データセットを対象に LSTNet の効果検証。

f:id:RYHR:20200518210416p:plain
論文より引用:各データセットのコレログラム。データセットa, b, cについては Seasonality が見られる。

LSTNet 以外の種々の時系列予測アルゴリズムと精度比較をした結果,以下の図の通り大抵の状況において LSTNet が最もよい精度を示す模様。Exchange-Rate については,AR / LRidge / LSVR といったモデルが LSTNet と比して良い精度を示しているが,これらのモデルはその他のデータセットに対しては高い精度を示していない。その点,LSTNet はどのデータセットに対しても頑健な予測を出力している。

f:id:RYHR:20200518210446p:plain
論文より引用:各データセットに対する種々の時系列予測アルゴリズムの予測精度。Horizon は考慮する過去のデータポイント数。評価指標はRoot Relative Squared Error (RSE) とEmpirical Correlation Coefficient (CORR) を採用。LST-Skip は Recurrent component において,Recurrent layer + Recurrent-skip layer の構造をしたモデルを示し,LST-Attn は Recurrent layer + Temporal Attention layer の構造をしたモデルを示す。各列において太字で示された値は,該当する列内で最も評価指標の値が良かったものを意味する。

また論文では,Ablation Study として LSTNet における構成要素の一部をモデルから除去した場合の影響を検討しているが,基本的にはどの要素を抜いてもモデルの精度は低下するとのこと。特に Autoregressive model の除去時に最も顕著な影響が出るとのこと。

これまで日常業務の中では時系列予測の際に,Long-short term memory (LSTM) や GRU を基本的には用いてきましたが,トレンド傾向に対する対処として AR 成分を持ち込むというのは有りな気がしていますがどうなんでしょうかね。LSTNet の構築をしてみてその効果について検討してみたいですが,論文のまとめとしてはここまでということで。とりあえず数式的な部分は無視したまとめ記事にしてしまいましたが,気が向いたらそのあたりを追記していくかもしれません。

コメント