wisteria2gp / DataScience_survey

0 stars 0 forks source link

Enhancing the Locality and Breaking the MemoryBottleneck of Transformer on Time Series Forecasting #21

Open wisteria2gp opened 4 years ago

wisteria2gp commented 4 years ago

一言でいうと

Transformerの時系列データ予測タスクをターゲットにした改善モデルの提案

論文リンク

https://arxiv.org/abs/1907.00235

著者/所属機関

Shiyang Li, Xiaoyong Jin, Yao Xuan, Xiyou Zhou, Wenhu Chen, Yu-Xiang Wang, Xifeng Yan

投稿日付(yyyy/MM/dd)

2019/06/29

概要

筆者らは、予備実験からTransformerには以下の2点の弱点があると述べている。

  1. locality-agnostics : point-wise dot product self-attentionはlocal contextの把握が苦手である。そのためモデルが時系列において異常(?)になりやすい。
  2. memory bottleneck : 空間計算量が系列長Lに対して二次関数的O(L^2)に増加するため、直接的に長期時系列データをモデリングすることが不可能

これらの弱点を解消するために以下の2つの改善手法を提案する。

  1. Conv self-attention : causal convolutionを用いてqueries・keysを設計することでlocal contextがうまくattentionのメカニズムに組み込まれるようにする。
  2. LogSparse Transformer : O(L(logL)^2)になり精度も良くなる。(中身は概要では記述なし)

※ちなみに確実にL^2 > L(logL)^2

新規性・差分

以下を主張している(Intro)

  1. Transformerが時系列予測に適用し、RNNベースのモデルよりも、長期の依存関係をうまく扱える潜在的な能力があることを示すことができた。
  2. Conv Attにより学習ロスが低くなった。精度も良かった。
  3. LogSparse Transformerによって、空間計算量をO(L(logL)^2)に削減。長期系列への適用性を向上させたうえ、純粋Transformerより性能も良かったよ。

手法

  1. Conv Attention

スクリーンショット 2020-02-21 18 57 58 図の左側がSimpleTransformer、右側が本論文のTransformer Self-AttentionにおけるQ,K,Vを用意する前にkernel size {1,k}のCausalConvをかけてからQ,K,Vとするようだ。このとき、端では適切にPaddingするとのこと。kernel sizeにあるとおり、時系列データなので1次元(あるいは1方向)のConvをかけている。 またConvはq,kのみでvにはかけない、としているようだ。

入力の取り扱いとしては以下のように認識している。 EnhancingLocality解説用素材

  1. LogSparse Transformer

self-Attention において入力系列のトークン数がkだとすると、1つ1つのトークンについて、k個のトークンへの照会が発生するため、グラフとしてみればエッジ数k*kのグラフになる。しかし、このエッジには無駄が多いので、各トークンが自身に近いトークンを重視するようにエッジの枝刈りを行う、といった感じ。

スクリーンショット 2020-02-21 18 58 12

結果

コメント

時系列データ向けのSimple Transformer API

実装チャレンジ中link

wisteria2gp commented 4 years ago

追加スレッド

Transformerを時系列データ予測へ用いるための問題定義があったのでそれを記述します。

まず、以下の条件付き確率分布をモデリングすることが一般化された目的である。

スクリーンショット 2020-02-28 19 36 17

ここで z{i,1:t}はi番目の変量の時刻1〜tの値を示す。したがって、この変数一つでは1xtのベクトルということになる。また、x{i,1:t}は全期間に渡って既知であるような、例えば時刻や曜日などの変数のベクトルを示す。最後にφはモデルのパラメタである。

ただし、本論文では簡単のため、予測するのは1step先のみとしている。 そして、変数列については以下のように整形する

スクリーンショット 2020-02-28 19 56 29

そして次の式を満たすような関数を作成することで確率分布を獲得する

スクリーンショット 2020-02-28 19 57 30