雑記: NeurIPS 2019 Proceedings の「時系列」を含むタイトル

キャラクターは架空のものです。何かありましたらご指摘いただけますと幸いです。
参考文献

f:id:cookie-box:20190101155733p:plain:w60

NeurIPS 2019 Proceedings のサイトをみるとタイトルに time series を含む発表が…11件もありますね。上から順にメモしていきますか…面倒ですが…。なお、現時点でクリック先で閲覧できるアブストラクトを一通り読んだのみの直感的な理解であることに留意ください。

Learning Representations for Time Series Clustering
Qianli Ma, Jiawei Zheng, Sen Li, Gary W. Cottrell
「時系列クラスタリングのための表現の学習」とはシンプルな題ですね。ゲノムデータの解析や異常検知などで時系列をクラスタリングしたいことがあるのですね(ゲノムデータって時系列なんでしょうか)。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: A Fully Convolutional Network for Time Series Segmentation Applied to Sleep Staging
Mathias Perslev, Michael Jensen, Sune Darkner, Poul Jørgen Jennum, Christian Igel
「時系列のセグメントに畳込みだけのネットワークを適用するモデルで、睡眠段階のデータを解析したよ」でいいですかね。生理学的な時系列のドメインでは、畳込みネットワークと再帰的ネットワークを組み合わせたモデル(U-Time)で時系列の特徴を抽出するのがポピュラーであるそうなのですが、再帰的なネットワークはチューニングと最適化がしづらく、タスク依存の modification を要し、非専門家に扱うのは困難であるそうです。そこで今回提案する U-Time なるモデルは再帰しないと(睡眠段階の解析のためのモデルということですが、ではこれもタスク依存の modification ではないのですかね…一口に睡眠段階の解析といっても幅広いのでしょうか…)。この U-Time という名前は画像認識ドメインの U-Net をベースにしたものだからということなのですね。U-Time は入力時系列をクラスラベルの列にマッピングするそうです。全ての時点をクラス分類して、インターバル内でそれらの結果をまとめることによってそれを達成するそうです(畳込みネットワークで時系列を扱うならそのようになるのだろうといった感じはしますが…)。まあそれで、脳波データに対して睡眠段階分類タスクをやったところ U-Time の性能は既存手法を上回ったそうです。かつ、色々なタスクを通じてアーキテクチャやハイパラの探索をしなくても性能がロバストであったということです。
低次元への埋め込みと準安定なクラスタを学ぶ? 高次元な離散状態マルコフ過程であって遷移行列が低ランクなものから生成された時系列を低次元な状態に埋め込みたいということで合っているんでしょうか…自信がありませんね。ともかく、Diffusion map という手法の考え方で効果的に埋め込めたということですね。さらにこれは、遷移関数のノンパラメトリックで精度のよい近似にもつながっていると。また、状態を低次元に埋め込むことで準安定な集合にクラスタリングでき、スローな動的特性も特定できると。準安定な状態のクラスタの中からは逃げにくく、たまに別のクラスタに移るといったイメージでしょうか…。また理論的な精度も評価されているのですかね? シミュレーションによって準安定なクラスタが特定できることを検証したようです。Atariゲームをプレイする Deep-Q-Network のレイヤーから抽出した時系列でも実験し、そこからゲームの状態を特定することに成功したようですね。…これから想像すると、人の脳波からその人がいま悲しいか、うれしいか、怒っているかなどもわかったりするのでしょうか。何かのサービスにいつがっかりしてしまったかわかったりしたら有用そうですね…。
Unsupervised Scalable Representation Learning for Multivariate Time Series
Jean-Yves Franceschi, Aymeric Dieuleveut, Martin Jaggi
「教師なしでスケーラブルな多変量時系列の表現学習」でしょうか。時系列の普遍的な埋め込み手法を提案するようです。時系列の長さに対してスケーラブルで、実用的であるようですが…? 具体的なモデルとしては、Causal Dilated Convolution によるエンコーダに、なんか時系列なりのネガティブサンプリングをしたトリプレットロスを導入してこれを達成したようですね。
「グローバルに考えローカルに動く」とはいよいよキャッチコピーじみてきましたね…高次元時系列を深層ネットワークによって予測するという題ですが。需要予測や金融時系列の予測など、高次元時系列の予測には興味が尽きないわけですが、このような時系列にはたくさんの個々人の時系列が束になっているようなケースがありますね。このようなとき、グローバルなパターンを見出し、それに個々人のキャリブレーションを重ねるような予測をするとよさそうです。しかし、多くのニューラルネットによるアプローチは一系列の予測にしか対応していません。Aさんの家の電力使用量を予測するのにAさんの家の電力使用量しか利用できず、せっかくBさんの家やCさんの家のデータもあるのに活用できないといったイメージですね。そこで今回 DeepGLO なるモデルを提案するということです。DeepGLO さんはグローバルに考え、ローカルに作用すると。具体的には、グローバルな Matrix Factorizartion モデル(時間方向の畳込みネットワークでこれを制約するということですが)と、個別の系列の性質及びそれらの相関を捉えるネットワークを組み合わせているそうです。系列ごとにスケールが違う多変量時系列でも効果的に学習できるとはすごいですね。例えば、100K次元を超える時系列で WAPE(Weighted Absolute Percent Error ですかね)が既存手法より 25% 改善したそうです。
Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting
Shiyang Li, Xiaoyong Jin, Yao Xuan, Xiyou Zhou, Wenhu Chen, Yu-Xiang Wang, Xifeng Yan
局所性を利用することでトランスフォーマーのメモリのボトルネックを打破した? トランスフォーマーとは言語処理で有名なモデルですよね。トランスフォーマーを使って時系列予測に取り組もうとしたということですが、2点弱点があったそうです―言語処理界から導入してきていきなり弱点をあげつらうんですか!? なんだかトランスフォーマーさんがかわいそうですね…。弱点の1つ目は、トランスフォーマーがローカルな文脈には鈍感であるがゆえに(そうなんですか?)、局所的な特徴を学ばないということですかね(誤っていたらすみません)。2つ目はメモリのボトルネックで、長い時系列はどうしても扱いきれないと。それで、前者は畳込み Self-Attention の開発で、後者は LogSparse トランスフォーマーの開発で解決したということです。実データで実験して既存手法の性能を凌いだと。
「不規則にサンプリングされた時系列のための隠れ常微分方程式」? 不規則にサンプリングされた時系列は通常のRNNで扱うのは難しいと。それはそうですね。そこでRNNを、常微分方程式による連続的な隠れ状態をもつものに魔改造されたのですね。なるほど、だから「隠れ常微分方程式」ですか…。そもそもこれ以前に Latent ODE という手法が提案されているのですね。この ODE-RNNs も Latent ODE もポアソン過程から不規則にサンプリングされた系列を上手くモデリングしたようですね。この ODE を用いた手法は既存の RNN ベースの手法よりアウトパフォームしたということです。
Time-series Generative Adversarial Networks
Jinsung Yoon, Daniel Jarrett, Mihaela van der Schaar
「時系列GAN」ですね…。時系列の生成モデルは自己相関のような構造を再現してほしいということですよね? それは単にGANを系列データに適用するだけでは不十分ということです。といって、教師ありモデルでは生成されるサンプルは決定論的になってしまう…ということで、教師なしと教師ありの度合いを調整し、本物らしい(とは)時系列を生成するようです。双方の目的関数をがっちゃんこするのですね。現実のデータや人工データで性能を評価し、定量的にも定性的にもベンチマークの性能を凌いだようです(どうやって評価したんでしょうか)。
「浅いRNN―リソースに制約があるときの正確な時系列分類」ということですね。RNN は系列が長いと、たとえ並列化できる環境であっても、推測に計算コストがかかると。まあ並列化できませんしね。それでも長期の依存性をもたせる手法を開発したということでしょうか。1層目が入力を分割して別々の独立したRNNに投げる…? 2層目は1層目の出力をまた別の RNN にかけることで長期の依存性を捉える…?? このアーキテクチャがなぜよいのか理論的にも示したということですが、気になりますね。また、時系列分類タスクで精度を落とすことなく推論速度が改善したことも検証したそうです。
GRU-ODE-Bayes: Continuous Modeling of Sporadically-Observed Time Series
Edward De Brouwer, Jaak Simm, Adam Arany, Yves Moreau
「散発的に観測される時系列の連続的モデリング」ですか。また常微分方程式ですか? 散発的に観測される時系列の例として患者のデータとありますが、患者さんが病院に来院するのがたまにだからということですかね? まあそれで、そのような時系列をモデリングするために、まず 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」観測が疎な多変量時系列 → 予測値
「予測値」か「予測クラス」かは回帰をしていそうか分類をしていそうかでかきわけましたが、必ずしも全てのモデルが絶対にどちらかしかできないということではないと思います。さらに並び替えてみます。
  • 誤差関数:
    • 「DILATE」2時系列 → 誤差
  • 状態の次元削減:
    • 「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」乱数 → フェイク時系列

f:id:cookie-box:20190101160814p:plain:w60

2019-12-01 追記
繰り返しになっちゃうけど、改めて各発表の so what をまとめてみるよ。アブストラクトを表面的に読んだだけだから踏み外しているかもしれないけど。
やったこと モデル名 有用性 キーアイデア
誤差関数の構築 DILATE 時系列予測モデルの学習に用いることで急変も捉える。 「形状」の項と「変化」の項を明示的に含む。
状態の次元削減 low-dimensional state embeddings 状態を次元削減し準安定状態も捉える。 Diffusion map を応用。
時系列の次元削減 クラスタリング用途 DTCR 教師なしでクラスタリング向きの特徴を得られる。 再構築誤差誤差に加えてクラスタリングのよさを目的関数に組み合わせる。
一般用途 Unsupervised Scalable Representation 時系列の長さにスケーラブルな特徴を得られる。 Causal Dilated Convolution と Triplet Loss を活用。
予測高次元 DeepGLO グローバルなパターンを活用し高次元時系列を予測できる。 グローバルに Matrix Factorizartion し、それに加えローカルなキャリブレーションモデリングする。
観測が疎 ODE-RNNs 不規則にサンプリングされた時系列から上手く予測する。 常微分方程式によって隠れ状態をモデリングする。
GRU-ODE-Bayes 疎にサンプリングされた時系列から上手く予測する。 Neural ODE で GRU を構築し、隠れ状態をベイズ更新する。
省リソース Shallow RNN 限られた計算資源で長期依存性をもつ時系列を予測する。 入力を分割してそれぞれRNNし、それらの結果をまたRNNする。
Transformer Time-series Transformer トランスフォーマーを時系列に活用する。 畳込み Self-Attention と、LogSparse トランスフォーマーを開発。
U-Net U-Time 再帰せず畳込みだけで脳波時系列をクラス分類する。 U-Net を応用。
GANの構築 Time-series GAN 自己相関構造を捉えたフェイクデータを生成する。 「教師なし」と「教師あり」の目的関数を組み合わせる。

つづかない