标签:
“庙小妖风大,水浅王八多”。还是这句话,这是业余研究生的文本建模系列之二:关于pLSA。前述就到此。
pLSA:Probabilistic Latent Senmantic Indexing.是Hoffman在1999年提出的基于概率的隐语义分析【1】。之所以说是probabilistic,是因为这个模型中还加入了一个隐变量:主题Z ,也正因为此,它被称之为主题模型。
在pLSA中,一片文档可能有多个主题,而一个主题对应着多个单词的分布,以【2】LDA数学八卦一文中的描述为例,可以比较生动的阐述在pLSA模型中,一篇文档是如何生成的。
因此,对于文档d中的一个单词w,其概率可以描述为:
对于整个语料,那么其似然函数是:
当然,其对数的似然函数如下:
其中
n(d,w)表示在文档d中,单词w出现的次数
带入第一式可以得到对数的似然函数是:
然后现在的问题是:如何求取P(w|z)和P(z|d).
这种隐变量的求法和之前的高斯混合分布的求法其实是一样的,很显然的需要EM算法来进行求导。回顾之前的EM算法,我们首先需要求取Q函数的分布的期望,然后另该期望最大化。
根据Jessen不等式:
变成求右边下界的问题,需要等号成立的话,需要:
因此我们得出:
于是E步就是:
有两个约束条件:
下面进行M步,也就是求期望最大:
使用拉格朗日乘法求:
使偏导为零可以得出结果:
这就求出了我们需要的参数。
然后就是重复迭代的过程,直至收敛。
好了,模型已经建立完毕,现在的问题是给出一篇新的文档,如何求取其文档的主题分布呢。当然最直接的想法就是,将该文档丢到语料库中重新爬一遍,然后得出结果,当然这种耗时大一般不建议采用,论文【1】在给出了几种方法,我觉的主要是fold-in方法比较重要:
将训练出来的p(w|z)固定不变,在EM算法中,只有一个文档q,通过迭代跑p(z|d),之后计算相似度?
OK,这就是pLSA.
求偏导可以参考【3】
参考文献:
[1]Probabilitic Latent Semantic Indexing.Thomas Hofmann .
[2]LDA数学八卦.靳志辉
标签:
原文地址:http://blog.csdn.net/u010223750/article/details/51334584