CCCMKホールディングス TECH LABの Tech Blog

TECH LABのエンジニアが技術情報を発信しています

ブログタイトル

「トピックモデル」の本を読んでみた

こんにちは!研究所の佐藤(智)です。

トピックモデル、岩田具治、講談社 (2015年)

を読んでみました。 トピックモデルとは、 「潜在意味解析 LSA (Latent Semantic Analysis) を確率モデルに拡張した手法」とありますが、 どういう意味なのか。。。考えてみました。 ちなみにトピックモデルの例としては、 確率的潜在意味解析法 PLSA (Probabilistic Latent Semantic Analysis) や 潜在的ディリクレ配分法 LDA (Latent Dirichlet Allocation) が(代表的なものとして)知られています。

LSA では、特異値分解と呼ばれる行列分解を用いて定式化されます。 行列の例としては、各文書において用語の出現を表した (文書)✕(単語)-行列が使われことが多いようです。 特異値分解はある  (m \times n)-行列  X に対し、

{
\displaystyle
\begin{eqnarray}
     X=USV \tag{1.1}
\end{eqnarray}
}

を満たすような  (m \times l)-行列  U (l \times l)-行列  S (l \times n)-行列  V へと分解します。  S は、対角成分が特異値と呼ばれる値をとり、 対角成分以外の要素が  0 となる(正方)行列です。 LSA ではその後、低ランク近似と呼ばれるテクニックを使います。 ざっくりと説明すると、 S における特異値のなかで、 大きいもの  \tilde{l} 個だけを使って  (\tilde{l} \times \tilde{l})-行列  \tilde{S} を作成します。 それに伴い、 U から  \tilde{S} から抽出した  \tilde{l} 個の特異値に対応した  \tilde{l} 個の列を抽出し、それを  \tilde{U} とします。 同様に、 V から \tilde{l} 個の行を抽出し、それを  \tilde{V} とします。 そして、それら行列  \tilde{U} \tilde{S} \tilde{V} の積をとり、  (m \times n)-行列  \tilde{X}

{
\displaystyle
\begin{eqnarray}
     \tilde{X}=\tilde{U}\tilde{S}\tilde{V} \tag{1.2}
\end{eqnarray}
}

と定義します。 この  \tilde{X} X の低ランク近似になります。

さて、一方 トピックモデルはどうなっているかというと、 本書75ページ以降を読むと、以下のことが分かります。 トピックモデルは、そのモデル化により、 (文書)✕(トピック)-行列  \Theta および (トピック)✕(単語)-行列  \Phi が定まり、 さらに (文書)✕(単語)-行列  \Lambda が以下のように計算できます。

{
\displaystyle
\begin{eqnarray}
     \Lambda = \Theta ~\Phi \tag{1.3}
\end{eqnarray}
}


そして、LSA における (1.2) の  \tilde{X} と トピックモデルにおける (1.3) の  \Lambda が、 低ランクの (文書)✕(単語)-行列 として対応関係にあります。 この対応関係については、後になって考えてみると当然にも思えてくるのですが。。。 LSA を線形代数の応用、LDA (トピックモデル) をベイズの定理の応用と捉えていた 私にとって、この事実を知ったことはそれなりにオドロキでした。

トピックモデルの拡張/亜種 (例えば、結合トピックモデル、対応トピックモデル、ノイズあり対応トピックモデル、 著者トピックモデル、トピック追跡モデル、など)については、 このあたりの思想がどのように継承されているのか? 今後、確認していきたいと考えています。