唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

論文感想: "Exploring Topic Coherence over many models and many topics"(EMNLP-CoNLL 2012)

概要

トピックモデル[LSA(SVDによる), LSA(NMFによる), LDA]の比較を行う。
出力したトピックのコヒーレンス(一貫性)を近年提案された手法(UCI measure, UMass measure)の平均やエントロピーを用いることでモデル全体に適用する。
また人間が単語ペアにつけた類似度とトピック空間でのベクトル間の類似度の相関係数や、文書分類のタスクでも評価した。

先行研究によるとLSA(NMFによる)はPLSAと類似性があるらしい。

トピックのコヒーレンスを測る尺度

以下のようにトピックに含まれる単語v_i,v_j間のスコアの総和を求める(トピックごとに定義される)。
coherence(V)=\sum_{(v_i, v_j)\in V}score(v_i, v_j, \epsilon)
\epsilonはsmoothing factor

UCI measure("Evaluating topic models for digital libraries", Newman et al., 2010)

トピック内の単語間のPMI(pointwise mutual information)を全ての単語に対して足し合わせる。
score(v_i, v_j, \epsilon) = \log \frac{p(v_i, v_j) +\epsilon}{p(v_j)p(v_j)}
PMIの元となる確率は外部のコーパスで計算する。

UMass measure("Optimizing semantic coherence in topic models", Mimno et al., 2011)

score(v_i, v_j, \epsilon) = \log \frac{D(v_i, v_j) +\epsilon}{D(v_j)}
D(x)xが登場する文書の数。
こちらはトピックモデルを適用するコーパス自体で計算した値を使う。

結果

コヒーレンスの尺度ではLDA>LSA(NMF)>LSA(SVD)であった。
しかし類似度や文書分類のタスクではLSA(SVD)が最も良い性能を示した。
このことからLDAは人間が目で見てわかりやすいトピックを生成しているが、簡潔な表現としてはLSA(SVD)のほうがうまくいっていると考えられる。

UCI measure, UMass measureはLDAに対して提案されていたものである。
\epsilon=1が元論文では使われていたがLSAに対しては異なったより小さいsmoothing factor(本論文では\epsilon=10^{-12})が適切だった。

感想

LSAはLDAに比べて古い手法であり、近年の論文でもあまり見かけないのでLDAのほうがLSAよりもよいと思っていたが、必ずしもそうでないということがわかった。
LSA(SVD)のほうが非負制約がないからLSA(NMF)よりも精度的にうまくいきそうなのは直感的にわからないでもないが、LDAがLSAに負ける理由はあまりよくわからない……。

トピックモデルの評価指標としてperplexityや応用ではなく、トピックのコヒーレンスを評価するという視点があることを初めて知りました。