#24 Sparse Additive Generative Models of Text

明日のICML読み会で読む論文。id:tsubosakaさんが紹介してくれている資料もあるし、明日はこの資料で手抜きをさせてもらおうかなと考えているのですが(ぇ)、自分の理解のためにメモも書いておきます。考え方はstraightforwardだし、実装も簡単そうだし、結果もいい感じなのでいい論文なんだと思います。

何やってる論文か

  • LDAとかテキストに出てくるような潜在変数モデルは潜在変数毎に単語の多項分布を学習しちゃってる
  • "the"とか"a"はトピック毎にそんなに変わらんのやから、backgroundになるようなモデルを一個考えてあげて、差分だけ学習してあげりゃいいやん
  • 差分になるようなところはほぼ大体が0になるようなsparseなモデル化をしてあげると、持っておかないといけないパラメータ数も減らせてうれしい
    • かつ、sparseにしてないようなモデルと比べて性能も上がり二度おいしい

以上。

モデル化

文書分類での例で紹介。生成過程は以下の通り。LDAでやるときにはy_dが単語毎のトピックだと思ってくれればよい。mは以降単語の頻度の対数取ったものとして固定。
http://people.csail.mit.edu/jacobe/papers/icml2011.pdf
コアになる部分が

  • Draw \tau_{k, i}...
  • Draw \eta_{k, i}...

の部分なのだが、要するに\eta_{k, i}を0中心のラプラス分布から取ってくるのと等価である(いらんパラメータは周辺化)。ラプラス分布でそのままやってしまうとL1の正則化をまともに考えてあげないといけないから大変。そこで、ラプラスをガウスと指数の2つのfactorに分解してあげてEMをかますということをやってあげる。この辺は先週上げたlogを参照。

指数分布のパラメータ推定の問題が残るが、Jefferys' priorを置いてあげるとうまい具合にそのパラメータが消えてくれるというのもこの辺と同様の議論から。

さてここから(VB-)EMを回していくのだが、そこ下限は(2)式で与えられる。論文には

  • \etaはMAP推定
  • \tauはfully Bayesian

みたいなことが書いてあって若干よく分からんのだが、MAP推定のほうはpointwiseに推定、fully Bayesianのほうは分布で推定ってことだと思う。式は読めるが、パラメータ毎で推定の方法がなんで違うかの「心」がまだよく分かっていない、うーん...。

Estimation

Component means

Component means、つまり\etaについてはMAP推定(事後確率の一番高いところを点で推定)を行なう。(2)式の関係あるところを書いていくと普通に出るが、勾配法で計算するときに「(語彙数×語彙数次元の)逆行列が出てきて計算死ぬだろjk...」と思って見ているとトリック(?)があって、それがSherman-Morrisonの公式(たぶん業界の人には常識で俺が知らなかっただけと思われる)。この場合はAが対角行列、b、cがベクトルとなっている場合で
(A + b c^T)^{-1} = A^{-1} - \frac{1}{1 + c^T A^{-1} b} (A^{-1}b) (c^T A^{-1})
と計算できる。Aが対角成分だけ埋まっているので、逆行列は簡単。なので実質は行列の積の計算だけが必要な形になってくれて計算が回るようになる。

Variances

Variances、つまり\etaのほうはBayesianで行くよ、と書いてある。VBを使って下限を攻めていきたいので、まず変分分布がガンマ分布の積で書けると仮定する。そうするとガンマ分布の期待値やら分散の公式(いかにもPRMLの後ろのほうに載っていそう)が使えて、下限が(7)式の形で書き表わすことができる。で、これをガンマ分布のパラメータaとbについて最適化していく。ハイパーパラメータについては前述した通りで結局のところ考えなくてよくなる。事後分布はラプラス分布でなくなるが、結果としてsparsenessが出てくる、というのも重要。

実験

  • 文章分類
    • Naive Bayese(NB)と比較。NBよりいい結果を残し、パラメータの9割が0になっていた => sparseness
  • Latent Variable Models
    • LDA相当のものにSAGEのideaを入れる。変分推定で一箇所違うところが出てくるだけの修正で済む
    • トピック数を増やしていくとsparsenessの度合いも強くなる
  • Multifaced generative models
    • 隠れ変数がいくつもあり、その隠れ変数の間の相互作用のようなものも考えたい
    • まぁ、応用例なので詳細は追わなくてもよいと思う