Hatena::Diary

糞ネット弁慶

大学院の授業についていけないので退学したい これまでやったことまとめ, 日記, メモ, Tsukuba.R, 勉強会,

2010-10-17

[]TOTの続き & 「やっぱり今回も駄目だったよ」 & 多分成功 05:41 TOTの続き & 「やっぱり今回も駄目だったよ」 & 多分成功 - 糞ネット弁慶 を含むブックマーク

今週のDBCLS & Topics over Time実装した - 糞ネット弁慶

TOTというモデルを水曜/木曜/金曜と実装していて土曜に動かしたら結果が明らかに狂いまくっててひとしきり泣いていた。

具体的には各トピックの上位単語がほぼ似たような単語、それもトピックとして解釈できない単語ばかりになってしまっている。これまでとは異なりMeCabの辞書を入れ替えて形態素解析をかけた後のデータだったので、ストップワードの問題が新たに現れたとも思ったが、普通のLDAに同じファイルを投げるとストップワードらしき単語が現れず、ある程度トピックの解釈が可能な特徴ある単語が現れている。

実装はほぼコピペに近いレベルなので、原因になりそうな部分はサンプリング

そもそもTOTにおけるサンプリング

P(z_{d_i}|w,t,z_{-di},¥alpha,¥beta,¥Psi) ¥propt (m_{d,z_{di}}) ¥times ¥frac{n_{z_{di},w_{di}}+¥beta_{w_di}-1}{n_{z_{di},¥cdot}+W¥beta-1} ¥, ¥frac{ (1-t_{di})^{¥psi_{z_{di},1}-1} ¥, t_{di}^{¥psi_{z_{di},2}-1}}{B(¥psi_{z_{di},1},¥psi_{z_{di},2})}

で行ってこの時

¥psi_{z,1}=¥bar{t}_z¥Bigl(¥frac{¥bar{t}_z(1-¥bar{t}_z)}{s^2_z} - 1¥Bigr)¥¥¥psi_{z,2}=(1-¥bar{t}_z)¥Bigl(¥frac{¥bar{t}_z(1-¥bar{t}_z)}{s^2_z} - 1¥Bigr)

サンプリングごとにアップデートするみたいな話。¥bar{t}_z,s^2_zはそれぞれトピックzに属するtokenのtimestampの標本平均及び標本分散。

ベータ関数がまずいんじゃないかとかずっと考えててぐぐっていたら以下の記述を発見。

Most similar to LDA is the Topics over Time model (ToT) (WM06). ToT assigns a time stamp t in the range [0,1] to each document

CiteSeerX — Topic Correlations over Time

確かに論文中ではtimestampに関する定義が一言も述べられておらず、unix timeにすべきなのか何にすべきなのか全く分からなかった。実験部分でも年+日付と年それぞれで行われておりここも実装の謎部分だった。というかよく考えて見ればBeta distributionからサンプリングするんだからtimestampは[0,1]でなければならないのか。

そこで[0,1]にtimestampを正規化してやるとなんかそれっぽい結果になったのできっと実装成功。

EmmanuelLevinasEmmanuelLevinas 2010/10/20 19:55 なんだ、お前便所じゃねーかwww
のらDJにスターつけてないで自分でコメント書いたら?
てめえみたいな陰険陰湿な奴はヒットリスト行きだな。
その前に就職難で死にそうだけどw 早く退学しろ。

トラックバック - http://d.hatena.ne.jp/repose/20101017