Probablistic Latent Semantic Indexing (1999)
December 2, 2023Latent Semantic Analysisは、単語の出現頻度の列ベクトルで文書をあらわす行列を、特異値分解し、潜在的な意味を反映した低ランクな行列を求める方法である。 特異値を大きい順に\(k\)個えらぶとき、単語の数を\(t\), 文書数を\(d\)とすれば、左特異ベクトルのサイズは、\(t\times k\), 右特異ベクトルの転置行列のサイズは\(k\times d\)になる。
Probabilistic Latent Smantic Indexingは、各文書が1つのクラスに分類されると仮定し、クラスを示すベクトルを隠れ変数とみなしたEMアルゴリズムで、文書や単語の尤度、クラスの生起確率を求める。 これにより、クラス\(z_k\)についての文書\(d_i\)と単語\(w_j\)の尤度を\(P(d_i|z_k)\), \(P(w_j|z_k)\), また\(\hat{\textbf{U}}=(P(d_i|z_k))_{i, k}\), \(\hat{\textbf{V}}=(P(w_j|z_k))_{j, k}\), \(\hat{\Sigma}=\text{diag} (P(z_k))_k\)とすると、同時確率モデルを特異値分解の形式\(P=\hat{\textbf{U}}\hat{\Sigma}\hat{\textbf{V}}^t\)で表すことができる。 Latent Semantic Analysisと違い、\(P\)の固有値や特異ベクトルの要素から確率モデル上の意味を読みとることができる。
\(n(d, w)\)を文書\(d\)における単語\(w\)の出現回数とすると、EMアルゴリズムでは対数尤度\(\mathcal{L}\)を最大化するパラメータを求める。 $$ \mathcal{L}=\sum_{d\in \mathcal{D}}\sum_{w\in \mathcal{W}}n(d, w)\log P(d, w) $$ なお、ベイズの定理より、\(P(d, w)\)は $$ P(d, w)=\sum_{z\in \mathcal{Z}}P(z)P(w|z)P(d|z) $$ と計算できる。
Eステップでは、クラスの事後確率\(P(z|d, w)\)を求める。 $$ P(z|d, w)\frac{P(z)P(d|z)P(w|z)}{\sum_{z’}P(z’)P(d|z’)P(w|z’)} $$
MステップではEステップで計算した事後確率をもちいて、パラメータを再推定する。 最後に、再推定したパラメタで\(\mathcal{L}\)を計算し、収束していればアルゴリズムを終了し、していなければEステップに戻る。
$$ \begin{align*} P(w|z)&=\frac{\sum_dn(d,w)P(z|d, w)}{\sum_{d, w’}n(d, w’)P(z|d, w’)’}\\ P(d|z)&=\frac{\sum_wn(d, w)P(z|d, w)}{\sum_{d’, w}n(d’, w)P(z|d’, w)’}\\ P(z)&=\frac{1}{R}\sum_{d, w}n(d, w)P(z|d, w), R\equiv\sum_{d, w}n(d, w) \end{align*} $$