从SVD到LSA&PLSA

【Latent semantic analysis】
LSA最初是用在语义检索上,为了解决一词多义和一义多词的问题:
1.一词多义: 美女和PPMM表示相同的含义,但是单纯依靠检索词“美女”来检索文档,很可能丧失掉那些包含“PPMM”的文档。
2.一义多词:如果输入检索词是多个检索词组成的一个小document,例如“清澈 孩子”,那我们就知道这段文字主要想表达concept是和道德相关的,不应该将“春天到了,小河多么的清澈”这样的文本包含在内。

为了能够解决这个问题,需要将词语(term)中的concept提取出来,建立一个词语和概念的关联关系(t-c relationship),这样一个文档就能表示成为概念的向量。这样输入一段检索词之后,就可以先将检索词转换为概念,再通过概念去匹配文档。

在实际实现这个思想时,LSA使用了SVD分解的数学手段。我们可以将document and term表示成为矩阵的形式。用x表示term-document matrix,通过SVD分解X可以表示为
x=T*S*D 。
S为对角矩阵,对角元素表示对应概念的有效程度。其实在实际生活当中概念就是具体事物的抽象,被人们所接受和使用的概念都是能够很有效概念。LSA算法也和实际生活中一样,需要提出掉有效程度低的概念,保留有效程度高的概念。
T为正交矩阵,行向量表示term,列向量表示概念
D为正交矩阵,行向量表示概念,列向量表示document

【PLSA】
PLSA和LSA基础思想是相同的,都是希望能从term中抽象出概念,但是具体实现的方法不相同。PLSA使用了概率模型,并且使用EM算法来估计P(t|c)和P(c|d)矩阵,详细算法可参考下面列举的相关文献。




相关文献:
一篇介绍LSA非常好的note
Latent semantic analysis note by zhouli

一篇介绍PLSA的note by hong liangjie
Notes on Probabilistic Latent Semantic Analysis (PLSA)
PLSA wiki 上面有PLSA的creator Hofmann的原始文章

你可能感兴趣的:(从SVD到LSA&PLSA)