我的问题通常是关于奇异值分解(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:。
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 = s$u %*% S
给出 文档相似性矩阵,其中的列代表不同的文档。
DocSim = S %*% t(s$v)
问题:
- 代数上,为什么和单词/文档相似度矩阵?有直观的解释吗?
- 根据给出的R示例,我们是否可以仅通过查看和(不使用行/列之间的余弦相似度或相关系数)来进行直观的字数/相似度观察?
我对LSI知之甚少,但是矩阵的SVD是线性降维,映射方法(例如主成分,双线图,对应分析)的核心。SVD的主要“定律”是 =行在主轴上的投影;和 =列的投影到主轴。从某种意义上说,它是点(行或列)与主轴之间的“相似”值。我认为,是否可以将其视为两点之间的相似性取决于上下文。
—
ttnphns 2014年
嗯..我在Wikipedia中看到LSI只是对应分析(CA)。这样更好 CA是双标图一个专门准备的数据表。上述投影或坐标-您可以使用它们在主轴空间中绘制行和列点。行,col-col和row-col点之间的接近程度关系到它们的相似性。但是,绘图上的布局取决于您如何在行和col点上分布惯性(方差)。
—
ttnphns 2014年
@ttnphns。谢谢,您能否提供参考:“ = A的行在主轴上的投影;而 =的行在主轴上的投影”?我认为这将为我澄清一些事情。主轴是指与的前m个奇异值相对应的特征向量吗?我也碰到过:“对于PCA,我们不需要计算左奇异向量”,但是不能完全理解为什么会这样。
—
朱巴卜2014年
您可以通过编辑问题以正确反映该文档的状态来改善您的问题。在第 22它定义作为包含平方根的,“限制”与最大的。因此,既不涉及也不涉及,也没有解释为“相似性矩阵”。相关矩阵改为和。它们可用于重建的近似值
—
ub