A Biterm Topic Model for Short Texts(WWW 2013)
概要
LDAやPLSIは文書中の単語が少ない時にうまくいかない.なぜならば文書ごとにトピックの分布があって,それによって単語が生成されるという仮定があるからだ.
提案する Biterm Topic Model(BTM) ではトピックの分布は文書全体に対して存在していて,そこから各文書に対して2語(biterm)が生成されると仮定する.
すごく大雑把に言えば,通常のLDAではトピックにおける単語の出現確率と,文書におけるトピックの出現確率
が学習されるが,今回のBTMではトピックにおける単語の出現確率
が学習されるのは共通しているが,トピックの出現確率は
となっていて,文書を引数に取らず,全文書に対して計算される.
手法
Gibbs sampling は次のように行う.シンプル.論文中にのnotationを見つけることができなかったが,
にかかっているので恐らくユニークな語
の数.
- ユニークな Biterm の集合 B から biterm
を選ぶ
に従って z を振る
- 実装時はbに振られていたzを
とすると
とする
- 実装時はbに振られていたzを
を更新する
- 実装時は新しい
について
とする
- 実装時は新しい
- あとはこれを全 B 繰り返す
- このサンプリングを N 回繰り返す
実装
Ruby で実装.biterm topic model(www2013) · GitHub
作者による実装も公開されている.http://gc.codehum.com/p/btm/
よく見ると
2013-8-28 Add online BTM.
http://gc.codehum.com/p/btm/
2013-6-1 Add the process of single word document Inference.
と書かれている.そもそも後者については論文中に定義されていないわサンプルデータには語が一つの文書が登場するわで非常に気になる.大雑把に考えれば,学習時には語が一つの文書は無視して,出力時にとだけすれば良いのかもしれない.
前者についても,どうオンライン化したのか気になる.
試してみた感じ
ハイパーパラメータによるとは思うけど,トピックがLDAより局所的に立ちやすい印象がある.