論文読みメモ: Bivariate Beta-LSTM(その1)

以下の論文を読みます。

Kyungwoo Song, Joonho Jang, Seung jae Shin, Il-Chul Moon. Bivariate Beta LSTM. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 34, 2020. [1905.10521] Bivariate Beta-LSTM
※ キャラクターは架空のものです。私の誤りは私に帰属します。お気付きの点がありましたらコメント等で指摘ください。
次回: その2
f:id:cookie-box:20200531131544p:plain:w60

LSTM はシグモイド関数で活性化したゲート(ゲートというと「通る」or「通らない」という印象があるので、「何%だけ通る」という意味ではフィルターなどといった方がいいように感じますが)で

  • 「特徴(※)をどれだけ記憶に取り入れるべきか」(Input Gate)
  • 「記憶をどれだけ忘れるべきか」(Forget Gate)
を制御していますが、この論文は「シグモイド関数は柔軟性がない」といっていますね…確かにいわれてみれば、各ゲートは活性化する前は前回の出力の線形写像と現在の入力の線形写像を足したものですから、これにシグモイド関数を適用しても、前回の出力や現在の入力のある成分に対して単調なゲートになってしまいそうですね。無論、LSTM を利用するときには入力特徴や出力特徴をじゅうぶんいい感じにしておけということなのかもしれませんが…。

※ ここで特徴とよんでいるのは下図の g_t のこと。

それに、「入力ゲートと忘却ゲートの相関も考慮されていない」といっていますが…いや、入力ゲートは入力を制御するものですし、忘却ゲートは忘却を制御するものですから、互いに相手がどうあろうと関係ないですよね。言いがかりではないですか?

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

いや、そう言っちゃうと関係ないように感じるけど、でも、入力ゲートが好きに「特徴を取り入れた方がいいな」と思って、忘却ゲートが好きに「忘却しない方がいいな」と思ったら、記憶はどんどん肥大してシフトしていっちゃいそうだよね。まあそれじゃ困るからそんな風には学習されないだろうけど、記憶を安定させるためには入力ゲートと忘却ゲートはある程度は連携した方がいいんじゃないのかな。あちらを生かしたらこちらは生かさないというようにね。

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

あちらを取り入れたらこちらが立たず…ああ、わかりました。「人の精神は伸縮のきかない容れ物です。より多くの真理と完全な正気の両方を容れることは出来ないのです」というやつですね。

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

違うかな。

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

イントロダクションに入ると、シグモイド関数ではゲートの値が実は0~1のうち狭い範囲しか動かず、ゲートが意図通りに機能していないのではという疑問が投げかけられていますね。ここで引用されている以下の論文のアブストラクトは、「ちゃんとゲート機能を実現するならゲートの値は 0 or 1 にすべきで、実際そのようにしてもパフォーマンスはよかった」というように読めますが、本当なんでしょうか。

この論文のイントロダクションの続きを読むと、上の論文ではシグモイド関数に温度パラメータを導入することでステップ関数に近くするようなこともしたんですかね? でも、ちゃんとしたゲート機能を実現するにはもっと抜本的な修正が必要だと。それで、やはり上の論文で G2-LSTM なる LSTM も提案されたようです。4枚目の右下ですかね。これは入力ゲートと忘却ゲートが確率的なのですかね。入力ゲートと忘却ゲートが抜本的に修正されていることは理解しますが、なぜこうした方がいいと思ったのかはこちらの論文を読まなければならないでしょうか。

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

ゲート同士が相関しうるといっているのは以下の論文みたいだね。アブストラクトには「様々な LSTM の亜種を比較したが、結局重要なのは忘却ゲートと出力の活性化関数だった」というようにあるけど、本文中に直接「相関」という言葉を使っていなさそうだからどの箇所のことか探しづらいな…。

それで、この論文に出てくる CIFG-LSTM というのが入力ゲートと忘却ゲートに完全に -1 の相関をもたせたモデルみたいだね。でもこれだとデータに応じた柔軟性がなさすぎといっている。

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

いや、機械学習の論文はすぐ既存手法に柔軟性をもたせようとしますけど、その柔軟性、本当に必要ですか? YAGNI の法則というものがありますよね?

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

それが Figure 1 かな。これはセンチメント分類の例みたいだけど、入力ゲートと忘却ゲートに大きな負の相関(赤い棒グラフ)が出ているのは "but" や "not" という単語だ。"but" や "not" が来たら忘却ゲートをぐっと閉じて入力ゲートをぐっと開くというのはわかりやすいよね。それまでがネガティブな文章でも、そこからポジティブな文章に変わるかもしれないし。でも、"not" の次の "over-priced" では大きな正の相関(青い棒グラフ)になっている。これもわかりやすいかな。"not" の後の単語はちゃんと受け取らないといけないけど、だからといって直前が "not" であったことも忘れちゃ駄目だから、入力ゲートも忘却ゲートもぐっと開かないといけない。

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

た、確かに…それで、この論文が提案する bivariate Beta-LSTM(bBeta-LSTM)は、シグモイド関数に2変量ベータ分布を合わせて用いることで、(1) 活性化関数の形に柔軟性をもたせ、(2) ゲート間の相関もモデリングできるようにし、(3) しかも勾配消失にも強いと。え、この3番目はどこから来たんですかね??

その2につづく