からっぽのしょこ

読んだら書く!書いたら読む!読書読読書読書♪同じ事は二度調べ(たく)ない

5.4:著者トピックモデル【『トピックモデル』の勉強ノート】

はじめに

 機械学習プロフェッショナルシリーズの『トピックモデル』の勉強時に自分の理解の助けになったことや勉強会資料のまとめです。トピックモデルの各種アルゴリズムを「数式」と「プログラム」から理解することを目指します。本とあわせて読んでください。

 この記事は、5.4節「著者トピックモデル(Author Topic Model)」の内容です。著者トピックモデルのパラメータを崩壊型ギブスサンプリングにより推定します。

 これまでのモデルでは、トピックに依存して補助情報が生成されるとしました。著者トピックモデルでは、補助情報として著者情報を用います。この著者情報に依存してトピックが生成されます。つまり著者ごとにトピック分布を持つとします。

 共通する部分が多々あるので、「4.5:トピックモデルのギブスサンプリング【『トピックモデル』の勉強ノート】 - からっぽのしょこ」も参照してください。

【前節の内容】

www.anarchive-beta.com

【他の節一覧】

www.anarchive-beta.com

【この節の内容】


・生成過程

 これまでと同様に、変数$w_{dn}$はパラメータ$\boldsymbol{\phi}_k$を持つカテゴリ分布に、潜在変数$z_{dn},\ y_{dn}$はそれぞれパラメータ$\boldsymbol{\theta}_d,\ (\frac{1}{M_d}, \cdots, \frac{1}{M_d})$を持つカテゴリ分布に、パラメータ$\boldsymbol{\theta}_d,\ \boldsymbol{\phi}_k$はそれぞれハイパーパラメータ$\alpha,\ \beta$を持つディリクレ分布に従って生成されると仮定する。$M_d$はその文書の著者数で、観測データ$\mathbf{a}_d = (a_{d1}, \cdots, a_{dM_d})$より得られる。詳しくは図5.11を参照のこと。

・記号一覧

 4章に加えて5.4節で用いる記号を次にまとめる。

f:id:anemptyarchive:20201030144341p:plain
5.4節で追加する記号一覧


・グラフィカルモデル

 著者トピックモデルをグラフィカルモデルで表現すると、次の図になる。

・作図用のRコード(クリックで展開)

# 利用パッケージ
library(DiagrammeR)

# 著者トピックモデル
DiagrammeR::grViz("
  digraph AuthorTM{
    graph [rankdir = LR]
    node [shape = circle, fixedsize = ture, fontname = 'Times-Italic']
    
    alpha [label = 'α']
    subgraph cluster_A{
      label = A
      theta [label = <<B>&theta;</B>@_{s}>]
    }
    
    beta [label = '&beta;']
    subgraph cluster_K{
      label = K
      phi [label = <<B>&phi;</B>@_{k}>]
    }
    
    subgraph cluster_D{
      label = D
      a [label = a, style = filled, filledcolor = 'gray']
      subgraph cluster_N{
        label = N
        y [label = 'y@_{dn}']
        z [label = 'z@_{dn}']
        w [label = 'w@_{dn}', style = filled, filledcolor = 'gray']
      }
    }
    
    edge []
      alpha -> theta -> z;
      phi -> beta [dir = back];
      w -> phi [dir = back];
      a -> y -> z -> w;
  }
")

f:id:anemptyarchive:20201030141924p:plain
著者トピックモデルのグラフィカルモデル


・生成モデル

 生成過程に従うと、著者情報$\mathbf{A}$が与えられたときの文書集合$\mathbf{W}$の分布は

$$ \begin{aligned} p(\mathbf{W} | \mathbf{A}, \boldsymbol{\Theta}, \boldsymbol{\Phi}) &= \prod_{d=1}^D p(\mathbf{w}_d | \mathbf{a}_d, \boldsymbol{\Theta}, \boldsymbol{\Phi}) \\ &= \prod_{d=1}^D \prod_{n=1}^{N_d} p(w_{dn} | \mathbf{a}_d, \boldsymbol{\Theta}, \boldsymbol{\Phi}) \\ &= \prod_{d=1}^D \prod_{n=1}^{N_d} \sum_{m=1}^{M_d} \sum_{k=1}^K p(w_{dn}, y_{dn} = m, z_{dn} = k | \mathbf{a}_d, \boldsymbol{\theta}_{a_{dm}}, \boldsymbol{\phi}_k) \\ &= \prod_{d=1}^D \prod_{n=1}^{N_d} \sum_{m=1}^{M_d} \sum_{k=1}^K p(w_{dn} | z_{dn} = k, \boldsymbol{\phi}_k) p(z_{dn} = k | y_{dn} = m, \boldsymbol{\theta}_{a_{dm}}) p(y_{dn} = m | \mathbf{a}_d) \\ &= \prod_{d=1}^D \prod_{n=1}^{N_d} \sum_{m=1}^{M_d} \frac{1}{M_d} \sum_{k=1}^K p(w_{dn} | z_{dn} = k, \boldsymbol{\phi}_k) p(z_{dn} = k | y_{dn} = m, \boldsymbol{\theta}_{a_{dm}}) \end{aligned} $$

【途中式の途中式】

  1. 文書ごとの積に分解する。
  2. 単語ごとの積に分解する。
  3. 周辺化された単語の潜在著者$y_{dn}$と潜在トピック$z_{dn}$を明示する。
  4. 生成過程に従い乗法定理より、項を分解する。
  5. 単語$w_{dn}$に対して、その文書の$m$番目の著者が割り当てられる確率$p(y_{dn} = m | \mathbf{a}_d)$は$\frac{1}{M_d}$である。


と分解できる。

・サンプリング確率

・パラメータの周辺化

 パラメータ$\boldsymbol{\Theta},\ \boldsymbol{\Phi}$を周辺化した、観測データ$\mathbf{W},\ \mathbf{A}$と潜在変数$\mathbf{Z},\ \mathbf{Y}$の周辺同時分布(周辺同時尤度)は、生成過程より

$$ \begin{align} p(\mathbf{W}, \mathbf{A}, \mathbf{Z}, \mathbf{Y} | \alpha, \beta) &= \int \int p(\mathbf{W}, \mathbf{A}, \mathbf{Z}, \mathbf{Y}, \boldsymbol{\Theta}, \boldsymbol{\Phi} | \alpha, \beta) d\boldsymbol{\Theta} d\boldsymbol{\Phi} \\ &= \int p(\mathbf{Z} | \mathbf{Y}, \boldsymbol{\Theta}) p(\boldsymbol{\Theta} | \alpha) d\boldsymbol{\Theta} \int p(\mathbf{W} | \mathbf{Z}, \boldsymbol{\Phi}) p(\boldsymbol{\Phi} | \beta) d\boldsymbol{\Phi} p(\mathbf{Y} | \mathbf{A}) p(\mathbf{A}) \\ &= p(\mathbf{Z} | \mathbf{Y}, \alpha) p(\mathbf{W} | \mathbf{Z}, \beta) p(\mathbf{Y} | \mathbf{A}) p(\mathbf{A}) \tag{5.4.1} \end{align} $$

と分解できる。

 分解した各分布の具体的な式を求めていく。1つ目の項$p(\mathbf{Z} | \mathbf{Y}, \alpha)$は、式(4.10)と同様にして

$$ \begin{align} p(\mathbf{Z} | \mathbf{Y}, \alpha) &= \int p(\mathbf{Z} | \mathbf{Y}, \boldsymbol{\Theta}) p(\boldsymbol{\Theta} | \alpha) d\boldsymbol{\Theta} \\ &= \int \left[ \prod_{d=1}^D \prod_{n=1}^{N_d} p(z_{dn} = k | y_{dn} = m, a_{dm} = s, \boldsymbol{\theta}_s) \right] \left[ \prod_{s=1}^S p(\boldsymbol{\theta}_s | \alpha) \right] d\boldsymbol{\Theta} \\ &= \prod_{s=1}^S \int \left[ \prod_{k=1}^K \theta_{sk}^{N_{sk}} \right] \frac{\Gamma(\alpha K)}{\Gamma(\alpha)^K} \prod_{k=1}^K \theta_{sk}^{\alpha-1} d\boldsymbol{\theta}_s \\ &= \frac{\Gamma(\alpha K)^S}{\Gamma(\alpha)^{KS}} \prod_{s=1}^S \int \prod_{k=1}^K \theta_{sk}^{N_{sk}+\alpha-1} d\boldsymbol{\theta}_s \\ &= \frac{\Gamma(\alpha K)^S}{\Gamma(\alpha)^{KS}} \prod_{s=1}^S \frac{ \prod_{k=1}^K \Gamma(N_{sk} + \alpha) }{ \Gamma(N_s + \alpha K) } \tag{5.4.2} \end{align} $$

【途中式の途中式】

  1. 前の項を各文書の単語ごとの積に分解する。
  2. 具体的な式に置き換える。このとき$p(z_{dn} = k | \boldsymbol{\theta}_s) = \theta_{sk}$であり、$\prod_{d=1}^D \prod_{n=1}^{N_d}$により$N_{sk}$個重複する。
    • ここで$y_{dn} = m$は、「文書$d$の$n$番目の単語$w_{dn}$」に「文書$d$における$m$番目の著者$a_{dm}$」が割り当てられたことを意味する。また$a_{dm} = s$は、$a_{dm}$が「文書全体における$s$番目の著者」であることを意味し、これは著者情報(観測データ)として与えられている。
    • $y_{dn}$に割り当てられた著者を$a_{dy_{dn}}$、更に$y_{dn}$に割り当てられた著者のトピック分布を$\boldsymbol{\theta}_{a_{dy_{dn}}}$と明示的に表記できる。
  3. $\boldsymbol{\theta}_s$に影響しない項を$\int$の外に出す。
  4. ディリクレ分布の正規化項の導出(1.13)より、置き換える。ただし$\sum_{k=1}^K N_{sk} + \alpha = N_s + \alpha K$である。


となる。

 2つ目の項$p(\mathbf{W} | \mathbf{Z}, \beta)$は、4.5節で求めた

$$ p(\mathbf{W} | \mathbf{Z}, \beta) = \frac{\Gamma(\beta V)^K}{\Gamma(\beta)^{VK}} \prod_{k=1}^K \frac{ \prod_{v=1}^V \Gamma(N_{kv} + \beta) }{ \Gamma(N_k + \beta V) } \tag{4.11} $$

である。

 3つ目の項$p(\mathbf{Y} | \mathbf{A})$は、各単語の著者は等確率で割り当てられるという定義(仮定)より

$$ \begin{align} p(\mathbf{Y} | \mathbf{A}) &= \prod_{d=1}^D \prod_{n=1}^{N_d} p(y_{dn} | \mathbf{a}_d) \\ &= \prod_{d=1}^D \prod_{n=1}^{N_d} \frac{1}{M_d} \\ &= \prod_{d=1}^D \frac{1}{M_d^{N_d}} \tag{5.4.3} \end{align} $$

となる。

 この周辺同時分布(5.4.1)を用いて、各単語のトピックと著者のサンプリング確率を求める。

・単語のトピックと著者のサンプリング式の導出

 ある単語のトピック$z_{dn}$が$k$かつ著者$y_{dn}$が$m$となる確率は、周辺同時尤度にベイズの定理を用いて

$$ \begin{aligned} p(z_{dn} = k, y_{dn} = m | \mathbf{W}, \mathbf{A}, \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, \alpha, \beta) &= \frac{ p(\mathbf{W}, \mathbf{A}, z_{dn} = k, \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn} | \alpha, \beta) }{ p(\mathbf{W}, \mathbf{A}, \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn} | \alpha, \beta) } \\ &\propto p(\mathbf{W}, \mathbf{A}, z_{dn} = k, \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn} | \alpha, \beta) \\ &= p(w_{dn} | z_{dn} = k, \mathbf{Z}_{\backslash dn}, \beta) p(\mathbf{W}_{\backslash dn} | \mathbf{Z}_{\backslash dn}, \beta) \\ &\qquad * p(z_{dn} = k | \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn}, \alpha) p(\mathbf{Z}_{\backslash dn} | \mathbf{Y}_{\backslash dn}, \alpha) \\ &\qquad * p(y_{dn} = m | \mathbf{Y}_{\backslash dn}, \mathbf{A}) p(\mathbf{Y}_{\backslash dn} | \mathbf{A}) p(\mathbf{A}) \\ &\propto p(w_{dn} | z_{dn} = k, \mathbf{Z}_{\backslash dn}, \beta) p(z_{dn} = k | \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn}, \alpha) p(y_{dn} = m | \mathbf{Y}_{\backslash dn}, \mathbf{A}) \end{aligned} $$

で求められる。適宜$z_{dn},\ y_{dn}$に影響しない項を省いている。

 1つ目の項は、4.5節で求めた

$$ p(w_{dn} | \mathbf{W}_{\backslash dn}, \mathbf{Z}, \beta) = \frac{ N_{kw_{dn} \backslash dn} + \beta }{ N_{k \backslash dn} + \beta V } \tag{4.14} $$

である。

 2つ目の項は、式(5.4.2)を用いて式(4.13)と同様にして

$$ \begin{aligned} p(z_{dn} = k | \mathbf{Z}_{\backslash dn}, y_{dn} = m, \mathbf{Y}_{\backslash dn}, \alpha) &= \frac{ p(z_{dn} = k , \mathbf{Z}_{\backslash dn} | y_{dn} = m, \mathbf{Y}_{\backslash dn}, \alpha) }{ p(\mathbf{Z}_{\backslash dn} | y_{dn} = m, \mathbf{Y}_{\backslash dn}, \alpha) } \\ &= \frac{\Gamma(\alpha K)}{\Gamma(\alpha)^K} \frac{ \Gamma(N_{a_{dm}k \backslash dn} + 1 + \alpha) \prod_{k' \neq k} \Gamma(N_{a_{dm}k' \backslash dn} + \alpha) }{ \Gamma(N_{a_{dm} \backslash dn} + 1 + \alpha K) } \frac{\Gamma(\alpha)^{K}}{\Gamma(\alpha K)} \frac{ \Gamma(N_{a_{dm} \backslash dn} + \alpha K) }{ \prod_{k=1}^K \Gamma(N_{a_{dm}k \backslash dn} + \alpha) } \\ &= \frac{ (N_{a_{dm}k \backslash dn} + \alpha) \Gamma(N_{a_{dm}k \backslash dn} + \alpha) \prod_{k' \neq k} \Gamma(N_{a_{dm}k' \backslash dn} + \alpha) }{ (N_{a_{dm} \backslash dn} + \alpha K) \Gamma(N_{a_{dm}k' \backslash dn} + \alpha K) } \frac{ \Gamma(N_{a_{dm} \backslash dn} + \alpha K) }{ \prod_{k=1}^K \Gamma(N_{a_{dm}k \backslash dn} + \alpha) } \\ &= \frac{ N_{a_{dm}k \backslash dn} + \alpha }{ N_{a_{dm} \backslash dn} + \alpha K } \end{aligned} $$

となる。1行目の分母分子において、分母に含まれない$z_{dn} = k$の項を取り出して考えている。また計算過程において、文書$d$以外の文書については約分によって消えている。

 3つ目の項は、著者トピックモデルの定義より

$$ p(y_{dn} = m | \mathbf{Y}_{\backslash dn}, \mathbf{A}) = \frac{1}{M_d} $$

である。あるいは式(5.4.3)を用いて

$$ \begin{aligned} p(y_{dn} = m | \mathbf{Y}_{\backslash dn}, \mathbf{A}) &= \frac{ p(y_{dn} = m, \mathbf{Y}_{\backslash dn} | \mathbf{A}) }{ p(\mathbf{Y}_{\backslash dn} | \mathbf{A}) } \\ &= \frac{1}{M_d^{N_{d \backslash dn} + 1}} \prod_{d' \neq d} \frac{1}{M_{d'}^{N_{d' \backslash dn}}} \prod_{d=1}^D \frac{M_d^{N_{d \backslash dn}}}{1} \\ &= \frac{1}{M_d} \frac{1}{M_d^{N_{d \backslash dn}}} \frac{M_d^{N_{d \backslash dn}}}{1} \\ &= \frac{1}{M_d} \end{aligned} $$

となる。

 それぞれ代入して、$z_{dn},\ y_{dn}$に影響しない項を省くと

$$ \begin{aligned} p(z_{dn} = k, y_{dn} = m | \mathbf{W}, \mathbf{A}, \mathbf{Z}_{\backslash dn}, \mathbf{Y}_{\backslash dn}, \alpha, \beta) &\propto \frac{ N_{a_{dm}k \backslash dn} + \alpha }{ N_{a_{dm} \backslash dn} + \alpha K } \frac{ N_{kw_{dn} \backslash dn} + \beta }{ N_{k \backslash dn} + \beta V } \frac{1}{M_d} \\ &\propto \frac{ N_{a_{dm}k \backslash dn} + \alpha }{ N_{a_{dm} \backslash dn} + \alpha K } \frac{ N_{kw_{dn} \backslash dn} + \beta }{ N_{k \backslash dn} + \beta V } \end{aligned} $$

が得られる。

・ハイパーパラメータ推定

 ハイパーパラメータの更新式は、周辺同時分布(5.4.1)に対して不動点反復法を用いて求める。
 著者トピックモデルの周辺同時分布において、トピック分布のパラメータ$\alpha$に関わる項$p(\mathbf{Z} | \mathbf{Y}, \alpha)$は、基本形のトピックモデル(4.5節)のものと同じ構造である。異なるのは、単語数に関する項の添字が文書インデックス$d$から著者インデックス$s$になっている点である。従ってハイパーパラメータ$\alpha$の更新式は同じ手順で求められ、トピックモデルでの更新式(4.16)の添字を$d$から$s$に変更した式になる。
 単語分布のパラメータ$\beta$に関わる項$p(\mathbf{W} | \mathbf{Z}, \beta)$は、基本形のトピックモデルと同じ式であるため、ハイパーパラメータ$\beta$の更新式も同じ式(4.17)である。

参考書籍

  • 岩田具治(2015)『トピックモデル』(機械学習プロフェッショナルシリーズ)講談社

おわりに

 5章ではこのモデルが一番興味ある。とりあえずこれは組んでみたい。作詞家ごとのトピック分布、楽しそう。

 2020年10月30日は、「モーニング娘。'20」「ハロー!プロジェクト」の現リーダー譜久村聖さん24歳のお誕生日です!

 いつだって今が一番最高「ふくむらみず期」!おめでとうございます。

【次節の内容】

www.anarchive-beta.com