潜在意味解析

潜在意味解析（せんざいいみかいせき、）は、ベクトル空間モデルを利用した自然言語処理の技法の1つで、文書群とそこに含まれる用語群について、それらに関連した概念の集合を生成することで、その関係を分析する技術である。潜在的意味解析とも。
1988年、アメリカ合衆国でLSAの特許が取得されている。情報検索の分野では、潜在的意味索引または潜在意味インデックス（）とも呼ばれている。
出現行列.
LSA では、各文書における用語の出現を表した文書-単語マトリクスが使われる。これは各行が各単語に対応し、各列が各文書に対応した疎行列である。この行列の各成分の重み付けには tf-idf (term frequency–inverse document frequency) が用いられることが多い。この場合、行列の各成分はその文書でその単語が使われた回数に比例した値であり、文書全体での出現回数が少ない単語はその相対的重要性を反映するために強く重み付けされる。
この行列は標準意味モデルでも一般的だが、必ずしも行列として明確に表現される必要性はなく、行列として数学的に利用するとは限らない。
LSA はこの出現行列を用語と何らかの概念の関係および概念と文書間の関係に変換する。したがって、用語と文書は概念を介して間接的に関連付けられる。
応用.
この新たな概念空間は以下のような場面で利用される。
自然言語処理において、類義性と多義性は根本的な問題である。
階数の低減.
出現行列を構築後、LSAでは文書-単語マトリクスの行列の階数を低減した近似を行う必要がある場合がある。ただし、近似に伴う精度の低下を考慮に入れなくてはならない。
この近似には以下のような理由がある。
階数の低減の結果、いくつかの次元が統合され、複数の単語に依存するようになる。
階数低減が類似の意味を持つ用語に対応する次元を統合することで、類義性問題がある程度解消される。また、多義語の成分が複数の類義語に分配されて統合されるなら、多義性の問題もある程度解消される。逆に、他の方向の成分は単に消去されるか、最悪でも意図した意味よりも成分として小さくなる。
導出.
行列 formula_1 の成分 formula_2 は、単語 formula_3 の文書 formula_4 における出現（例えば頻度）を表すとする。formula_1 は次のようになる。
この行列の行は1つの単語に対応したベクトルになっており、各成分が各文書との関係を示している。
同様に、この行列の列は1つの文書に対応したベクトルになっており、各成分が各単語との関係を示している。
2つの単語ベクトルのドット積 formula_9 は、その文書群における単語間の相関を示す。行列積 formula_10 にはそのようなドット積が全て含まれている。その成分 formula_11（成分 formula_12 と等しい）は、ドット積 formula_9（formula_14）になっている。同様に行列 formula_15 は全ての文書ベクトル間のドット積が含まれていて、その単語群における文書間の相関を示す。すなわち、formula_16 である。
formula_1 の分解として、直交行列 formula_18 と formula_19、対角行列 formula_20 が存在すると仮定する。このような分解を特異値分解 (SVD) と呼ぶ。
単語の相関と文書の相関を与える行列積は、次のように展開される。
formula_23 と formula_24 は対角行列なので、formula_18 には formula_10 の固有ベクトルが含まれるはずであり、一方 formula_19 は formula_15 の固有ベクトルのはずである。どちらの行列積にも formula_23 のゼロでない成分に由来する、または等価的に formula_30 のゼロでない成分に由来する、同じゼロでない固有値がある。以上から分解は次のようになる。
formula_32 という値は特異値と呼ばれ、formula_33 は左特異ベクトル、formula_34 は右特異ベクトルと呼ばれる。formula_18 のうち formula_36 に関与するのは第 formula_3行だけである。その行ベクトルを formula_38 と呼ぶ。同様に、formula_39 のうち formula_40 に関与するのは第 formula_4 列だけであり、これを formula_42 と呼ぶ。これらは固有ベクトルではないが、全ての固有ベクトルに依存している。
formula_43 個の最大の特異値と formula_18 と formula_19 からそれに対応する特異ベクトルを選んだとき、階数 formula_43 の X への近似を最小誤差で得ることができる（フロベニウス・ノルム）。この近似の驚くべき点は、単に最小誤差であるという点だけでなく、単語ベクトルと文書ベクトルを概念空間に変換するという点である。ベクトル formula_47 には formula_43 個の成分があり、それぞれが単語 formula_3 の formula_43 個の概念の1つに対応した出現を表している。同様にベクトル formula_51 は、文書 formula_4 と各概念との関係を表している。この近似を次のように記述する。
ここで、以下のようなことが可能となる。
最後の項目を行うには、最初にクエリを概念空間に変換してやる必要がある。したがって直観的に、次のように文書群に対して行ったのと同じように変換をする必要がある。
このことが意味するのは、クエリベクトル formula_57 が与えられたとき、概念空間における文書ベクトルと比較する前に formula_65 という変換をする必要があるということである。同じことは擬似単語ベクトルにも行える。
実装.
特異値分解 (SVD) は一般に大規模行列手法（例えばランチョス法）を使って計算されるが、ニューラルネットワーク的な手法を使って計算資源を節約することもできる。後者の場合、行列全体をメモリに保持する必要がない。
高速で逐次的なメモリ使用量の少ない大規模行列SVDアルゴリズムが最近開発されている。
限界.
LSA には以下の2つの欠点がある。