でかいチーズをベーグルする

でかいチーズはベーグルすべきです。

Joint Topic Modelを実装した

LDAの簡単な拡張になっている Joint Topic Model を実装した。青いトピックモデル本で紹介されてた。この本はいろんなモデルが載ってるのでいいね。

トピックモデル (機械学習プロフェッショナルシリーズ)

トピックモデル (機械学習プロフェッショナルシリーズ)

実装したあとで気づいたけど既にnzw君が実装して実験してたのでこちらも参考に。

nzw0301.github.io

Joint Topic Model

Joint Topic Model (JTM) はLDAとほとんど同じなんだけど、文書に付加情報(カテゴリとか)がついてる場合、それも使うことができる。

どんな付加情報を扱えるかというと、基本的にはカテゴリ変数だけ。生成過程を見ると分かるように、付加情報の生成にはカテゴリカル分布が使われているので、何かしらの数値(レビュー文書のレーティングとか)が付加情報としてついていてもこのモデルではうまく扱えない(理論上は)。

このモデルが応用されている例として、対訳文書のモデリングをしてる以下の論文がある。

http://dirichlet.net/pdf/mimno09polylingual.pdf

この論文では文書として言語Aの文書、付加情報として言語Bの文書をモデルに与えて、両方の情報を用いてトピック推定をしている。JTMは複数の付加情報を同時にモデリングできるので、言語C, D, E, …の文書を同時にモデルに与えることも出来る。

実装

周辺化ギブスサンプリングで実装。ほとんどLDAと同じ。Z(トピック割り当て)のサンプリングの式がちょっと違うだけ。

Joint Topic Models

実験

JTMとLDAを比較してみた。PCもしくはFOODというカテゴリが与えられている文書がうまくモデリング出来るかを比較した。結果を見ると、JTMはカテゴリ情報をうまく使って、全く同じ単語が出現している文書にもうまくトピックを割り当てることが出来ている。LDAではカテゴリ情報が与えられていないので当然そういうことは出来ない。

JTM experiments