LSIのコンテキストでの特異値分解の理解


9

私の質問は、一般的に特異値分解(SVD)、特に潜在的意味論的索引付け(LSI)についてです。

たとえば、7つのドキュメントに対して5ワードの頻度を含むとします。Aword×document

A =  matrix(data=c(2,0,8,6,0,3,1,
                   1,6,0,1,7,0,1,
                   5,0,7,4,0,5,6,
                   7,0,8,5,0,8,5,
                   0,10,0,0,7,0,0), ncol=7, byrow=TRUE)
rownames(A) <- c('doctor','car','nurse','hospital','wheel')

私はのための行列因数分解取得 SVDを使用して:A = U \ CDOT D \ CDOT V ^ TAA=UDVT

s = svd(A)
D = diag(s$d) # singular value matrix
S = diag(s$d^0.5 ) # diag matrix with square roots of singular values.

では12、それがことが述べられています。

WordSim=USは、WordSimの行が異なる単語を表す単語類似度行列を提供し ます。 WordSim

WordSim = s$u %*% S

DocSim=SVTは、DocSimの列が異なるドキュメントを表すドキュメント類似度マトリックスを提供し ます。DocSim

DocSim = S %*% t(s$v)

質問:

  1. 代数的に、WordSimDocSimS単語/ドキュメントの類似度マトリックスはなぜですか?直感的な説明はありますか?
  2. 与えられたRの例に基づいて、WordSimDocSimを見るだけでDocSim(行/列間のコサイン類似性または相関係数を使用せずに)直観的な単語数/類似性の観察を行うことができますか?

ここに画像の説明を入力してください


LSIについてはほとんど知りませんが、行列のSVDは線形次元削減の中心であり、主成分、バイプロット、コレスポンデンス分析などのマッピング手法です。SVDの主な「法則」は、 =の行の主軸への投影です。そして =の列の投影主軸へ。ある意味では、ポイント(行または列)と主軸の間の「類似性」の値です。ポイント同士の類似性として扱えるかどうかは状況次第だと思います。AV=UDAAU=VDA
ttnphns 14

A ..ウィキペディアで、LSIは単なるコレスポンデンス分析(CA)であることがわかりました。それは良いです。CAは、特別に準備されたデータテーブルのバイプロットです。前述の投影または座標-主軸の空間に行と列の点をプロットするために使用します。row-row、col-col、row-colポイント間の近さは、それらの類似性に関連しています。ただし、プロットのレイアウトは、行と列の点に慣性(分散)をどのように広げるかによって異なります。
ttnphns 14

@ttnphns。ありがとうございます。「 = Aの行の主軸への投影、および = Aの列の主軸への投影」を参照してください。それは私にとって事を明確にするだろうと思います。主軸とは、上位m個の特異値に対応する固有ベクトルを意味しますか?「PCAの場合、左特異ベクトルを計算する必要はありません」と私は出会いましたが、これが事実である理由を完全に理解することはできません。AV=UDAU=VDD
ジュバーブ2014

2
質問を編集して、そのドキュメントの内容を正しく反映することにより、質問を改善できます。p。22それはをの平方根を含むものとして定義し、最大のものに「制限」されます。したがって、もも含まれず、「類似度マトリックス」としての解釈もありません。代わりに、関連する行列はおよびです。これらは、近似を再構築するために使用できますSDUDDVUSSVA=UDVU(S2)V=(US)(SV).
whuber

1
D=svd(A)$dRではゼロ以外の固有値の平方根を返すと想定しているため、を使用し。私は次元削減の側面には問題がなく、Aの下位ランクの近似が形成される可能性があることを理解しています。このリンクの答えが部分的に私の質問に答えていることがわかりました。UD
ジュバーブ2014

回答:


2

SVDを使用した行列分解は、入力行列を3つの部分に分解します。

  • 左特異ベクトル。この行列の最初の列は、入力行列の行が最も変化する軸を指定します。あなたの場合、最初の列は、どの単語が最も一緒に変化するかを示しています。U
  • 特異値は、。これらはスケーリングです。これらは互いに相対的です。の最初の値が2 番目の値の2倍である場合、最初の特異ベクトル(および)は、秒の特異ベクトルの2倍の変動を説明することを意味します。DDUVT
  • 右特異ベクトル。この行列の最初の行は、入力行列の列が最も変化する軸を指定します。あなたの場合、最初の行は、どのドキュメントが最も変化が大きいかを示しています。VT

単語または文書が一緒変化する場合、それらは類似していることを示します。たとえば、ドキュメント内でドクターという単語がより頻繁に出現する場合、ナースと病院という単語もより頻繁に出現します。これは、の最初の列である最初のスケーリングされた左特異ベクトルによって示されます。入力データを調べることにより、この結果を検証できます。ナースが発生すると病院も発生し、発生しないと病院も発生しないことに注意してください。WordSim

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.