Deep Transformer Models for Time Series Forecasting

本稿ではTransformerを時系列データに適用した論文([Deep Transformer Models for Time Series Forecasting](https://arxiv.org/pdf/2001.08317.pdf "Deep Transformer Models for Time Series Forecasting"))の解説をしていきます。
# 1. 概要
1. 研究内容
Transformerモデルを用いてアメリカにおけるインフルエンザ様疾患数(ILI) [^1]の週次予測をしていく
1. 先行研究との比較
状態空間モデルやRNNなどのディープラーニングモデルと比べて精度が上がった。
1. 手法
Attentionを用いたTransformerモデル。
1. 検証方法
10週分のデータをエンコーダに入力して次の週のILI比率を予測していく。
1. 議論
時系列データのみならず時間情報と地理情報を持った時空間データにも適用されうる。

# 2. Introduction
### 研究動機
- インフルエンザは世界中で多くの死者を出しているが、CDCの集計は1週間以上遅れて出る⇒リアルタイム予測がしたい。
- これまで自己回帰モデルなどに加えて様々な機械学習モデルでILIデータの予測がなされてきたが、勾配消失や勾配爆発、長期記憶の制限などの問題がある。
- 上記の課題を解決するためTransformerを用いる

### 本論文の貢献
- Transformerを時系列データへ適用。
- 多数の特徴量を用いたILIの流行予測を可能にする。
- 以前までのモデルよりも精度が高い。

# 3. Related Work & Background

<dl>
  <dt>Compartmental Models</dt>
  <dd>状態空間モデルの一種であり感染症の研究に広く利用されている。<br>観測対象を2つに分け、時系列の状態変数によりモデリングする。<br>SIRモデルがもっとも有名でありILI予測にも適用されている。</dd>
  <dt>ARIMA</dt>
  <dd>観測値がトレンド変動、季節変動、不規則変動に分けられることを仮定し、差分をとることでトレンド変動と季節変動を除去する。<br>自己回帰モデル(AR)と移動平均モデル(MA)を組み合わせてモデリングされる。</dd>
  <dt>Time Delay Embedding</dt>
  <dd>観測された変数を時間軸方向にずらしてd次元に埋め込む。
      <br><br>$TDE_{d,τ}(x_t)=(x_t,x_{t-τ},...,x_{t-(d-1)τ})$
      <br><br>TDEをベースとした水痘とはしかの流行を予測するモデルでは、ARモデルと同等もしくはそれ以上の精度を記録している。<br>地理的、位相的な情報の学習を可能にするため状態空間モデルでは強力なツールだが、機械学習モデルにおいてはあまり研究されていない。
</dd>
  <dt>GFT</dt>
  <dd>Googole検索量を用いてILI比率を予測する線形モデル。<br>ピーク時の規模を過大に推定してしまう。</dd>
  <dt>ARGONet</dt>
  <dd>ARモデルの手法からGFTを改良したもの。<br>空間情報を活用しており、GFTよりも高精度となっている。</dd>
  <dt>RNN</dt>
  <dd>再帰構造をもつニューラルネットワーク。<br>入力情報と一期前の状態に依存して出力が決まる。</dd>
  <dt>LSTM</dt>
  <dd>長いシーケンスの処理においては勾配消失や勾配爆発が起きるというRNNの問題に対処したニューラルネットワーク。<br>入力ゲート、忘却ゲート、出力ゲートに分けられる。<br>気候情報や時空間データを組み込んだモデルや、Attention層を用いたモデルがILI予測に用いられている。</dd>
  <dt>Seq2Seq</dt>
  <dd>入力と出力がともにシーケンス。<br>エンコーダ、中間ベクトル、デコーダにより構成される
  <br>自然言語処理に広く利用されるが、シーケンスが長くなると中間ベクトルに十分エンコードできない。
  <br>ILI予測においてはARIMAやLSTMよりも精度が良い。
</dd>
</dl>

# 4. Model
### 概要
- N週分のデータがあたえられ、最後のM週を予測データとする。
  入力:$x_{t-N+1}, ..., x_{t-M}$
  出力:$x_{t-M+1}, ..., x_{t}$

### データ
- 2010-2018年における国レベルと州レベルのILIデータ
- すべてのデータにMinMaxスケーリングを適用
- 下図のように訓練データと評価データのセットを作る
- 学習データとテストデータは2:1の比率で分ける

### 構築するTransformerモデル(下図参照)
1. エンコーダ
  入力層: 入力された時系列データを全結合によりモデルの次元ベクトルへ変換する
  Positional-Encoding層: 入力ベクトルに時間情報を与える
  エンコーダ層: self-attention層と全結合層を持ち、それぞれ層ごとに正規化されている

2. デコーダ
  入力層: 入力を全結合によりモデルの次元ベクトルへ変換する
  デコーダ層: エンコーダの出力に対するself-attentionをエンコーダ層に加えたもの
  出力層: 最終層で予測値を時系列で出力する
予測時点よりも先の情報を参照できないようにするためmaskingを実装

![Transformer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2712784/78395960-fb82-2afe-53f2-9a57915c3a2b.png)

### 学習
- 10週分データを用いて次に4週分のデータを予測する
  入力(エンコーダ):$x_1, x_2 ..., x_{10}$
  入力(デコーダ):$x_{10}, x_{11}, x_{12}, x_{13}$
  出力(デコーダ):$x_{11}, x_{12}, x_{13}, x_{14}$
- $x_{11}, x_{12}$を予測するときは$x_{10}, x_{11}$のみにattentionを適用する
- 最適化の手法としてAdamを用いる
- すべての層においてドロップアウトを適用する

### 評価
- ピアソンの相関係数とRMSEで測定

### ベンチマークモデル
<dl>
  <dt>ARIMA</dt>
  <dd>単変量のARIMAモデルをベースラインとする。</dd>
  <dt>LSTM</dt>
  <dd>2つのLSTM層と最終層でILI予測を行う。<br>Huber損失とAdam(学習率0.02)を用いる。</dd>
  <dt>Seq2Seq</dt>
  <dd>エンコーダ、デコーダともに16ユニットの全結合と32ユニットのGRUからなる。<br>
      Attentionも適用される。<br>Huber損失とAdam(学習率0.02)を用いる。</dd>
</dl>

# 5. Experiment
### ILIデータのみを用いる
- 相関係数とRMSEを他のモデルと比較(表1)
- どちらの指標においてもディープラーニングモデルはARIMAモデルを上回る精度を記録している
- ディープラーニングモデルの中では相関係数に差はみられないが、RMSEはTransformerがかなり低くなっている
- Attentionを採用したモデル(Transformer, Seq2Seq)がLSTMよりも高精度となっていることからAttentionの有用性がうかがえる。

![Results.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2712784/4ce7c9a5-5efe-6e94-6253-fae3aab6ea22.png)

### 複数の特徴量を用いる
- インデックス特徴量として週番号を追加する[^2]
- ILI比率の1階差分と2階差分も特徴量として加える。
- 前述のモデルと比べて精度はわずかに向上したが、有意性はなく新たな情報をほとんど埋め込めていないことがわかる
- ARGONetと比較すると相関係数は向上したが(0.912→0.931)、RMSEは悪化している(0.550→0.593)。

### TDEを用いた予測
- 過去のILIデータからTDEを構築することで追加的な位相情報をエンコードできるため、前述の時系列入力よりも多くの情報をもたらすと考えられる
- 2次元から32次元までのTDEを構築してそれぞれ予測に用いる
- 8次元のときにRMSEは最も小さくなっている


# 参考文献
Deep Transformer Models for Time Series Forecasting: The Influenza Prevalence Case
2020, Neo Wu, Bradley Green, Xue Ben, Shawn O'Banion

# 脚注
[^1]: 発熱や咳、咽頭痛の症状と定義されており、該当週に病院を訪れた患者総数とILI症状がみられた患者総数の比率を用いる
[^2]: インフルエンザシーズンは10月から始まり1,2月にピークを迎えるため。