時系列予測にTransformerを適用する際の勘所

Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting  [Li+, NeurIPS19]からTransformerを時系列予測に適用するときの課題とその対策について説明する。

https://arxiv.org/abs/1907.00235

時系列予測にTransformerを適用するときの課題と対策を次にあげる

課題1: 局所的なコンテキストを捉えることができない

従来のcanonical self-attentionはQuery/Keyにpoint-wise(点ごとに分割して特徴抽出を行うこと)な値を使うため、局所的なデータ構造(なだらかな変化なのか、急な変化なのかなど)を考慮できていない(Fig.(a),(b))

対策1: サンプル点周辺の特徴を畳み込む、Convolutional self-attentionを提案

Convolutional self-attentionではQuery/Keyに周辺情報も畳み込むため、point-wiseな値を使う場合(Fig.(a),(b))に比べて、局所的な構造を考慮できる(Fig.(c),(d))。さらに、本論文では時系列データを対象としているため、convolutionは「前後」ではなく「前」の情報のみを使うcausal convolutionを提案している。

図は論文より転載

課題2: 計算量がシーケンス長の2乗に比例すること

Transformerではself-attentionを計算する際、シーケンス同士の内積をとるため、計算量がシーケンス長の2乗となるO(L^2)。これはTransformerの一般的な課題で、時系列データへの適用に限った課題では無い。

対策2: 時間的に近い点は密に、遠い点は疎にとるLogSparse self-attentionを提案

図は論文より転載

self-attention layerにおいて、全ての点同士の関係を考えるとO(L^2)の計算量になる(Fig.(a))。一方、提案するLogSparse self-attentionでは、時間的に近い点は密に、遠い点は疎にとることでO(L(LogL)^2)の計算量に減らすことができる(Fig.(b))。

Transformer

Posted by vastee