私の質問は、一般的に特異値分解(SVD)、特に潜在的意味論的索引付け(LSI)についてです。
たとえば、7つのドキュメントに対して5ワードの頻度を含むとします。
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 ^ T。
s = svd(A)
D = diag(s$d) # singular value matrix
S = diag(s$d^0.5 ) # diag matrix with square roots of singular values.
は、WordSimの行が異なる単語を表す単語類似度行列を提供し ます。
WordSim = s$u %*% S
は、DocSimの列が異なるドキュメントを表すドキュメント類似度マトリックスを提供し ます。
DocSim = S %*% t(s$v)
質問:
- 代数的に、と単語/ドキュメントの類似度マトリックスはなぜですか?直感的な説明はありますか?
- 与えられたRの例に基づいて、とDocSimを見るだけで(行/列間のコサイン類似性または相関係数を使用せずに)直観的な単語数/類似性の観察を行うことができますか?
LSIについてはほとんど知りませんが、行列のSVDは線形次元削減の中心であり、主成分、バイプロット、コレスポンデンス分析などのマッピング手法です。SVDの主な「法則」は、 =の行の主軸への投影です。そして =の列の投影主軸へ。ある意味では、ポイント(行または列)と主軸の間の「類似性」の値です。ポイント同士の類似性として扱えるかどうかは状況次第だと思います。
—
ttnphns 14
A ..ウィキペディアで、LSIは単なるコレスポンデンス分析(CA)であることがわかりました。それは良いです。CAは、特別に準備されたデータテーブルのバイプロットです。前述の投影または座標-主軸の空間に行と列の点をプロットするために使用します。row-row、col-col、row-colポイント間の近さは、それらの類似性に関連しています。ただし、プロットのレイアウトは、行と列の点に慣性(分散)をどのように広げるかによって異なります。
—
ttnphns 14
@ttnphns。ありがとうございます。「 = Aの行の主軸への投影、および = Aの列の主軸への投影」を参照してください。それは私にとって事を明確にするだろうと思います。主軸とは、上位m個の特異値に対応する固有ベクトルを意味しますか?「PCAの場合、左特異ベクトルを計算する必要はありません」と私は出会いましたが、これが事実である理由を完全に理解することはできません。
—
ジュバーブ2014
質問を編集して、そのドキュメントの内容を正しく反映することにより、質問を改善できます。p。22それはをの平方根を含むものとして定義し、最大のものに「制限」されます。したがって、もも含まれず、「類似度マトリックス」としての解釈もありません。代わりに、関連する行列はおよびです。これらは、近似を再構築するために使用できます
—
whuber