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

PLSAの概要

 PLSA とはProbabilistic Latent Semantic Analysisの略で、確率的潜在意味解析と呼ばれ、Hofmanが1999年に発表した次元圧縮の手法です。つまり変数(列数)の数の多い高次元データをいくつかの潜在変数で説明し、データを低次元化する手法です。元々は文書分類のために開発された手法ですが、その本質は行列データの行の要素xと列の要素yの背後にある共通特徴となる潜在クラスzを抽出する手法で、クラスタリングの手法としても適用されます。
 文書分類を用途とした適用では、各文書の出現単語を記録した文書(行)×単語(列)という高次元データ(共起行列)にPLSAを適用することで複数の潜在トピックを抽出し、文書(行)×トピック(列)という低次元データに変換して文書を分類するというものです。

 

PLSAの計算

 PLSAは、行の要素xと列の要素yの背後には、共通する特徴となる潜在的な意味クラスzがあると想定し、この潜在クラスを確率的に計算します。具体的にはxとyの共起確率を潜在クラスzを使って式展開し、3種類の確率変数P(z),P(x|z),P(y|z)を計算します。なお潜在クラスzの数はあらかじめ設定する必要があります。P(z)は潜在クラスの存在確率で全てのクラスの総和が100%となります。P(x|z),P(y|z)はそれぞれ潜在クラスzに対する行xと列yの各要素の重み(関連性)を示しています。

PLSAのメリット

 データのクラスタリングという観点からPLSAのメリットをまとめると以下の3点が挙げられます。
①高次元データに対応できる
 従来のクラスタリングでは、データ間の「類似度(距離)」を計算し、距離の近いデータをまとめていきますが、変数の数が大量にある高次元データになるほど、全体的に距離が大きく離れて妥当な結果が得られにくくなる次元の呪いと呼ばれる現象が起きてしまします。
 PLSAは高次元のデータを少ない次元に変換する次元圧縮手法で、その圧縮結果を使ってデータをクラスタリングできます。
②行の要素と列の要素を同時にクラスタリングできる
 従来のクラスタリング手法は、列をベースに行をクラスタリングする、あるいは行をベースに列をクラスタリングするため、どちらか一方しかクラスタリングできません。
 PLSAでは、潜在クラスは行の要素と列の要素の2つの軸の変動量に基づいて抽出され、その潜在クラスには行の要素と列の要素が同時に所属します。潜在クラスの意味を解釈する際も、行と列の2つの軸の情報を持つため解釈がとてもしやすくなります。
③ソフトクラスタリングできる
 従来のクラスタリング手法で有名なk-meansや階層型クラスター分析は、ハードクラスタリングと呼ばれ、ある要素が一つのグループに所属してしまうと他のグループには所属できません。
 PLSAはソフトクラスタリングと呼ばれ、全ての要素が全てのクラスにまたがって所属し、その各所属度合いが確率で計算されるため、複数の意味を持つ要素がある場合でも自然と表現できます。

 

PLSAとLDA

 高次元データの次元圧縮手法にはいくつかあり、実際にはPLSAよりもそれと同様の手法であるLDAの方が世間的に認知されているといえます。これらの手法はトピックモデルと呼ばれ、元々LSA (Latent Semantic Analysis)という手法があり(Deerwester et al, 1990)、それを確率的な処理をして改良したものがPLSA (Probabilistic Latent Semantic Analysis)であり(Hofman, 1999)、さらにその拡張版として開発されたのがLDA (Latent Dirichlet Allocation)です(Blei et al, 2003)。現在はさらにその改良版の手法も発表されています。
 PLSAとLDAの基本的な考え方は同じですが、文書分類で考えた場合、個々の文書における各トピックの現れやすさを表す確率が、PLSAではあくまで学習させた観測データから定義されますが、LDAではディリクレ分布という確率分布を仮定して生成させます。これによりPLSAでは、観測データに過剰に適合して他のデータの適合度が下がってしまうオーバーフィッティングという現象が生じ易く、新しい文書におけるトピックの生成確率は定義されませんが、LDAではこれを推定することができます。
 LDAが登場した背景には、情報検索などの分野では、新しいデータがどのトピックに分類されるのかということが重要となる点にあり、確かにその点ではPLSAよりもLDAがマッチしているといえます。またLDAはPythonやMahoutなどのオープンソースライブラリとして公開されていることもあり、適用事例も多く、PLSAよりも注目されているといえます。
 しかし、単純にPLSAは古く新しいLDAの方が優れているということではありません。確かにPLSAは観測データにオーバーフィットし、新しいデータの対応という点では劣りますが、純粋に観測されたデータのありのままに基づいた潜在要因を抽出したいときはPLSAの方が適しているといえます。実際にLDAは新しいデータに対応させるためディリクレ分布という確率分布を仮定することで、観測データをそのまま変換するものではなくなっており、抽出されるトピックもPLSAに比べて抽象度の高い傾向があります。ビジネスでの適用シーンを考えますと、マーケティング戦略の検討など、まずは現状のデータやその特徴を理解することが施策検討の上で重要となるケースは多いため、その場合はPLSAが適していると考えられます。つまり新規の予測にはLDAを適用し、現状の理解にはPLSAを適用するといった、それぞれの手法の特徴を理解して使い分けることが求められます。

 

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

 PLSAの本来の使い方、すなわち文書分類での適用では、各文書の出現単語を記録した「文書(行)×単語(列)」の共起行列データをインプットとして計算を実行し、話題の似ている文書(同様の単語が出現する文書)とその話題を構成する単語(使われ方の似ている単語)を同時にまとめ上げし、それを潜在クラスとして抽出します。これが最もポピュラーな適用の仕方ですが、PLSAの本質は先述した通り、行列データの行の要素xと列の要素yの背後にある共通特徴となる潜在クラスzを抽出すること、つまり行の要素xと列の要素yを同時にクラスタリングすることであるので、この共起行列の構成によって様々な適用の展開ができます。
 例えば、ID-POSデータと呼ばれる顧客の購買履歴のデータに適用されている事例があります。この場合の共起行列は「顧客ID(行)×購買商品(列)」のデータとなり、購買傾向の似ている顧客(同様の商品を購買する顧客)とその購買傾向を構成する商品(同時に購買されやすい商品)を同時にクラスタリングします。この結果によって購買傾向に基づいた顧客グループを把握することができるので、効果的な商品レコメンドなどを検討することができます。
 また、観光地の口コミデータを用いて、各観光地の口コミに出現する係り受け表現を記録した「観光地(行)×係り受け表現(列)」の共起行列データに適用している事例もあります。これにより、テーマの似ている観光地(同様の表現で口コミされている観光地)とそのテーマを構成する表現(観光地の口コミで同時に使われやすい表現)を同時にクラスタリングし、テーマ別に観光地をグルーピングすることができます。各観光地が観光客にアピールすべきテーマを把握したり、地域間でテーマを組み合わせた観光プラン・ルートを形成する地域連携を検討するなど、観光振興に活用されています。
 我々も文章データにPLSAを適用することが多いですが、その文章に出現する単語間の共起関係に着目し、「単語(行)×単語(列)」の共起行列データを構成してPLSAを適用しています。例えば行の単語には名詞を、列の単語には動詞と形容詞をとることで、動作や状態が似ている名詞(同様の動詞・形容詞で修飾される名詞)とその動作・状態を構成する動詞・形容詞(同様の名詞を修飾する動詞・形容詞)を同時にクラスタリングすることになり、より文脈が考慮された話題を抽出することができます。単語×単語の共起行列だけではなく、単語×係り受け表現という共起行列データに適用して、話題の観点となる単語とその観点の具体的な内容となる係り受け表現を同時にクラスタリングしてトピックを抽出するということもあります。さらに元々の文章に出現する単語情報から、各文章が抽出トピックのどれにどれくらい該当するのかということも定量的に計算することができます。
 我々の適用している単語×単語の共起行列の構成メリットは主に2つあると考えています。1つ目は、具体的な頻度という値の入った密な共起行列を構成できることです。通常のPLSAでインプットとされる共起行列は0と1の2値で構成されており、ほとんどが0の疎な共起行列となりますが、0と1しか値がないので要素間で差が出にくく、共通の特徴を抽出しにくいものとなります。これに対して具体的な頻度が入った共起行列では要素間で大小の差が出やすく、共通的な特徴も抽出しやすくなります。2つ目のメリットは、行と列の両方の軸が意味を持つ情報であることです。PLSAの本質は行と列を同時にクラスタリングできることにありますが、これはつまり抽出される潜在クラスには行の要素と列の要素の2つの軸が同時に所属するということであり、その潜在クラスの意味を2つの軸の情報から解釈できるということです。通常のPLSAでインプットされる共起行列の一方の軸(行)は文書IDとなり、これ自体はほとんど意味を持たない情報です。つまりこの潜在クラスには文書ID=11032と文書ID=10921との関係が強いと言われても、これはその潜在クラスの解釈には使用しにくい情報です。行も列も単語で構成されている共起行列では、どちらもそれ単独で意味を持つ情報となるので、2つの情報軸から潜在クラスの意味を解釈することができ、解釈の容易性が高まります。
 このようにPLSAという分析手法の機能の本質を理解し、分析目的に応じてその適用の仕方を設計することで様々な展開の可能性が生まれます。


Copyright 2017 Analytics Design Lab Inc. All Rights Reserved.