NeurIPS 2019 Proceedings のサイトをみるとタイトルに time series を含む発表が…11件もありますね。上から順にメモしていきますか…面倒ですが…。なお、現時点でクリック先で閲覧できるアブストラクトを一通り読んだのみの直感的な理解であることに留意ください。
「時系列
クラスタリングのための表現の学習」とはシンプルな題ですね。ゲノムデータの解析や異常検知などで時系列を
クラスタリングしたいことがあるのですね(ゲノムデータって時系列なんでしょうか)。feature-based な
クラスタリングはノイズや外れ値に強く低次元表現を得られる一方、
ドメイン知識をもつ人が人力でよい feature を見出さなければならないとあります。他方、seq2seq 手法であれば、適切な目的関数さえ設定すれば、教師なしで表現を学習できると。まあしかし、効果的に
クラスタリングできるような表現を得なければならず、それが難しいわけですね。そこで今回提案する Deep Temporal Clustering Representation (DTCR) では系列の再構築及び K-means(学習途中の表現に K-means 法を適用してよく
クラスタリングされているかをも目的関数に含めるのでしょうかね…読んでいませんが…)を目標に表現を学習するそうです。そうすると
クラスタ特有の表現がよく学べると。かつ、エンコーダの性能を向上させるためにフェイクデータを生成したり、補助分類タスクを導入したりしたそうです。そんなこんなで広範囲の時系列に対して既存手法を凌ぐパフォーマンスを得たとあります。
「深層時系列予測モデルのための『形状』と『時間のひずみ』損失」ということで、損失関数を提案されたのですね。それを DILATE (
DIstortion Loss including shApe and TimE) と名付けられたようです。A をそこから取るのは苦しくないですかね…。さておき、DILATE は時系列の急変を正確に予測すべく、「形状」の項と「変化」の項を明示的に含むようですね。これ用の
誤差逆伝播も実装されたようです。DILATE の亜種も提案されていてそちらは DTW の一般化(とは?)になっていると。色々な非定常データで実験されて、平均2乗誤差や DTW による学習よりも DILATE による学習の方がよかったと。それも、ネットワーク構造によらず(全結合でも
再帰的ネットワークでも)予測性能が改善したということです。
「時系列のセグメントに畳込みだけのネットワークを適用するモデルで、睡眠段階のデータを解析したよ」でいいですかね。生理学的な時系列の
ドメインでは、畳込みネットワークと
再帰的ネットワークを組み合わせたモデル(U-Time)で時系列の特徴を抽出するのがポピュラーであるそうなのですが、
再帰的なネットワークはチューニングと最適化がしづらく、タスク依存の modification を要し、非専門家に扱うのは困難であるそうです。そこで今回提案する U-Time なるモデルは
再帰しないと(睡眠段階の解析のためのモデルということですが、ではこれもタスク依存の modification ではないのですかね…一口に睡眠段階の解析といっても幅広いのでしょうか…)。この U-Time という名前は画像認識
ドメインの U-Net をベースにしたものだからということなのですね。U-Time は入力時系列をクラスラベルの列に
マッピングするそうです。全ての時点をクラス分類して、インターバル内でそれらの結果をまとめることによってそれを達成するそうです(畳込みネットワークで時系列を扱うならそのようになるのだろうといった感じはしますが…)。まあそれで、脳波データに対して睡眠段階分類タスクをやったところ U-Time の性能は既存手法を上回ったそうです。かつ、色々なタスクを通じて
アーキテクチャやハイパラの探索をしなくても性能が
ロバストであったということです。
低次元への埋め込みと準安定な
クラスタを学ぶ? 高次元な離散状態
マルコフ過程であって遷移行列が低ランクなものから生成された時系列を低次元な状態に埋め込みたいということで合っているんでしょうか…自信がありませんね。ともかく、Diffusion map という手法の考え方で効果的に埋め込めたということですね。さらにこれは、遷移関数のノン
パラメトリックで精度のよい近似にもつながっていると。また、状態を低次元に埋め込むことで準安定な集合に
クラスタリングでき、スローな動的特性も特定できると。準安定な状態の
クラスタの中からは逃げにくく、たまに別の
クラスタに移るといったイメージでしょうか…。また理論的な精度も評価されているのですかね? シミュレーションによって準安定な
クラスタが特定できることを検証したようです。
Atariゲームをプレイする Deep-Q-Network のレイヤーから抽出した時系列でも実験し、そこからゲームの状態を特定することに成功したようですね。…これから想像すると、人の脳波からその人がいま悲しいか、うれしいか、怒っているかなどもわかったりするのでしょうか。何かのサービスにいつがっかりしてしまったかわかったりしたら有用そうですね…。
「教師なしでスケーラブルな多変量時系列の表現学習」でしょうか。時系列の普遍的な埋め込み手法を提案するようです。時系列の長さに対してスケーラブルで、実用的であるようですが…? 具体的なモデルとしては、Causal Dilated Convolution によるエンコーダに、なんか時系列なりのネガティブサンプリングをしたトリプレットロスを導入してこれを達成したようですね。
「グローバルに考えローカルに動く」とはいよいよキャッチコピーじみてきましたね…高次元時系列を深層ネットワークによって予測するという題ですが。需要予測や金融時系列の予測など、高次元時系列の予測には興味が尽きないわけですが、このような時系列にはたくさんの個々人の時系列が束になっているようなケースがありますね。このようなとき、グローバルなパターンを見出し、それに個々人の
キャリブレーションを重ねるような予測をするとよさそうです。しかし、多くの
ニューラルネットによるアプローチは一系列の予測にしか対応していません。Aさんの家の電力使用量を予測するのにAさんの家の電力使用量しか利用できず、せっかくBさんの家やCさんの家のデータもあるのに活用できないといったイメージですね。そこで今回 DeepGLO なるモデルを提案するということです。DeepGLO さんはグローバルに考え、ローカルに作用すると。具体的には、グローバルな Matrix Factorizartion モデル(時間方向の畳込みネットワークでこれを制約するということですが)と、個別の系列の性質及びそれらの相関を捉えるネットワークを組み合わせているそうです。系列ごとにスケールが違う多変量時系列でも効果的に学習できるとはすごいですね。例えば、100K次元を超える時系列で WAPE(Weighted Absolute Percent Error ですかね)が既存手法より 25% 改善したそうです。
局所性を利用することで
トランスフォーマーのメモリの
ボトルネックを打破した?
トランスフォーマーとは言語処理で有名なモデルですよね。
トランスフォーマーを使って時系列予測に取り組もうとしたということですが、2点弱点があったそうです―言語処理界から導入してきていきなり弱点をあげつらうんですか!? なんだか
トランスフォーマーさんがかわいそうですね…。弱点の1つ目は、
トランスフォーマーがローカルな文脈には鈍感であるがゆえに(そうなんですか?)、局所的な特徴を学ばないということですかね(誤っていたらすみません)。2つ目はメモリの
ボトルネックで、長い時系列はどうしても扱いきれないと。それで、前者は畳込み Self-Attention の開発で、後者は LogSparse
トランスフォーマーの開発で解決したということです。実データで実験して既存手法の性能を凌いだと。
「不規則にサンプリングされた時系列のための隠れ
常微分方程式」? 不規則にサンプリングされた時系列は通常のRNNで扱うのは難しいと。それはそうですね。そこでRNNを、
常微分方程式による連続的な隠れ状態をもつものに
魔改造されたのですね。なるほど、だから「隠れ
常微分方程式」ですか…。そもそもこれ以前に Latent ODE という手法が提案されているのですね。この ODE-RNNs も Latent ODE も
ポアソン過程から不規則にサンプリングされた系列を上手く
モデリングしたようですね。この ODE を用いた手法は既存の RNN ベースの手法よりアウトパフォームしたということです。
「時系列GAN」ですね…。時系列の生成モデルは自己相関のような構造を再現してほしいということですよね? それは単にGANを系列データに適用するだけでは不十分ということです。といって、教師ありモデルでは生成されるサンプルは
決定論的になってしまう…ということで、教師なしと教師ありの度合いを調整し、本物らしい(とは)時系列を生成するようです。双方の目的関数をがっちゃんこするのですね。現実のデータや人工データで性能を評価し、
定量的にも定性的にも
ベンチマークの性能を凌いだようです(どうやって評価したんでしょうか)。
「浅いRNN―リソースに制約があるときの正確な時系列分類」ということですね。RNN は系列が長いと、たとえ並列化できる環境であっても、推測に計算コストがかかると。まあ並列化できませんしね。それでも長期の依存性をもたせる手法を開発したということでしょうか。1層目が入力を分割して別々の独立したRNNに投げる…? 2層目は1層目の出力をまた別の RNN にかけることで長期の依存性を捉える…?? この
アーキテクチャがなぜよいのか理論的にも示したということですが、気になりますね。また、時系列分類タスクで精度を落とすことなく推論速度が改善したことも検証したそうです。
「散発的に観測される時系列の連続的
モデリング」ですか。また
常微分方程式ですか? 散発的に観測される時系列の例として患者のデータとありますが、患者さんが病院に来院するのがたまにだからということですかね? まあそれで、そのような時系列を
モデリングするために、まず GRU の連続時間バージョンを構築し(これは既に提案されている Neural ODE に対して構築したということですね)、また、散発的な観測を取り扱える
ベイズ更新ネットワークを導入し、これらによって GRU-ODE-Bayes method を開発したということです。それでフォッカー・
プランク方程式による多変量系列を表現できたと。そして実データ(医療データ、気候データ)でも人工データでも SOTA であったということです。continuity prior というのは何か事前連続モデルがあって、これを観測データによって更新するということなのですかね。少ないサンプルでも性能がよいということです。
上から順に手法の名前は「DTCR」「DILATE」「U-Time」「?」「?」「DeepGLO」「?」「ODE-RNNs」「Time-series GAN」「Shallow RNN」「GRU-ODE-Bayes」ですかね? 名前が付いていないと付いていないで識別に不便ですね。
2019-11-30 追記
それぞれが(学習された結果最終的に)何を受け取って何を出す箱かをまとめると以下でしょうか。モデルが名付けられていない論文にも適当に名前を付けました。2つ目の論文だけは学習するモデルではなく誤差関数の提案なので「学習した箱の入出力」ではないですが。
- 「DTCR」時系列 → 特徴ベクトル(クラスタリングのための)
- 「DILATE」2時系列 → 誤差
- 「U-Time」時系列 → 予測クラス
- 「low-dimensional state embeddings」高次元時系列 → 低次元時系列
- 「Unsupervised Scalable Representation」多変量時系列 → 特徴ベクトル(一般用途の)
- 「DeepGLO」高次元時系列 → 予測値
- 「Time-series Transformer」時系列 → 予測値
- 「ODE-RNNs」不等間隔な時系列 → 予測値
- 「Time-series GAN」乱数 → フェイク時系列
- 「Shallow RNN」時系列 → 予測クラス
- 「GRU-ODE-Bayes」観測が疎な多変量時系列 → 予測値
「予測値」か「予測クラス」かは回帰をしていそうか分類をしていそうかでかきわけましたが、必ずしも全てのモデルが絶対にどちらかしかできないということではないと思います。さらに並び替えてみます。
- 誤差関数:
- 状態の次元削減:
- 「low-dimensional state embeddings」高次元時系列 → 低次元時系列
- 時系列の次元削減:
- クラスタリングのための:「DTCR」時系列 → 特徴ベクトル
- 一般用途の:「Unsupervised Scalable Representation」多変量時系列 → 特徴ベクトル
- 予測モデル:
- 高次元:「DeepGLO」高次元時系列 → 予測値
- Transformer:「Time-series Transformer」時系列 → 予測値
- U-Net / 生理学ドメイン:「U-Time」時系列 → 予測クラス
- 観測が疎:「ODE-RNNs」不等間隔な時系列 → 予測値
- 観測が疎:「GRU-ODE-Bayes」観測が疎な多変量時系列 → 予測値
- 省リソース:「Shallow RNN」時系列 → 予測クラス
- 生成モデル:
- 「Time-series GAN」乱数 → フェイク時系列