PLSA(確率的潜在意味解析)

PLSAの概要

 PLSA (Probabilistic Latent Semantic Analysis、確率的潜在意味解析)とは、自然言語処理技術の領域でトピックモデルと呼ばれる手法の一つで、Hofmanが1999年に発表しました。「文書×単語」の行列データ(Bag-of-Wordsと呼ばれるデータ)をインプットに、教師なし学習によって文書に潜むトピックをアウトプットする手法で、そのトピックは文書の集合と単語の集合で構成され、使われ方の似ている単語群は同じトピックに集約されるようになります。PLSAを適用することで、「文書×単語」という列数の多い高次元データを、「文書×トピック」という低次元データに変換することができます。これにより、文書全体の傾向を、大量の単語ではなく集約されたトピックを軸にしてシンプルに把握することができます。そのため、PLSAは次元圧縮の手法と捉えることもできます。


 以下の図は、ホテルの口コミデータにPLSAを適用した例です。たとえば、口コミ文書が5,000件あり、その文書に含まれる単語が10,000語あったとします。各文書において各単語の出現頻度を値に持つ「文書×単語」のデータを構成したとき、これにPLSAを適用すると、使われ方の似ている単語をトピックというかたまりに集約し、「文書×トピック」のデータに変換します。以下の例では、5,000件ホテルの口コミは、「広さ」「清潔さ」「利便性」「スタッフ」「朝食」という5個のトピックに集約され、「文書5,000件×単語10,000語」という高次元データを「文書5,000件×トピック5個」という低次元データで説明することができたというものです。


PLSAによる文書分類のイメージ




PLSAのグラフィカルモデルとアウトプット

 PLSAは、元々は文書分類のために開発された自然言語処理の手法ですが、その本質は、「共起行列」と呼ばれる行列データの「行の要素x」と「列の要素y」の背後にある共通特徴となる「潜在クラスz」を抽出する手法で、データクラスタリングの手法としても適用されます。自然言語処理の領域では、この共起行列が「文書×単語」のBag-of-Wordsになっており、潜在クラスをトピックと呼んでいることになります。


 以下はPLSAのグラフィカルモデルです。PLSAでは、行の要素xと列の要素yの共起確率P(x,y)を潜在クラスzを使って式展開し、3種類の確率変数P(x|z), P(y|z), P(z)を計算します。つまりPLSAは共起行列のデータをインプットに与えることで、この3種類の確率をアウトプットします。P(z)は潜在クラスの存在確率を示し、P(x|z)とP(y|z)はそれぞれ潜在クラスzに対する行xと列yの各要素の所属確率(関連度)を示しています。なお、潜在クラスzの数はあらかじめ設定する必要があります。


PLSAのグラフィカルモデルとインプット・アウトプット



 たとえば、先ほど例に示したホテルの口コミデータでは、共起行列となる「文書×単語」のBag-of-WordsをインプットにPLSAを適用した場合、アウトプットとして得られる「文書×トピックの確率分布P(x|z)」「単語×トピックの確率分布P(y|z)」「トピックの周辺確率P(z)」は以下の図のようなイメージとなります。P(x|z)はトピックzに対する各文書xの所属確率を示しており、P(y|z)はトピックzに対する各単語の所属確率を示しています。P(x|z)はそれぞれのトピックにおいてすべての文書の所属確率を合計すると100%となり、P(y|z)はそれぞれのトピックにおいてすべての単語の所属確率を合計すると100%となります。またトピックの存在確率であるP(z)も、すべてのトピックの確率を合計すると100%となります。こうした確率分布として得られるアウトプットは解釈性に優れており、PLSAを適用することで、どのような単語群で構成されるトピックが抽出され、それぞれの文書はどのトピックの要素が多いのか把握することができます。


「文書×単語」行列にPLSAを適用して得られるトピックの確率分布の例



 

PLSAのアルゴリズム

 PLSAの実行では、3種類の確率変数P(x|z), P(y|z), P(z)を計算することが最終アウトプットと説明しましたが、その計算方法の概要について簡単に解説します。


 PLSAでは行xにおける列yの出現確率P(y|x)を、潜在クラスzを介した式(1)でモデル化します。これはAspectモデルと呼ばれるもので、Aspectとは潜在クラス(潜在トピック)を指しています。このAspectモデルに対して、確率の連鎖律によって成り立つ同時確率と条件付確率の関係式(2)と、ベイズの定理によって成り立つ式(3)を適用します。これによって式(4)のように、行xと列yの同時確率P(x,y)を3つの確率分布①P(x|z)、②P(y|z)、③P(z)に分解して表現します。ここで、行xにおける列yの共起頻度をN(x,y)とすると、対数尤度関数Lは式(5)のように表現されます。この対数尤度関数Lを最大にするP(x|z)、P(y|z)、P(z)を、EMアルゴリズムを用いて最尤推定します。つまり、P(x|z), P(y|z), P(z)を固定してzの事後確率P(z|x,y)を計算する式(6)のEステップを実行し、Eステップで計算したP(z|x,y)を用いて対数尤度関数Lを最大化するようなP(x|z), P(y|z), P(z)を更新する式(7)~(9)のMステップを実行し、これらを繰り返し計算します。なお、EMアルゴリズムをスタートするには、P(x|z), P(y|z), P(z)の初期値が必要で、PLSAはこの初期値によって最終的な解が微妙に影響を受ける初期値依存性があります。


PLSAの計算過程(EMアルゴリズム)



 

PLSAのメリット

 教師なし学習でBag-of-Wordsのような高次元の行列データを機械的に集約する方法としては、PLSAだけでなく、階層クラスター分析のWard法や非階層クラスター分析のk-means法といった従来のクラスター分析を適用することも考えられます。しかし、以下の点で挙げられるように、データクラスタリングという観点において、PLSAは従来のクラスター分析より優れています。


①高次元データに対応できる

 従来のクラスター分析では、データ間の距離に基づいて類似度を計算し、距離の近いデータをまとめていきます。しかし、変数の数が大量にある高次元データになると、データ間の距離がどれも大きく離れ、妥当な結果が得られにくくなる「次元の呪い」と呼ばれる問題が起きてしまいます。Bag-of-Wordsは大量の単語を列に取った高次元のデータとなるため、こうした従来のクラスター分析手法は適していません。PLSAでは、距離に基づかず、高次元の情報をできるだけ保持した形でその次元数を削減し、低次元に変換できる手法です。PLSAを適用すれば、膨大な単語で構成されるBag-of-Wordsの高次元データでもトピックに集約することができます。


②行の要素と列の要素を同時にクラスタリングできる

 上記のような従来のクラスター分析手法は、列をベースに行をクラスタリングする、あるいは行をベースに列をクラスタリングするため、どちらか一方しかクラスタリング対象となりません。PLSAでは、トピックは行の要素と列の要素の2つの軸に基づいて抽出され、各トピックに対する行の要素と列の要素のそれぞれの関連度が同時に計算されます。つまり、Bag-of-Wordsによる「文書×単語」の行列データに適用すれば、一つのトピックに対して文書と単語が同時にクラスタリングされていると解釈できます。このように、抽出されるトピックは行と列の2つの軸の情報を持つことができるため、従来のクラスター分析よりも情報量が多い結果となり解釈がしやすくなります。


③ソフトクラスタリングできる

 上記のような従来のクラスター分析手法はハードクラスタリングと呼ばれ、ある要素が一つのグループに所属してしまうと他のグループには重複して所属が許されません。PLSAはソフトクラスタリングとも呼ばれ、すべての要素がすべてのトピックにまたがって所属し、その関連度合いが計算されます。これにより、複数の意味を持つ要素がある場合でも柔軟なクラスタリングを実現できます。




共起行列の構成とPLSAの展開

 PLSAの本来の使い方、すなわち文書分類での適用では、各文書の出現単語を記録した「文書×単語」のBag-of-Wordsを共起行列のデータとしてインプットし、話題の似ている文書(同様の単語が出現する文書)とその話題を構成する単語(使われ方の似ている単語)を同時にまとめ上げし、それをトピックとして抽出します。これが最もポピュラーな適用の仕方ですが、PLSAの本質は先述した通り、行列データの行の要素xと列の要素yの背後にある共通特徴となる潜在クラスzを抽出すること、つまり行の要素xと列の要素yを同時にクラスタリングすることです。この共起行列の構成によって実はさまざま適用の展開ができます。以下に共起行列の構成パターンによる適用の展開の例を紹介します。


 例えば、ID-POSデータと呼ばれる顧客の購買履歴のデータに適用されている事例があります。この場合の共起行列は「顧客ID×購買商品」データとなり、購買傾向の似ている顧客(同様の商品を購買する顧客)とその購買傾向を構成する商品(同時に購買されやすい商品)を同時にクラスタリングします。この結果によって購買傾向に基づいた顧客グループを把握することができるので、効果的なターゲティングや商品レコメンドなどを検討することができます。


 また、観光地の口コミデータを用いて、各観光地の口コミに出現する係り受け表現(文法的構造を持つ単語のペア)を記録した「観光地×係り受け」の共起行列データに適用している事例もあります。これにより、テーマの似ている観光地(同様の表現で口コミされている観光地)とそのテーマを構成する係り受け表現(観光地の口コミで同時に使われやすい表現)を同時にクラスタリングし、テーマ別に観光地をグルーピングすることができます。各観光地が観光客にアピールすべきテーマを把握したり、地域間でテーマを組み合わせた観光プランや周遊ルートを形成するといった地域連携を検討するなど、観光振興に活用されています。


 当社では、文書データにPLSAを適用することが多いですが、その文書に出現する単語間の共起関係に着目し、「単語×単語」の共起行列データや「単語×係り受け」の共起行列データを構成してPLSAを適用しています。「単語×単語」の共起行列では、たとえば行の単語には名詞を、列の単語には動詞と形容詞をとることで、動作や状態が似ている名詞(同様の動詞・形容詞で修飾される名詞)とその動作・状態を構成する動詞・形容詞(同様の名詞を修飾する動詞・形容詞)を同時にクラスタリングすることになるので、より文脈が考慮された話題を抽出することができます。「単語×係り受け」の共起行列なら、話題の観点となる単語とその観点の具体的な内容となる係り受け表現を同時にクラスタリングしてトピックを抽出することができます。


PLSAの共起行列の構成パターンによる適用の展開



 当社の適用している「単語×単語」あるいは「単語×係り受け」の共起行列の構成メリットは主に3つあると考えています。


 1つ目のメリットは、密な共起行列を構成できることです。通常のPLSAによる「文書×単語」の共起行列は、ほとんどが0ばかりの疎な共起行列となるので、要素間で差が出にくく、共通の特徴を抽出しにくい傾向があります。これに対して、「単語×単語」や「単語×係り受け」の共起行列は、各単語が同時に出現する文章数(共起頻度)が値として入るクロス集計型の行列で、密な共起行列となります。これにより、要素間で大小の差が出やすく、より共通的な特徴を抽出しやすくなります。


 2つ目のメリットは、行と列の両方の軸が意味を持つ情報であることです。PLSAの本質は行と列を同時にクラスタリングできることにありますが、これはつまり抽出される潜在クラスには行の要素と列の要素の2つの軸が同時に所属するということであり、その潜在クラスの意味を2つの軸の情報から解釈できるということです。通常のPLSAによる「文書×単語」の共起行列の一方の軸(行)は文書IDとなり、これ自体はほとんど意味を持たない情報です。たとえば、この潜在クラスには文書ID=11032と文書ID=10921との関係が強いという結果が出ても、これは潜在クラスの解釈には使用しにくい情報です。行も列も単語あるいは係り受け表現で構成されている共起行列では、どちらもそれ単独で意味を持つ情報となるので、2つの情報軸から潜在クラスの意味を解釈することができ、解釈の容易性が高まります。


 3つ目のメリットは、共起行列のサイズを抑制できることです。通常のPLSAによる「文書×単語」の共起行列に比べて、「単語×単語」や「単語×係り受け」の共起行列は、特に行数においてとても小さいものになり、計算時間も大幅に削減できる効果があります。


 このようにPLSAという分析手法の機能の本質を理解し、分析目的に応じて適用する共起行列の構成を設計することで、さまざまな展開の可能性が生まれます。



 

LSAとPLSAとLDA

 PLSAはトピックモデルの一つの手法ですが、トピックモデルには他にLSA(Latent Semantic Analysis、潜在意味解析)やLDA(Latent Dirichlet Allocation、潜在ディリクレ配分法)という手法があります。開発された順番では、LSA(Deerwester et al, 1990)、PLSA(Hofman, 1999)、LDA(Blei et al, 2003)の順となります。どの手法もBag-of-Wordsによる「文書×単語」の行列データをインプットに、教師なし学習で文書に潜むトピックをアウトプットするという、トピックモデルの考え方は同じです。


 それぞれの手法の概要を、比較しながら簡単紹介します。LSAは、「文書×単語」の行列を特異値分解によって次元削減することでトピックを抽出する手法です。「文書×単語」行列を①「文書×トピック」(左特異ベクトル)、②「トピック×トピック」(特異値)、③「トピック×単語」(右特異ベクトル)の3つの行列に分解します。特異値分解は、大きな値に引っ張られてトピックが抽出される傾向があるため、LSAを実行する際には、「文書×単語」に事前の前処理としてTF-IDFなどで重み付けした行列を用いることが多いです。またLSAの課題として、分解する行列の要素に負の値を許容しているため、結果の解釈が難しくなることがあります。


 PLSAは、LSAの処理を、確率的な枠組みによって発展させたものとなります。特異値分解ではなく、確率モデルを導入し、「文書d×単語w」の行列から得られる同時確率P(d,w)を、3つの確率分布①P(d|z)、②P(w|z)、③P(z)に分解して表現することでトピックを抽出します。LSAでは「文書×単語」の行列に対して事前にTF-IDFなどで重みづけする必要がありましたが、PLSAでは確率的な処理によりそうした重みづけをせずに実行できます。また、PLSAでは、P(d|z)とP(w|z)によって、文書および単語のトピックに対する関連度が所属確率として出力されるため、結果が解釈しやすいメリットがあります。


 LDAは、PLSAをベイズ的に拡張させた手法で、ディレクレ分布を事前分布に導入しています。PLSAは、パラメータが固定的で、観測データのみからトピックを直接推定するため、過学習を起こしやすく、結果が完全に観測データに依存しています。これに対して、LDAはパラメータが事前分布に従って変動する確率分布とし、観測データと事前分布からトピックを推定します。事前分布を導入することで、確率的なスムージング効果があり、過学習を抑制できます。同時に、PLSAは新しい文書のトピックは定義されませんが、LDAは新しい文書についても推定ができる仕組みを持つモデルとなっています。


 トピックモデルの中ではLDAが最もポピュラーで、トピックモデルというとLDAを指すことが一般的です。LDAが登場した背景には、情報検索などの分野では、新しいデータがどのトピックに分類されるのかということが重要となる点にあり、確かにその点では過学習をするPLSAよりもLDAがマッチしているといえます。またLDAはPythonやMahoutなどのオープンソースライブラリとして公開されていることもあり、適用事例も多く、PLSAよりも注目されているといえます。


 しかし、LDAがあらゆる課題で優れたトピックモデルということではありません。たとえば、テキストマイニングの目的のように、新しいデータの推定よりも、観測データの現状の把握に重点を置きたい場合、PLSAは観測データに対する再現度が高く、その観測データのありのままの特徴をそのままトピックで反映できるモデルと捉えることができます。この点において、LDAは事前分布にディレクレ分布を仮定していることで、観測データをそのまま再現するモデルではなくなっています。また、LDAは新しい文書の推定ができる高い汎化性能を持つ一方で、抽出されるトピックの内容が一般的で抽象度が高くなることがあります。さらに、LDAはディレクレ分布のハイパーパラメータによって結果が変動しやすく、その設定の仕方、推定の仕方が難しいというハードルもあります。ビジネスでの適用シーンを考えますと、特許調査やマーケティング調査など、まずは現状のデータやその特徴を理解することが施策検討の上で重要となるケースではPLSAが適していると考えられます。つまり新規の予測にはLDAを適用し、現状の理解にはPLSAを適用するといった、それぞれの手法の特徴を理解して使い分けることが求められます。




クラスタリング手法におけるPLSAの位置づけ

 これまで従来のクラスター分析手法や他のトピックモデルとPLSAを比較してきましたが、それを以下の図にまとめてみました。ここではクラスタリング手法でよく用いられるものを並べていますが、大きく分けて従来のクラスター分析とトピックモデルに分けています。


 従来のクラスター分析は、階層クラスター分析のWard法非階層のk-means法などが該当します。これらは先述の通り、基本的に要素間の距離に基づいてクラスターを形成しますが、要素の数が多いと、要素間の距離も自然と離れて妥当な結果が得られにくいという、次元の呪いという問題が起きてしまいます。また、これらの手法は、行をベースに列をクラスタリングする、あるいは列をベースに行をクラスタリングするという行と列のどちらか一方をクラスタリングするもので、一つの要素は必ず一つのクラスターにしか所属できないハードクラスタリングとなります。


 一方、トピックモデルは、従来のクラスター分析のような距離で分類するのではなく、高次元の情報をできるだけ保存した形で低次元に変換する手法なので、要素の多い複雑なデータにも対応できます。トピックモデルは、行と列に共通する潜在的な特徴を抽出できる、つまり行と列を同時にクラスタリングできる手法となり、各要素は全ての潜在クラス(トピック)に所属し、その所属の重みが計算されるソフトクラスタリングとなります。そのため、データが複数の特徴をまたがる場合でも表現できます。トピックモデルの具体的な手法は、先述したとおり、LSA、PLSA、LDAが代表的な手法となります。LSAは特異値分解による行列分解で潜在クラスを抽出し、PLSAはLSAを確率的な枠組みで発展させたもので、LSAで必要なデータの前処理(重み調整)をすることなく潜在クラスを抽出でき、その結果は確率値で構成されるので解釈しやすいのが特長です。LDAはPLSAの拡張版として開発されたもので、PLSAでは結果が観測データのみで定義されるのに対して、LDAはディレクレ分布を事前確率分布に仮定し、観測していない新しいデータに対してもクラスを推定できます。


 先述のとおり、トピックモデルのなかではLDAを使うのが最も一般的ですが、LDAでは確率分布を事前分布に仮定して新しいデータに対応するため、抽出されるクラスは観測データを忠実に再現するものではなく、クラスの抽象度が高くなる傾向があります。情報検索の分野など、形成したトピックに新規のデータも対応させたいという場合はLDAが適していますが、特許調査やマーケティング調査の分野など、現状をまずは理解して、それを踏まえてビジネスアクションを検討したいという場合は、あくまでも観測情報のありのままをシンプルに把握することにニーズがあります。当社では、そうした目的によるデータ分析のアプローチをとることが多く、トピックモデルのなかでもあえてPLSAを採用しています。


クラスタリング手法におけるPLSAの位置づけ(Ward法・k-means法・LSA・PLSA・LDA)



Copyright 2025 Analytics Design Lab Inc. All Rights Reserved.