論文紹介「ガウス過程に基づく連続空間トピックモデル」
Deep Learningで単語を連続なユークリッド空間に投影したらそれが意味を表現すると盛り上がっているけど、それをやるのに最適化の難しいニューラルネットを使わないで正規分布だと思って最適化したらいい、という論文。
word2vecには直接論文上は言及していない。制限ボルツマンマシン(RBM)は一般にLDA(Letent Dirichlet Allocation)を超えるって言われてて、更に多層にして"Deep Learning"したら更に性能が上がるよ、なんて報告されているけど、最適化が難しいし、何を学習してんのかわかんないし、他のモデルとの接続が難しい。だから研究の場ぐらいでしか使われてない。
RBMでは隠れ層への重みが意味をコードしていて、LDAではp(k|w)が意味をコードしていて、結局のところ「単語がd次元連続ベクトルに対応している」というコンセプトが重要。というわけで単語をd次元ベクトルに対応づける未知の関数φがあって、このd次元ベクトルφ(w)がφ(w) ~ N(0, I_d) と仮定しよう。
単語の出現確率はデフォルトの確率(これは最尤推定で求める)にexp(f(w))を掛けたものとする。fはガウス過程に従う曲面。ガウス過程の意味はまだよくわかってない。要するに次元を固定していない正規分布のようなものというイメージ。
fは計算が難しいのでやっぱりd次元の正規分布に従うuを便宜的に導入して、f = Φuとする。uは文書と1対1対応。要するに文書にも単語と同じ空間上に位置を与えて、どの単語が出やすくなるかという情報を内積で表現するということね。
実際の単語の出現頻度の分布はガウス分布っぽい時もあるけど少し頻度高い側に裾が長い分布になっているのでa0をパラメータとするPolya分布を使うことにする。
潜在変数φ(w), u, a0を観測された単語の出現頻度からいい感じに求めたい。そこでマルコフ連鎖モンテカルロ(MCMC)の一つメトロポリスヘイスティング(MH)を使う。要するに一つの変数以外を止めて、選んだ変数を元の値からマルコフ的に決めて、新しい値がMH基準で受理されればそれを使って更新、ダメだったら元の値に戻す、っていう遺伝的アルゴリズム風のことをやる。
まとめ:提案手法CSTMはRBMを連続なガウス分布にしたものともみなせて、MHで簡単に最適化でき、正規化は事前分布を置いてベイズ生成モデルにしていることで自然に正規化される。混合モデルではなく積モデルであることが原因で次元数が大きすぎるときに問題が起きるので次元数自体をベイズ的に行うことが今後の課題(CRPみたいに??)
感想:今回、文書ごとにuがあるってモデルなので、直接的にword2vecと同じようなことはできないという理解。「各単語の前後何単語」ってウィンドウで切って、それぞれのウィンドウを文書であるとみなせばいいのかなぁ。まあでもニューラルネットをブラックボックスとして扱うよりは何をやっているか少しわかりやすいのかもしれない。word2vecの論文をまだしっかり読んでないので、それを読んでから考える。あと共著に後藤真孝先生が入っているなぁと思ったら謝辞にOngaCRESTプロジェクトって書いてあったから、自然言語だけじゃなくて音楽への応用も視野に入っているんだろうなぁ。それはそれで面白そう。
出典
論文: http://chasen.org/~daiti-m/paper/nl213cstm.pdf
ガウス過程の解説だけどさっぱりわからない: http://www.ism.ac.jp/~daichi/paper/svm2009advgp.pdf
MCMCとMHの解説: http://ebsa.ism.ac.jp/ebooks/sp/sites/default/files/ebook/1881/pdf/vol3_ch10.pdf
さいごに
この記事はDeep Learningに興味を持った著者が、関連論文を読んで勉強しながら書いているものです。そのため間違いなどが含まれている可能性があります。もしなにか気になる点がありましたらご指摘いただけるとありがたいです。