Se ha denunciado esta presentación.
Se está descargando tu SlideShare. ×
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio
Anuncio

Eche un vistazo a continuación

1 de 40 Anuncio

Más Contenido Relacionado

Presentaciones para usted (16)

A los espectadores también les gustó (18)

Anuncio

Similares a Topic model (20)

Más de saireya _ (15)

Anuncio

Más reciente (20)

Topic model

  1. 1. Topic model April 8, 2014 1 / 35
  2. 2. Topic model Topic model 文書などのデータには、そこに現れる語に潜在的なトピック (話題) がある と考え、文書からトピックを推定するモデル トピックが分かると、類似する文書を分類 (クラスタリング) 可能に 個々の語ではなくトピックを単位として考えることで、類義語の集約が 可能に (eg. 「ネコ」と「猫」を同じ語とみなせる) 類義語を集約することで、処理精度が向上 (eg. 「ネコ」で検索したとき、「猫」を含むページを発見可能に) 類義語を集約することで、必要なメモリ・時間が少なく 2 / 35
  3. 3. 特異値分解 (SVD) Singular Value Decomposition(SVD) 任意の行列 A に対し r ∶= rank(A) としたとき、次の分解が可能 ∀ A ∈ M(m, n), ∃ U ∈ M(m, r), V ∈ M(r, n), 𝛴 ∈ diag(r); A = U 𝛴t V 𝛴 = ⊕ 𝜎i(𝜎i ≥ 0) となり、 𝜎i を M の特異値という U, V をは直交行列 (t UU = t VV = I) で、これらの列ベクトルを左特 異ベクトル、右特異ベクトルという Notice U = (𝒖i), V = (𝒗i) とすると、A = ∑ 𝜎i 𝒖i t 𝒗i 固有値分解は A𝒖i = 𝜎i 𝒖i と表されるので、SVD の特殊な場合 3 / 35
  4. 4. 特異値分解 (SVD) SVD による次元削減 U, V の取り方によっては 𝜎1 ≥ 𝜎2 ≥ ⋯ ≥ 𝜎r > 0 とできるので、以下このよ うな順序を仮定 このとき Ak ∶= ∑k i=1 𝜎i 𝒖i t 𝒗i ∈ M(m, n) とすると、ある程度大きな k をとれば Ak ≃ A と近似できる (∵ Eckart-Young の定理、後述) Ak = Uk 𝛴kVk とすると、 Uk = (𝒖i) ∈ M(m, k), Vk = (𝒗i) ∈ M(k, n), 𝛴k = ⊕k i=1 𝜎i ∈ diag(k) Uk, Vk は U, V のうち第 1 列から第 k 列までを取り出した行列、 𝛴k は 特異値を (大きい順に)k 個並べた対角行列 A を記録するには O(mn) の空間が必要だが、Ak を記録するには O(mk) + O(nk) + O(k) = O(m + n)(∵k: const.) で可能 4 / 35
  5. 5. 特異値分解 (SVD) Example A = 󰀷 𝒖1 𝒖2 ⋯ 𝒖k ⋯ 𝒖r 󰀸 ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ 𝜎1 𝜎2 ⋱ 𝜎k ⋱ 𝜎r ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ 𝒗1 𝒗2 ⋮ 𝒗k ⋮ 𝒗r ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ≃ 󰀷 𝒖1 𝒖2 ⋯ 𝒖r 𝒐 ⋯ 󰀸 ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ 𝜎1 𝜎2 ⋱ 𝜎k 𝒐 ⋱ ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ ⎛ ⎜ ⎜ ⎜ ⎜ ⎜ ⎜ ⎝ 𝒗1 𝒗2 ⋮ 𝒗k 𝒐 ⋮ ⎞ ⎟ ⎟ ⎟ ⎟ ⎟ ⎟ ⎠ 5 / 35
  6. 6. 特異値分解 (SVD) Eckart-Young の定理 ‖A − Ak‖Frobenius = √ r ∑ i=k+1 𝜎2 i Frobenius ノルムの定義は ‖A‖Frobenius ∶= √∑ a2 ij この定理により limk→r ‖A − Ak‖Frobenius = 0 なので limk→r Ak = A で あり、Ak は A の近似になっている 6 / 35
  7. 7. Latent Semantic Analysis(LSA) Latent Semantic Analysis/Indexing(LSA/LSI) 文書集合を D = {di}、語集合を W = {wi}、トピック集合を T = {ti|i = 1, ⋯ , r} とし、A = (aij) を次のように定める。 aij ∶= 󰃠 positive (wi ∈ dj) 0 (wi ∉ dj) ここで A = U 𝛴t V と特異値分解すると、 𝜎i はトピック ti の重要度を表 す (r は A の一次独立な (トピックの異なる) 文書数) また U = (uij), V = (vij) とすると、aij = ∑ 𝜎kuikvkj となるので、uij は語 wi がトピック tj に属する度合いを、vij は文書 di がトピック tj に 属する度合いを表す (と解釈できる) A を近似した Ak は、重要な k 個のトピック t1, ⋯ , tk についてのみ考慮 した行列になる 7 / 35
  8. 8. Latent Semantic Analysis(LSA) Problems of LSA k の値 (トピック数) を予め ad-hoc に決定している (適切な k の選択法 がない) U, V の成分には負の値が現れうるが、負の値を意味付けできない 1 文書に 1 つのトピックしかないと仮定している Frobenius ノルム (‖A − Ak‖) の意味での最適化 (最小二乗法) は、誤差 が正規分布に従うことを仮定しているが、A の成分は頻度なので非負の 離散値であり、仮定を満たさない (ため、最小二乗法では最適化でき ない) ⇨ LSA は理論的根拠が不十分で、発展性に乏しい 8 / 35
  9. 9. Probablistic LSA(pLSA) Probablistic LSA(pLSA) 文書 d と語 w の結合確率を、トピック集合を Z として次のようにモデル化 (図 1(a))a p(d, w) = ∑ z∈Z p(d, w, z)(∵Z について周辺化) = p(d) ∑ z∈Z p(w, z|d) = p(d) ∑ z∈Z p(w|z, d)p(z|d) = p(d) ∑ z∈Z p(w|z)p(z|d)(∵d と w は条件付き独立) d と w は条件付き独立だと仮定 p(d) という謎の確率が存在 (文書 d が観測される確率?) a Hofmann による論文のうち、[4][5] より [6] が詳しい。 9 / 35
  10. 10. Probablistic LSA(pLSA) Probablistic LSA(pLSA) pLSA は次のようにモデル化することも可能 (図 1(b))a p(d, w) = ∑ z∈Z p(d, w, z)(∵Z について周辺化) = ∑ z∈Z p(z)p(d, w|z) = ∑ z∈Z p(z)p(d|z)p(w|z)(∵d と w は条件付き独立) 実際に観測されている (学習データに含まれている)(d, w) の組につい て、p(d, w) を最大化したい ⇨ EM 法による最尤推定で最適化 a 先のページの式に Bayes の定理を用いても同じ結果になる 10 / 35
  11. 11. Probablistic LSA(pLSA) Graphical model 文書 d(∈ D) と語 w(∈ W) は、トピック z(∈ Z) を介して条件付き独立 文書数を M(= # D)、語数を N = # W とし、文書中の語ごとにトピック があると仮定 p(d, w) は非対称なモデル (a) でも対称なモデル (b) でも表現・実装可能 M (= #D) N (= #W) z wd (b) symmetric model M (= #D) N (= #W) z wd (a) asymmetric model Figure: Graphical model of pLSA 11 / 35
  12. 12. Probablistic LSA(pLSA) LSA and pLSA P ∶= (p(di, wj)), U ∶= (p(di|zj)) ∈ M(# D, # Z), V ∶= (p(wi|zj)) ∈ M(# W, # Z), 𝛴 ∶= ⊕ p(zi) ∈ M(# Z, # Z) とおくと、P = U 𝛴t V 条件付き独立の仮定により、uij はトピック j から文書 i が現れる確率、 vij はトピック j から語 i が現れる確率となり、U, V の成分を明瞭に解 釈可能 (どの成分も確率なので、負の値も現れない) トピック Z から語 W が語毎に生成されるので、文書に複数のトピック が含まれることを許容 最尤推定を用いるので、最適化の根拠が明瞭 EM-algorithm は局所解に陥りうるが、tempering により緩和可能 EM-algorithm の反復に必要な計算量は、SVD に比べてさほど多くない 12 / 35
  13. 13. Probablistic LSA(pLSA) EM-algorithm 母数 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) を最適化するため、逐次的に最尤推 定を行う [6][7] 1 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) を適当な値に初期化 2 E-step(expectation) p(zk|di, wj) を計算 3 M-step(maximization) p(di), p(wj|zk), p(zk|dj) を計算 4 E-step へ戻る 13 / 35
  14. 14. Probablistic LSA(pLSA) E-step 観測されたデータ (di, wj) がトピック zk である確率を求める p(zk|di, wj) = p(zk, di, wj) p(di, wj) = p(wj|zk)p(zk|di)p(di) p(di) ∑z p(wj|z)p(z|di) = p(wj|zk)p(zk|di) ∑z p(wj|z)p(z|di) 母数 p(w|z), p(z|d) に現時点での値を代入すれば、すべての k について p(zk|di, wj) を求めることが可能 14 / 35
  15. 15. Probablistic LSA(pLSA) M-step 観測データが現れる確率 (尤度)L を最大化 (d での w の出現頻度を n(d, w)、 d の語数を n(d)(= ∑ n(d, w)) とする) log L ∶= log p((d1, w1), ⋯ , (dN , wn(dN))) = log ∏ i ∏ j p(di, wj)n(di,wj) = ∑ i ∑ j n(di, wj) log p(di, wj) = ∑ i ∑ j n(di, wj) log p(di) ∑ k p(wj|zk)p(zk|di) 対数尤度の期待値は、 Eq[log L] = ∑ i ∑ j n(di, wj) ∑ k p(zk|di, wj) log p(di)p(wj|zk)p(zk|di) = ∑ i ∑ j n(di, wj) ∑ k p(zk|di, wj)(log p(di) + log p(wj|zk) + log p(zk|d 15 / 35
  16. 16. Probablistic LSA(pLSA) M-step (cont.) 制約条件 ∑i log p(di) = 1, ∑j log p(wj|zk) = 1, ∑k log p(zk|di) = 1 の下で Eq[log L] を最大化するので、 𝜆, 𝜏k, 𝜌i を Lagrange 乗数として、 H ∶= Eq[log L] + 𝜆(1 − ∑ i log p(di)) + ∑ k 𝜏k(1 − ∑ j log p(wj|zk)) + ∑ i 𝜌i(1 − ∑ k log p(zk|di)) これをそれぞれの母数で偏微分すると、H が最大となるとき、 𝜕 𝜕p(di) H = ∑ j n(di, wj) ∑ k p(zk|di, wj) p(di) − 𝜆 = 0 𝜕 𝜕p(wj|zk) H = ∑ i n(di, wj) p(zk|di, wj) p(wj|zk) − 𝜏k = 0 𝜕 H = n(d , w ) p(zk|di, wj) − 𝜌 = 0 16 / 35
  17. 17. Probablistic LSA(pLSA) M-step (cont.) これらを解くと、 p(di) ∝ ∑ j n(di, wj) ∑ k p(zk|di, wj) = ∑ j n(di, wj) = n(di) p(wj|zk) ∝ ∑ i n(di, wj)p(zk|di, wj), p(zk|di) ∝ ∑ j n(di, wj)p(zk|di, wj) 以上より、母数の更新式は、 p(di) = n(di) ∑i n(di) , p(wj|zk) = ∑i n(di, wj)p(zk|di, wj) ∑j ∑i n(di, wj)p(zk|di, wj) p(zk|di) = ∑j n(di, wj)p(zk|di, wj) ∑k ∑j n(di, wj)p(zk|di, wj) = ∑j n(di, wj)p(zk|di, wj) ∑j n(di, wj) ∑k p(zk|di, wj) = ∑j n(di, wj)p(zk|di, wj) ∑j n(di, wj) = ∑j n(di, wj)p(zk|di, wj) n(di) 17 / 35
  18. 18. Probablistic LSA(pLSA) EM-algorithm (add-up) 母数 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) を最適化 1 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) を適当な値に初期化 2 E-step(expectation) p(zk|di, wj) = p(wj|zk)p(zk|di) ∑z p(wj|z)p(z|di) 3 M-step(maximization) p(di) = n(di) ∑i n(di) , p(wj|zk) = ∑i n(di, wj)p(zk|di, wj) ∑j ∑i n(di, wj)p(zk|di, wj) p(zk|di) = ∑j n(di, wj)p(zk|di, wj) n(di) 4 E-step へ戻る 18 / 35
  19. 19. Probablistic LSA(pLSA) Remark Hofmann[6] では p(d) ∝ n(d) という近似を用い、p(d) を定数として 扱う Hofmann[4] では z → d, z → w のモデルを用い、 p(z|d, w), p(z), p(d|z), p(w|z) を母数として最適化。M-step の更新式は、 p(zk) = ∑i ∑j n(di, wj)p(zk|di, wj) ∑i n(di) p(wj|zk) = ∑i n(di, wj)p(zk|di, wj) ∑j ∑i n(di, wj)p(zk|di, wj) p(di|zk) = ∑j n(di, wj)p(zk|di, wj) ∑i ∑j n(di, wj)p(zk|di, wj) 簡明な実装例には [9] などがある 19 / 35
  20. 20. Probablistic LSA(pLSA) Problems of pLSA pLSA で最適化する母数 p(zk|di, wj), p(di), p(wj|zk), p(zk|dj) の個数は、 O(# D + # W# Z + # Z# D) = O(# D + # W)(∵# Z: const.) であり、訓練データの文書数 # D、語数 # W に対して線型に増加するた め、訓練データへの過適合 (overfit) が生じやすい pLSA では文書 d も観測データとして扱っているが、訓練データにない 文書 d に対する p(d) をどう割り当てるのか不明 20 / 35
  21. 21. Latent Dirichlet Allocation(LDA) Latent Dirichlet Allocation(LDA) 文書を語のベクトル 𝒘 として表したとき、文書の生成確率を次のようにモ デル化 [2] 1 文書の語数 N が選ばれる 2 その文書におけるトピックの混合比 𝜽 ∼ Dirichlet(𝜶) が選ばれる 3 個々の語 wn について、 1 トピック zn ∼ Multinomial(𝜽) が選ばれる 2 zn と行列 𝜷(𝛽ij ∶= p(wj|zi)) から wn が生成される p(𝒘|𝜶, 𝜷) = ∫ ∑ z p(𝜽, z, 𝒘|𝜶, 𝜷)d𝜽 = ∫ p(𝜽|𝜶) ∏ w ∑ z p(z|𝜽)p(w|z, 𝜷)d𝜽 21 / 35
  22. 22. Latent Dirichlet Allocation(LDA) Graphical model トピック数を K(= # Z)、文書数を M(= # D)、個々の文書の語数を N と し、文書中の語ごとにトピックがあると仮定 (モデル (a)) 学習の際は、 𝜽 と z が条件付き独立になるような分布 q が存在すると仮 定 (因子化仮定) したモデル (b) を用いる K (= #Z) M (= #D) N (= #W) zθ (b) variational distribution M (= #D) N (= #W) z wθ (a) LDA α β ϕγ η Figure: Graphical model of LDA 22 / 35
  23. 23. Latent Dirichlet Allocation(LDA) Graphical model 𝜶 は K 次元ベクトルで、一般的な各トピックの現れ易さを表す母数 𝜽 ∼ Dirichlet(𝜶) も K 次元ベクトルで、個々の文書における各トピック の現れ易さを表す母数 𝜷 ∈ M(K, # W) はトピック数×語彙数の行列で、i, j-成分はトピック i での語 j の現れ易さを表す母数 ⇨ 𝜶, 𝜷 を学習により最適化すれば、出現し易いトピックやトピック毎の頻 出語が分かる Dirichlet 分布 母数 𝜶 = (𝛼1, ⋯ , 𝛼k) の Dirichlet 分布に従う連続型確率変数 𝜽 = (𝜃1, ⋯ , 𝜃k) は、次の確率密度関数で表される p(𝜽; 𝜶) = 𝛤(∑i 𝛼i) ∏i 𝛤(𝛼i) ∏ i 𝜃 𝛼i−1 i 23 / 35
  24. 24. Latent Dirichlet Allocation(LDA) VB-EM-algorithm p(w|𝜶, 𝜷) を最大化する母数 𝜶, 𝛽ij, 𝜸, 𝜙ni を求める (変分 Bayes EM-algorithm) 1 𝜶, 𝛽ij, 𝜸, 𝜙ni を適当な値に初期化 2 E-step(expectation) 𝜸, 𝜙ni を計算 3 M-step(maximization) 𝜶, 𝛽ij を計算 4 E-step へ戻る 24 / 35
  25. 25. Latent Dirichlet Allocation(LDA) VB-EM-algorithm log p(𝒘|𝜶, 𝜷) = log ∫ ∑ z p(𝜽, z, 𝒘|𝜶, 𝜷)d𝜽 = log ∫ ∑ z q(𝜽, z) p(𝜽, z, 𝒘|𝜶, 𝜷) q(𝜽, z) d𝜽 ≥ ∫ ∑ z q(𝜽, z) log p(𝜽, z, 𝒘|𝜶, 𝜷) q(𝜽, z) d𝜽(∵Jensen の不等式) = ∫ ∑ z q(𝜽, z) log p(𝜽, z, 𝒘|𝜶, 𝜷)d𝜽 − ∫ ∑ z q(𝜽, z) log q(𝜽, z = Eq[log p(𝜽, z, 𝒘|𝜶, 𝜷)] − Eq[log q(𝜽, z)] この下限を F(𝜸, 𝝓, 𝜶, 𝜷) とおき、最大化する 25 / 35
  26. 26. Latent Dirichlet Allocation(LDA) VB-EM-algorithm F(𝜸, 𝝓, 𝜶, 𝜷) = Eq[log p(𝜽, z, 𝒘|𝜶, 𝜷)] − Eq[log q(𝜽, z)] = Eq[log(p(𝒘|𝜽, z, 𝜶, 𝜷)p(𝜽, z|𝜶, 𝜷))] − Eq[log(q(𝜽)q(z))] (∵𝜽, z は条件付き独立) = Eq[log(p(𝒘|z, 𝜷)p(z|𝜽, 𝜶, 𝜷)p(𝜽|𝜶, 𝜷))] − Eq[log(q(𝜽)q(z))] (∵𝒘 と 𝜽, 𝜶 は条件付き独立) = Eq[log(p(𝒘|z, 𝜷)p(z|𝜽)p(𝜽|𝜶))] − Eq[log(q(𝜽)q(z))] (∵z と 𝜶, 𝜷、 𝜽 と 𝜷 は条件付き独立) = Eq[log p(𝜽|𝜶)] + Eq[log p(z|𝜽)] + Eq[log p(𝒘|z, 𝜷)] − Eq[log q(𝜽)] − Eq[log q(z)] 26 / 35
  27. 27. Latent Dirichlet Allocation(LDA) VB-EM-algorithm 更に F を展開しa 、 𝛹(z) ∶= d dz log 𝛤(z)(= 𝛤′ (z) 𝛤(z) ) をディガンマ関数とし、 F(𝜸, 𝝓, 𝜶, 𝜷) = log 𝛤(∑ j 𝛼j) − ∑ i log 𝛤(𝛼i) + ∑ i (𝛼i − 1)(𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) + ∑ n ∑ i 𝜙ni(𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) + ∑ n ∑ i ∑ j 𝜙niw j n log 𝛽ij − log 𝛤(∑ j 𝛾j) + ∑ i log 𝛤(𝛾i) − ∑ i (𝛾i − 1)(𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) − ∑ n ∑ i 𝜙ni log 𝜙ni (各行は前ページの式における各項に対応) a 途中の導出は [10][11] が詳しい。 27 / 35
  28. 28. Latent Dirichlet Allocation(LDA) E-step 制約条件 ∑i 𝜙ni = 1 の下、F を最大化する 𝜙ni を求める H 𝜙 ∶= F(𝜸, 𝜙, 𝜶, 𝜷) + 𝜆n(∑ j 𝜙nj − 1) とおくと、H 𝜙 が最大となるとき、 𝜕 𝜕𝜙ni H 𝜙 = 𝜕 𝜕𝜙ni (𝜙ni(𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) + 𝜙ni log 𝛽iv − 𝜙ni log 𝜙ni + 𝜆n 𝜙ni) = 𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) + log 𝛽iv − log 𝜙ni + 𝜆n = 0 ∴𝜙ni ∝ 𝛽iv exp(𝛹(𝛾i) − 𝛹(∑ j 𝛾j)) 正規化すると、 𝜙ni = 𝛽iv exp(𝛹(𝛾i) − 𝛹(∑j 𝛾j)) 28 / 35
  29. 29. Latent Dirichlet Allocation(LDA) E-step 次に、F を最大化する 𝛾i を求めると、F が最大となるとき、 𝜕 𝜕𝛾i F = 𝜕 𝜕𝛾i (𝛹(𝛾i)(𝛼i + ∑ n 𝜙ni − 𝛾i) − 𝛹(∑ j 𝛾j) ∑ j (𝛼j + ∑ n 𝜙nj − 𝛾j) − log 𝛤(∑ = 𝛹′ (𝛾i)(𝛼i + ∑ n 𝜙ni − 𝛾i) − 𝛹′ (∑ j 𝛾j) ∑ j (𝛼j + ∑ n 𝜙nj − 𝛾j) = 0 ∴𝛾i = 𝛼i + ∑ n 𝜙ni 29 / 35
  30. 30. Latent Dirichlet Allocation(LDA) M-step E-step では文書という単位を考えずに 𝜙ni, 𝛾i の更新式を導いたが、 M-step では、すべての文書 𝒘1, ⋯ , 𝒘M について考える 以下、F ∶= ∑d F として、母数 𝛽ij, 𝛼i の更新式を求める 𝜙ni, 𝛾i と w j n は文書によって変わるので、以下 𝜙dni, 𝛾di, w j dn と表す 30 / 35
  31. 31. Latent Dirichlet Allocation(LDA) M-step 次に、制約条件 ∑j 𝛽ij = 1 の下、F を最大化する 𝛽ij を求める H 𝛽 ∶= F(𝜸, 𝝓, 𝜶, 𝜷) + 𝜆i(∑ j 𝛽ij − 1) とおくと、H 𝛽 が最大となるとき、 𝜕 𝜕𝛽ij H 𝛽 = 𝜕 𝜕𝛽ij ∑d ∑n 𝜙dniw j dn 𝛽ij + 𝜆i = 0 ∴𝛽ij ∝ ∑ d ∑ n 𝜙dniw j dn 正規化すると、 𝛽ij = ∑d ∑n 𝜙dniw j dn ∑l ∑d ∑n 𝜙dniwl dn 31 / 35
  32. 32. Latent Dirichlet Allocation(LDA) M-step 次に、F を最大化する 𝛼i を求めると、 𝜕 𝜕𝛼i F = 𝜕 𝜕𝛼i (∑ d (log 𝛤(∑ j 𝛼j) − log 𝛤(𝛼i) + (𝛼i − 1)(𝛹(𝛾di) − 𝛹(∑ j 𝛾dj)))) = M(𝛹(∑ j 𝛼j) − 𝛹(𝛼i)) + ∑ d (𝛹(𝛾di) − 𝛹(∑ j 𝛾dj)) このままでは 𝜕 𝜕𝛼i F = 0 としても 𝛼i の更新式を求められないので、 Newton-Raphson 法などにより逐次更新し、 𝜶 の不動点を求める Newton-Raphson 法 𝜶 の Hesse 行列を H(𝜶)(∶= ( 𝜕2 F 𝜕𝛼i 𝜕𝛼j )) としたとき、次の更新式で 𝜶 を反復的 に更新 𝜶 ∶= 𝜶 − H(𝜶)−1 ∇𝜶 32 / 35
  33. 33. Latent Dirichlet Allocation(LDA) VB-EM-algorithm (add-up) p(w|𝜶, 𝜷) を最大化する母数 𝜶, 𝛽ij, 𝜸, 𝜙ni を求める 1 𝜶, 𝛽ij, 𝜸, 𝜙ni を適当な値に初期化 2 E-step(expectation) 𝜙ni = 𝛽iv exp(𝛹(𝛾i) − 𝛹(∑j 𝛾j)) ∑l 𝛽lv exp(𝛹(𝛾l) − 𝛹(∑j 𝛾j)) , 𝛾i = 𝛼i + ∑ n 𝜙ni 3 M-step(maximization) 𝛽ij = ∑d ∑n 𝜙dniw j dn ∑l ∑d ∑n 𝜙dniwl dn , 𝜶 = 𝜶 − H(𝜶)−1 ∇𝜶 4 E-step へ戻る 33 / 35
  34. 34. Latent Dirichlet Allocation(LDA) Remark 求めた 𝜶, 𝜷 は次のような意味を持つ 𝛼i は、トピック i の現れ易さを表す 𝛽ij は、トピック i での語 j の現れ易さを表す 簡明な実装例には [8] などがある 学習していない文書に対しては、学習した 𝜶, 𝜷 を用いて 𝝓, 𝜸 を再計算 することで、文書の語のトピックを算出可能 34 / 35
  35. 35. Latent Dirichlet Allocation(LDA) Gibbs sampling 実際にサンプリングを繰り返して最適な z を求める手法 [3] VB-EM より更新式の導出が簡単で高性能だが、VB-EM より若干遅い 最初に、一般にどのトピックも平等に現れうる、つまり 𝜶 のすべての成 分は等しい (𝛼i = 1 K ) と仮定する 更新式の導出の詳細は [13] を参照 35 / 35
  36. 36. EM-algorithm EM-algorithm パラメータ 𝜽 と潜在変数 z をもつデータについて、観測されたデータ D が 現れる確率 L(𝜽) が最大になるよう最適化する手法 [12][1] L(𝜽) ∶= p(D|𝜽) = ∫ p(D, z|𝜽)dz 尤度関数 L(𝜽) を最大化するため、対数尤度を考え、任意の分布 q(z|D) を導 入する log L(𝜽) = log ∫ p(D, z|𝜽)dz = log ∫ q(z|D) p(D, z|𝜽) q(z|D) dz ≥ ∫ q(z|D) log p(D, z|𝜽) q(z|D) dz(∵Jensen の不等式) この下限を F(q, 𝜽) とおくと、log L(𝜽) は常に F より大きくなるので、F を 最大化して L を底上げすればよい 36 / 35
  37. 37. EM-algorithm E-step F を q について最大化 F(q, 𝜽) = ∫ q(z|D) log p(D, z|𝜽) q(z|D) dz = ∫ q(z|D) log p(z|D, 𝜽)p(D|𝜽) q(z|D) dz = ∫ q(z|D)(log p(D|𝜽) + log p(z|D, 𝜽) q(z|D) )dz = ∫ q(z|D)(log p(D|𝜽) − log q(z|D) p(z|D, 𝜽) )dz = ∫ q(z|D) log p(D|𝜽)dz − ∫ q(z|D) log q(z|D) p(z|D, 𝜽) dz = log p(D|𝜽) ∫ q(z|D)dz − D(q(z|D)||p(z|D, 𝜽)) = log p(D|𝜽) − D(q(z|D)||p(z|D, 𝜽)) KL-divergence D(q||p) は q = p のとき最小となるので、q(z|D) = p(z|D, 𝜽) のとき F は最大 37 / 35
  38. 38. EM-algorithm M-step F を 𝜽 について最大化 F(q, 𝜽) = ∫ q(z|D) log p(D, z|𝜽) q(z|D) dz = ∫ q(z|D)(log p(D, z|𝜽) − log q(z|D))dz = ∫ q(z|D) log p(D, z|𝜽)dz − ∫ q(z|D) log q(z|D)dz = E[log p(D, z|𝜽)] − H(q(z|D)) 第 2 項 (q のエントロピー) は 𝜽 に依らないので、E[log p] を 𝜽 について最 大化 38 / 35
  39. 39. Reference I David Andrzejewski. Expectation Maximization. url: http://pages.cs.wisc.edu/~andrzeje/research/em.pdf. David M. Blei, Andrew Y. Ng, and Michael I. Jordan. “Latent Dirichlet Allocation”. In: J. Mach. Learn. Res. 3 (2003), pp. 993–1022. url: http://jmlr.org/papers/v3/blei03a.html. Thomas L. Griffiths and Mark Steyvers. “Finding scientific topics”. In: Proceedings of the National Academy of Sciences 101 (2004), pp. 5228–5235. doi: 10.1073/pnas.0307752101. Thomas Hofmann. “Probabilistic Latent Semantic Analysis”. In: Proceedings of the Fifteenth Conference on Uncertainty in Artificial Intelligence. 1999, pp. 289–296. Thomas Hofmann. “Probabilistic Latent Semantic Indexing”. In: Proceedings of the 22Nd Annual International ACM SIGIR Conference on Research and Development in Information Retrieval. 1999. doi: 10.1145/312624.312649. Thomas Hofmann. “Unsupervised Learning by Probabilistic Latent Semantic Analysis”. In: Machine Learning 42 (), pp. 177–196. doi: 10.1023/A:1007617005950. Liangjie Hong. A Tutorial on Probabilistic Latent Semantic Analysis. 2012. url: http://arxiv.org/abs/1212.3900. 39 / 35
  40. 40. Reference II Makoto Sato. satomacoto: Python で LDA を実装してみる. 2009. url: http://satomacoto.blogspot.jp/2009/12/pythonlda.html. Makoto Sato. satomacoto: Python で PLSA を実装してみる. 2009. url: http://satomacoto.blogspot.jp/2009/10/pythonplsa.html. 正田 備也. LDA における変分ベイズ法によるパラメータ推定 (1). url: http://www.iris.dti.ne.jp/~tmasada/2006081101.pdf. 正田 備也. LDA における変分ベイズ法によるパラメータ推定 (2). url: http://www.iris.dti.ne.jp/~tmasada/2006081701.pdf. 持橋 大地. 統計数理研究所公開講座「確率的トピックモデル」. url: http://www.ism.ac.jp/~daichi/lectures/H24-TopicModels.html. 手塚 太郎. LDA(Latent Dirichlet Allocation) の更新式の導出. url: http://yattemiyou.net/docs/lda_gibbs.pdf. 40 / 35

×