y_uti のブログ

統計、機械学習、自然言語処理などに興味を持つエンジニアの技術ブログです

サンプリングのばらつきによる同一文書間の Hellinger 距離

LDA はサンプリングによってトピック分布を推定するので、同じ文書でも実行するたびに異なる分布が推定されることになります。このばらつきがどの程度の大きさになるのかを同一文書間の Hellinger 距離として調べてみます。

実験の手順は次のとおりです。まず、plda の infer によって同一コーパスからトピック分布を 2 回推定します。そして、この 2 回の分布間の Hellinger 距離を算出します。コーパスは今までと同様に Wikipedia の 5000 記事を利用します。したがって、この手順で、5000 記事のそれぞれについて、2 回の推定によるトピック分布間の Hellinger 距離が得られます。この様子をグラフにしてみます。

f:id:y_uti:20130521230448p:plain

前回はトピック数ごとに 10 枚のグラフを列挙しましたが、今回は Excel の 3D グラフを使って一枚にまとめてみました。手前から奥に向かって 10 本の系列がトピック数 10 ~ 100 になります。各系列のデータは前回と同じように読みます。トピック数が 10 の場合では大半が 0.1 以内の距離に収まりますが、トピック数が大きくなるにつれて、推定される分布のばらつきが大きくなってくるようです。

plda では、lda, infer ともに、複数回の観測を平均するためのパラメータがありました。これを大きくすることで、結果のばらつきが小さくなることを期待できます。これまでは、最初の 10 回を捨てた後、11 回目から 15 回目までの 5 回の観測を平均していました。トピック数を 50 に固定して、この観測回数を 1 ~ 10 の範囲で変化させた結果が次のグラフになります。予想どおり、観測回数を増やすほどばらつきが小さくなることがわかります。

f:id:y_uti:20130521231239p:plain

さて、サンプリングの回数を大きくすることで分散が小さくなってくるということは、コーパスに含まれる 5000 記事の中でも、単語数の大きな文書ほどばらつきが小さくなっているのではないでしょうか。そこで、5000 記事のそれぞれについて、単語数と Hellinger 距離との関係を散布図を描いて眺めてみます。

f:id:y_uti:20130521232154p:plain

この図は 50 トピック、5 回の観測の平均としたものです。やはり、単語数の大きな記事ほどばらつきが小さくなる様子が見てとれます。なお、コーパスに対する前処理の段階で、極端に短い記事を取り除いているため、単語数が 0 に近い方はデータが存在しなくなっています。