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

PLSAの概要

 PLSA とはProbabilistic Latent Semantic Analysisの略で、確率的潜在意味解析と呼ばれ、Hofmanが1999年に発表した次元圧縮の手法です。つまり変数(列数)の数の多い高次元データをいくつかの変数で説明し、データを低次元化する手法です。元々は文書分類のために開発された手法ですが、その本質は行列データの行の要素xと列の要素yの背後にある共通特徴となる潜在クラスzを抽出する手法で、クラスタリングの手法としても適用されます。
 文書分類を用途とした適用では、各文書の出現単語を記録した文書(行)×単語(列)という高次元データ(共起行列)にPLSAを適用することで複数の潜在トピックを抽出し、文書(行)×トピック(列)という低次元データに変換して文書を分類するというものです。
 下の図はホテルの口コミデータにPLSAを適用した例です。例えば口コミ文書が5,000件あり、その文書に含まれる単語が10,000語あったとき、各文書において該当する単語には”1”、該当しない単語には”0”という値を入れた共起行列データ(Bag of Wordsと呼ばれます)を構成することで、文書という質的なデータを量的なデータに変換(ベクトル化)することができます。この共起行列にPLSAを適用しますと、各単語の共起関係を学習して、使われ方の似ている単語をトピックというかたまりに変換します。例えばホテルの口コミは、「広さ」「朝食」「清潔」「スタッフ」「利便性」という5個のトピックに集約され、文書5,000件×単語10,000語という高次元データを文書5,000件×トピック5個という低次元データで説明(次元圧縮)することができるということになります。

 

 

PLSAの計算

 PLSAは、行の要素xと列の要素yの背後には、共通する特徴となる潜在的な意味クラスzがあると想定し、この潜在クラスを確率的に計算します。具体的にはxとyの共起確率を潜在クラスzを使って式展開し、3種類の確率変数P(x|z), P(y|z), P(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の展開

 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という分析手法の機能の本質を理解し、分析目的に応じてその適用の仕方を設計することで様々な展開の可能性が生まれます。

 

 

PLSAのアウトプット例

 「空気・風」に関連する特許公報データ30,039件の要約文を対象にPLSAを適用した例を下の図で紹介します。「空気・風」が関連する特許なので、製品でいうとエアコンや空気清浄機、加湿器、掃除機、洗濯乾燥機、ドライヤーなど様々な生活家電が該当します。ここの例では、共起行列の構成として「単語(行)×係り受け(列)」を採用しPLSAを適用しました。その結果抽出されたトピックの例をここでは3つ挙げていますが、それぞれのトピックでは、先述のように3種類の確率P(x|z), P(y|z), P(z)が計算されます。特に行要素の各単語の重みとなるP(x|z)と、列要素の各係り受けの重みとなるP(y|z)からそのトピックの意味を解釈できます。先述の通り、行と列を同時にクラスタリングできるPLSAでは、各トピックの意味を行の要素と列の要素の2つの情報軸から解釈できるので、どのような意味を示すトピックなのか容易に解釈できるかと思います。なお下の図では単語の重みP(x|z)に応じた文字の大きさでトピック(単語の集合)を可視化することもしています。 

 

 

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を比較してきましたが、それを以下にまとめてみました(重複する説明もあります)。下の図ではクラスタリング手法でよく用いられるものを並べていますが、大きく分けてハードクラスタリングとソフトクラスタリングに分けられます。
 ハードクラスタリングは多変量解析でよく用いられる階層クラスター分析や非階層のk-meansなどが該当しますが、これらは先述の通り、行をベースに列をクラスタリングする、あるいは列をベースに行をクラスタリングするという行と列のどちらか一方をクラスタリングします。これらは基本的に要素間の距離に基づいてクラスタを形成しますが、要素の数が多いと、要素間の距離も自然と離れて妥当な結果が得られにくいという、いわゆる次元の呪いという問題が起きます。また、ハードクラスタリングでは一つの要素は必ず一つのクラスタにしか所属できませんが、これを複数のクラスタにまたがって所属することができる手法がソフトクラスタリングとなります。
 ソフトクラスタリングでは、各要素は全てのクラスタに所属してその所属の重みが計算されます。そのため、データが複数の特徴をまたがる場合でも表現できます。このソフトクラスタリングは潜在クラス分析という言い方もされ、先述の通り、行と列に共通する潜在的な特徴を抽出できる、つまり行と列を同時にクラスタリングできます。これらは次元圧縮手法という言い方もされますが、ハードクラスタリングのような距離で分類するのではなく、高次元の情報をできるだけ保存した形で低次元に変換する手法なので、要素の多い複雑なデータにも対応できます。具体的な手法には、LSA、PLSA、LDAといったものが代表的な手法です。LSAというのはいわゆる特異値分解と呼ばれる手法で、データの行列を分解することで潜在クラスを抽出します。PLSAはLSAを確率処理したもので、LSAで必要なデータの前処理(重み調整)が不要となります。LDAはPLSAの拡張版として開発されてたもので、先述の通りPLSAでは結果が観測データのみで定義されるのに対して、LDAはディレクレ分布という確率分布を仮定し、観測していない新しいデータに対してもクラスタを推定できます。これらの手法は人工知能の分野ではしばしばトピックモデルと呼ばれ、先述の通り今ではLDAを使うのが最もポピュラーといえますが、LDAでは確率分布を仮定して新しいデータに対応するため、抽出されるクラスは観測データを忠実に再現するものではなく、クラスの抽象度が高くなる傾向があります。
 情報検索の分野など、形成したトピックに新規のデータも対応させたいという場合はLDAが適していますが、マーケティングの分野など現状をまずは理解をして、それをヒントにビジネスアクションを検討したいという場合は、あくまで観測情報のありのままをシンプルに把握することにニーズがあり、弊社ではそうしたデータ活用のアプローチをとることがあり、その場合はPLSAを採用しています。

 


 

Copyright 2017 Analytics Design Lab Inc. All Rights Reserved.