潜在意味解析

潜在意味解析（せんざいいみかいせき、英: Latent Semantic Analysis、略称: LSA）は、ベクトル空間モデルを利用した自然言語処理の技法の1つで、文書群とそこに含まれる用語群について、それらに関連した概念の集合を生成することで、その関係を分析する技術である。潜在的意味解析とも。 1988年、アメリカ合衆国でLSAの特許が取得されている。情報検索の分野では、潜在的意味索引または潜在意味インデックス（英: Latent Semantic Indexing, LSI）とも呼ばれている。 LSA では、各文書における用語の出現を表した文書-単語マトリクスが使われる。これは各行が各単語に対応し、各列が各文書に対応した疎行列である。この行列の各成分の重み付けには tf-idf (term frequency–inverse document frequency) が用いられることが多い。この場合、行列の各成分はその文書でその単語が使われた回数に比例した値であり、文書全体での出現回数が少ない単語はその相対的重要性を反映するために強く重み付けされる。 この行列は標準意味モデルでも一般的だが、必ずしも行列として明確に表現される必要性はなく、行列として数学的に利用するとは限らない。 LSA はこの出現行列を用語と何らかの概念の関係および概念と文書間の関係に変換する。したがって、用語と文書は概念を介して間接的に関連付けられる。 この新たな概念空間は以下のような場面で利用される。 概念空間での文書の比較（データ・クラスタリング、文書分類、など） 翻訳文書群の基本セットを分析した後、異なる言語間で類似の文書を探す（言語間検索）。 用語間の関係を探す（類義性や多義性）。 用語群によるクエリを与えられたとき、それを概念空間で解釈し、一致する文書群を探す（情報検索）。 自然言語処理において、類義性と多義性は根本的な問題である。 類義性は、異なる単語が同じ事象を表す現象である。したがって検索エンジンにおいて、クエリにない類義語を見落として、適切な文書を検索できないことがある。例えば、"doctors" を検索したとき、同義である "physicians" という単語を含む文書を検索できないという可能性がある。 多義性は、同じ単語が複数の意味を持つ現象である。そのため、クエリに指定した単語が多義的であった場合、検索要求者が意図しない意味で使っている不適切な文書が検索されてしまうことがある。例えば、植物学者と計算機科学者が "tree" という単語で検索したいのは、全く異なる文書と思われる。 出現行列を構築後、LSAでは文書-単語マトリクスの行列の階数を低減した近似を行う必要がある場合がある。ただし、近似に伴う精度の低下を考慮に入れなくてはならない。 この近似には以下のような理由がある。 元の文書-単語マトリクスがコンピュータのメモリ上に格納するには大きすぎる場合。この場合、階数を低減した行列は「近似」と解釈される。 元の文書-単語マトリクスにノイズが多い場合。その用語の逸話的出現を除去するなど。この場合の近似行列は「ノイズ除去」行列と解釈される。 元の文書-単語マトリクスが理想的な文書-単語マトリクスよりも疎らな場合。すなわち、元の行列には文書で実際に使われている単語のみカウントされているが、各文書の関連する単語に興味がある場合など。つまり、類義性を考慮した行列がほしい場合。 階数の低減の結果、いくつかの次元が統合され、複数の単語に依存するようになる。 {(car), (truck), (flower)} --> {(1.3452 * car + 0.2828 * truck), (flower)} 階数低減が類似の意味を持つ用語に対応する次元を統合することで、類義性問題がある程度解消される。また、多義語の成分が複数の類義語に分配されて統合されるなら、多義性の問題もある程度解消される。逆に、他の方向の成分は単に消去されるか、最悪でも意図した意味よりも成分として小さくなる。 行列 X {\displaystyle X} の成分 ( i , j ) {\displaystyle (i,j)} は、単語 i {\displaystyle i} の文書 j {\displaystyle j} における出現（例えば頻度）を表すとする。 X {\displaystyle X} は次のようになる。 d j ↓ t i T → [ x 1 , 1 … x 1 , n ⋮ ⋱ ⋮ x m , 1 … x m , n ] {\displaystyle {\begin{matrix}&{\textbf {d}}_{j}\\&\downarrow \\{\textbf {t}}_{i}^{T}\rightarrow &{\begin{bmatrix}x_{1,1}&\dots &x_{1,n}\\\vdots &\ddots &\vdots \\x_{m,1}&\dots &x_{m,n}\\\end{bmatrix}}\end{matrix}}} この行列の行は1つの単語に対応したベクトルになっており、各成分が各文書との関係を示している。 t i T = [ x i , 1 … x i , n ] {\displaystyle {\textbf {t}}_{i}^{T}={\begin{bmatrix}x_{i,1}&\dots &x_{i,n}\end{bmatrix}}} 同様に、この行列の列は1つの文書に対応したベクトルになっており、各成分が各単語との関係を示している。 d j = [ x 1 , j ⋮ x m , j ] {\displaystyle {\textbf {d}}_{j}={\begin{bmatrix}x_{1,j}\\\vdots \\x_{m,j}\end{bmatrix}}} 2つの単語ベクトルのドット積 t i T t p {\displaystyle {\textbf {t}}_{i}^{T}{\textbf {t}}_{p}} は、その文書群における単語間の相関を示す。行列積 X X T {\displaystyle XX^{T}} にはそのようなドット積が全て含まれている。その成分 ( i , p ) {\displaystyle (i,p)} （成分 ( p , i ) {\displaystyle (p,i)} と等しい）は、ドット積 t i T t p {\displaystyle {\textbf {t}}_{i}^{T}{\textbf {t}}_{p}} （ = t p T t i {\displaystyle ={\textbf {t}}_{p}^{T}{\textbf {t}}_{i}} ）になっている。同様に行列 X T X {\displaystyle X^{T}X} は全ての文書ベクトル間のドット積が含まれていて、その単語群における文書間の相関を示す。すなわち、 d j T d q = d q T d j {\displaystyle {\textbf {d}}_{j}^{T}{\textbf {d}}_{q}={\textbf {d}}_{q}^{T}{\textbf {d}}_{j}} である。 X {\displaystyle X} の分解として、直交行列 U {\displaystyle U} と V {\displaystyle V} 、対角行列 Σ {\displaystyle \Sigma } が存在すると仮定する。このような分解を特異値分解 (SVD) と呼ぶ。 X = U Σ V T {\displaystyle X=U\Sigma V^{T}} 単語の相関と文書の相関を与える行列積は、次のように展開される。 X X T = ( U Σ V T ) ( U Σ V T ) T = ( U Σ V T ) ( V T T Σ T U T ) = U Σ V T V Σ T U T = U Σ Σ T U T X T X = ( U Σ V T ) T ( U Σ V T ) = ( V T T Σ T U T ) ( U Σ V T ) = V Σ U T U Σ V T = V Σ T Σ V T {\displaystyle {\begin{matrix}XX^{T}&=&(U\Sigma V^{T})(U\Sigma V^{T})^{T}=(U\Sigma V^{T})(V^{T^{T}}\Sigma ^{T}U^{T})=U\Sigma V^{T}V\Sigma ^{T}U^{T}=U\Sigma \Sigma ^{T}U^{T}\\X^{T}X&=&(U\Sigma V^{T})^{T}(U\Sigma V^{T})=(V^{T^{T}}\Sigma ^{T}U^{T})(U\Sigma V^{T})=V\Sigma U^{T}U\Sigma V^{T}=V\Sigma ^{T}\Sigma V^{T}\end{matrix}}} Σ Σ T {\displaystyle \Sigma \Sigma ^{T}} と Σ T Σ {\displaystyle \Sigma ^{T}\Sigma } は対角行列なので、 U {\displaystyle U} には X X T {\displaystyle XX^{T}} の固有ベクトルが含まれるはずであり、一方 V {\displaystyle V} は X T X {\displaystyle X^{T}X} の固有ベクトルのはずである。どちらの行列積にも Σ Σ T {\displaystyle \Sigma \Sigma ^{T}} のゼロでない成分に由来する、または等価的に Σ T Σ {\displaystyle \Sigma ^{T}\Sigma } のゼロでない成分に由来する、同じゼロでない固有値がある。以上から分解は次のようになる。 X U Σ V T ( d j ) ( d