在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:。AA=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 = s$u %*% S

DocSim=SVT给出 文档相似性矩阵,其中的列代表不同的文档。DocSim

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

问题:

  1. 代数上,为什么和单词/文档相似度矩阵?有直观的解释吗?WordSimDocSimS
  2. 根据给出的R示例,我们是否可以仅通过查看和(不使用行/列之间的余弦相似度或相关系数)来进行直观的字数/相似度观察?WordSimDocSim

在此处输入图片说明


我对LSI知之甚少,但是矩阵的SVD是线性降维,映射方法(例如主成分,双线图,对应分析)的核心。SVD的主要“定律”是 =行在主轴上的投影;和 =列的投影到主轴。从某种意义上说,它是点(行或列)与主轴之间的“相似”值。我认为,是否可以将其视为两点之间的相似性取决于上下文。AV=UDAAU=VDA
ttnphns 2014年

嗯..我在Wikipedia中看到LSI只是对应分析(CA)。这样更好 CA是双标图一个专门准备的数据表。上述投影或坐标-您可以使用它们在主轴空间中绘制行和列点。行,col-col和row-col点之间的接近程度关系到它们的相似性。但是,绘图上的布局取决于您如何在行和col点上分布惯性(方差)。
ttnphns 2014年

@ttnphns。谢谢,您能否提供参考:“ = A的行在主轴上的投影;而 =的行在主轴上的投影”?我认为这将为我澄清一些事情。主轴是指与的前m个奇异值相对应的特征向量吗?我也碰到过:“对于PCA,我们不需要计算左奇异向量”,但是不能完全理解为什么会这样。AV=UDAU=VDD
朱巴卜2014年

2
您可以通过编辑问题以正确反映该文档的状态来改善您的问题。在第 22它定义作为包含平方根的,“限制”与最大的。因此,既不涉及也不涉及,也没有解释为“相似性矩阵”。相关矩阵改为和。它们可用于重建的近似值SDUDDVUSSVA=UDVU(S2)V=(US)(SV).
ub

1
我假设D=svd(A)$d在R中返回非零特征值的平方根,因此我使用。我在降维方面没有问题,而且我知道可以按照他们的描述形成A的较低秩近似。我发现此链接上的答案部分回答了我的问题。UD
朱巴卜2014年

Answers:


2

使用SVD的矩阵分解将输入矩阵分解为三个部分:

  • 左奇异向量。此矩阵的第一列指定输入矩阵的行在哪个轴上变化最大。在您的情况下,第一列告诉您哪些词变化最大。U
  • 奇异值。这些是缩放比例。这些是相对的。如果的第一个值是第二个的两倍,则意味着第一个奇异的向量(在和)解释的变化量是秒的奇异向量的两倍。DDUVT
  • 右奇异向量。该矩阵的第一行指定输入矩阵的列在哪个轴上变化最大。就您而言,第一行告诉您哪些文档变化最大。VT

当单词或文档一起变化时,表明它们是相似的。例如,如果“医生”一词在文档中出现的频率更高,那么“护士”和“医院”一词的出现频率也会更高。这由第一个按比例缩放的左奇异矢量(的第一列)。您可以通过查看输入数据来验证此结果。请注意,当确实发生护士时,也会发生医院;而当没有发生护士时,也不会发生医院。WordSim

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.