elsur.jpn.org >

« 潜在ディリクレ配分のトピック数を手軽に決める方法 (Rのldatuningパッケージが提供する謎の4つの指標について) | メイン | 読了: Roberts, Steward, Tingley (in preparation) 構造的トピックモデルのRパッケージ stm »

2017年9月12日 (火)

 6月末頃に作ったメモ。トピックモデルの表記が資料によって違っているせいで、混乱しちゃったのである。

岩田(2015)「トピックモデル」の表記

 文書集合$\{\mathbf{w}_1, \ldots, \mathbf{w}_D\}$について考える。文書$\mathbf{w}_d$に含まれる単語を$w_{d1}, \ldots, w_{dN_d}$とする(順序は問わない)。文書集合を通して現れる語彙の数を$V$とする。

 トピックモデルによれば、文書は次のように生成される。文書集合の背後には$K$個のトピックがある。

  1. トピック$k=1,\ldots,K$のそれぞれについて、単語分布$\mathbf{\phi}_k = (\phi_{k1}, \ldots, \phi_{kV})$が生成される。
     $\mathbf{\phi}_k \sim Dirichlet(\beta)$
  2. 文書$d=1,\ldots,D$のそれぞれについて...
    1. トピック分布 $\mathbf{\theta}_d = (\theta_{d1}, \ldots, \theta_{dK})$が生成される。
       $\mathbf{\theta}_d \sim Dirichlet(\alpha)$
      トピックが生成されているわけではない点に注意。文書はあるトピックを持っているのではない(トピックの確率分布を持っている)。逆向きにいうと、トピックモデルは文書にトピックを割り当てない。
    2. 単語 $n=1, \ldots, N_d$ について...
      1. まずはトピック $z_{dn}$が生成される。単語が生成される前に、単語の数だけトピックが生成されている。逆向きにいうと、単語にトピックを割り当てていることになる。
         $z_{dn} \sim Categorical(\mathbf{\theta}_d)$
      2. いよいよ単語が生成される。あらかじめ作っておいた単語分布$\mathbf{\phi}_{z_{dn}}$を参照して、
         $w_{dn} \sim Categorical(\mathbf{\phi}_{z_{dn}})$

佐藤(2015)「トピックモデルによる統計的潜在意味解析」の表記

 トピック$k$における単語の出現分布を$\mathbf{\phi}_k = (\phi_{k,1}, \ldots, \phi_{k,V})$とし、
 $\mathbf{\phi}_k \sim Dir(\beta)$
 文書$d$のトピック分布(トピックの構成比率)を$\mathbf{\theta}_d = (\theta_{d,1}, \ldots, \theta_{d,K})$とし、
 $\mathbf{\theta}_d \sim Dir(\alpha)$
 文書$d$における$i$番目の潜在トピック$z_{d,i}$について、
 $z_{d,i} \sim Multi(\mathbf{\theta}_d)$
 $i$番目の単語$w_{d,i}$について
 $w_{d,i} \sim Multi(\phi_{z_{d, i}})$

Griffiths & Steyvers (2004, PNAS)の表記

細かいところを端折ると、
 $w_i | z_i, \phi^{(z_i)} \sim Discrete(\phi^{(z_i)}) $
 $\phi \sim Dirichlet(\beta)$
 $z_i | \theta^{(d_i)} \sim Discrete(\theta^{(d_i)})$
 $\theta \sim Dirichlet(\alpha)$
こういう順番で書かれるとめっさわかりにくいが、まあとにかく、ハイパーパラメータは$\alpha, \beta$である。

 ふつうそうですよね。良識ある大人なら、たいていの人がハイパーパラメータを$\alpha, \beta$と書いていたら、その世間の風潮にあわせますよね。俺様だけは$\beta$を$\delta$と書くぜ、読者どもよついてこい、なんて子供じみた真似はしませんよね?

Grun & Hornik (2011, J.Stat.Software) の表記
 ...というか、Rのtopicmodelsパッケージの表記。
 さあ、ここで我々は、世間の風潮など気にもしない漢たちを目の当たりにし、驚愕することになるのである。はい深呼吸!

 文書$w$について考える。文書$w$に含まれる単語を$w_{1}, \ldots, w_{N}$とする(順序は問わない)。
 文書は次のように生成される。文書集合の背後には$k$個のトピックがある。

  1. それぞれのトピックについて、単語分布$\beta$が生成される。
     $\beta \sim Dirichlet(\delta)$
  2. 文書$w$について...
    1. トピック分布 $\theta$が生成される。
       $\theta \sim Dirichlet(\alpha)$
    2. 単語 $w_i$ について...
      1. まずはトピック $z_i$が生成される。
         $z_{i} \sim Multinomial(\theta)$
      2. 多項確率分布 $p(w_i | z_i, \beta)$から単語が生成される。

 実のところ、こうやってメモしててやっと謎が解けたんだけど、topicmodelsパッケージで LDA(x, k, control = list(estimate_beta = FALSE), model=...) と指定した場合、固定される「beta」とは、トピック別単語分布のハイパーパラメータ$\beta$ではなく、トピック別単語分布そのものなのだ。ハイパーパラメータはdeltaと呼ぶのである。なんだかなあ、もう...
 なお、ハイパーパラメータのほうは、Gibbsサンプリングの場合のみ control=list(delta=...)として指定できる由。

雑記:データ解析 - トピックモデルの表記比較 (いつも思うんですが、専門家のみなさん記号を統一していただけませんかね)

rebuilt: 2020年4月20日 18:54
validate this page