学习建议:
从大方向上把握LDA
1、先了解主题模型的历史
可以通过了解主题模型的历史,从基于统计学分布的一元模型,多元混合模型,到基于贝叶斯的一元模型。再到pLSA,再到基于贝叶斯的LDA。
参考https://blog.csdn.net/pipisorry/article/details/42560693
2、再了解pLSA与LDA可以用来干什么
对于M篇文档,通过模型的计算,可以得到M篇文档中每一个文档下的主题分布,每一个主题下的单词分布。
用处1,可以用此来得到每个文章之间的相似性(计算主题向量之间的距离即可,越小的说明越相似)。用处2,可以用来的到一篇文档的关键词(不同主题下的前几个概率最大的词)
注意pLSA是统计观点,是通过EM算法求得。而LDA是贝叶斯观点,通过Gibbs或者变分EM算法可以求解得到模型参数。参考http://www.cnblogs.com/pinard/p/6873703.html
而对于新来的一篇文章,怎样计算得到该文章的主题分布呢?
pLSA类似于朴素贝叶斯, 仍然需要统计各种东西然后按照EM算法的到的参数公式进行计算。
而LDA则通过Gibbs采样的前半部分可以得到其主体分部。参考http://www.cnblogs.com/pinard/p/6873703.html
以上就是LDA基本原理,弄懂就可以调用LDA包了。要是想深挖下面的理论,还需要弄清许多推导的细节。
3、再具体了解LDA中的几个基本概念都是什么。
4、最后再看看LDA模型是怎么得到以及怎么求解参数(gibbs采样)的。参考https://blog.csdn.net/yhao2014/article/details/51098037
LDA要干的事情:根据给定的一篇文档,推测其主题分布。
狄利克雷分布,被称为是分布的分布。
从一个分布中采样,得到的就是一个随机变量X。
从一个分布的分布中采样,得到的就是关于X的分布。然后再从X的分布中采样,才能得到随机变量X。
对图片中四句话的解释:
狄利克雷分布 是多项式分布的 共轭先验分布。也就是说,已知先验概率,是可以对X进行采样的。
主题符合多项式分布。于是,先采样的到主题的分布。
再从主题的分布中采样的到第j个单词的主题。
单词符合多项式分布,再从狄利克雷beta中采样得到单词的分布
再从单词的分布中采样得到单词。
顺序统计量中Xk的分布。先计算落在[x,x+detax]的概率。
通过上述推论,在区间中有一个X落在[x,x+detax]中的概率是P(E)。而这个X的取值可能有n个,所以情况会有Cnn-k种。
超过两个的额情况就是高阶无穷小。
于是可知落在区间中的概率,而连续分布的概率密度,可以通过极限求得。
1、最终发现这个可以与gama函数联系起来。然后推出了beta分布。
2、beta分布中,beta是二项分布的共轭先验分布,这一点从知乎,如何通俗理解beta分布中可以得到结论。
经过最终计算beta的期望,发现最终E(p)等于alpha\alpha+beta,服从beta分布的随机变量的均值,都可以通过这个期望来得到。
EM算法,推导过程也挺简单,可以特意记一下公式。最终的参数jesen不等式,得到的参数值。
对于pLSA算法,认为参数theta是固定参数,设定好参数以后,最终可以对此参数采用EM算法,估计得到模型的两个参数,使得能够满足极大似然,从而可以用于估计,分类。
注意,此时pLSA没有考虑先验分布。而LDA考虑了先验分布,所以才需要加上两个先验概率。
最终求得狄利克雷概率分布的期望值(知道其中任意元素的期望值,也就是一系列的概率分布值也确定了)。
而alpha,beta参数也已知
所以,通过gibbs采样,得到了两个狄利克雷分布。LDA模型需要的参数就已经知道啦。
LDA中,先根据狄利克雷分布,采样产生主题分布,再根据主题分布产生主题。(多了一步采样产生主体分布。因为在pLSA中认为主体分布是固定的参数,不需要采样的。)
再查查LDA在文本分类上的应用。
得到模型的参数以后,就可以对文本求得后验概率,每个文本属于某一个主题的概率也就可以确定了。主题相似的文本相似度就高。
LDA模型的一个简单应用。
应用:将LDA模型应用于1篇文档,进行关键词抽取。
方法与原理依据:LDA模型能够得到每个主题生成每个词的概率,那么我们可以把每个主题中的TopK个词取出来作为该文档的关键词(移除重复出现的词)。
对上面这句话的理解,就是,比如我们假定有5个主题,那么我们可以根据LDA算出这篇文档属于这五个主题的概率。然后这5个主题生成词的概率我们也能知道,比如第1个主题生成每个词的概率我们能够得到,我们就取前两个或者三个词作为这个文本的关键词。同理我们能得到十个或者十五个关键词,再去重,取权重,就能得到这个文档的关键词了。
与pLSA相比,贝叶斯化带来的好处。
对于一篇新的文章,通过gibbs采样,即可得到
这篇文章的主体分布的参数。即可进行
这个利用看到的文档推断其隐藏的主题(分布)的过程(其实也就是产生文档的逆过程),便是主题建模的目的:自动地发现文档集中的主题(分布)。
怎么进行目的呢?即求得主题分布呢?
pLSA中,把已知概率p(w,d)用两个与主题有关的概率参数表示,然后利用极大似然函数,此时,未知参数与极大似然函数都已经具备,就可以进行EM算法了。
https://www.cnblogs.com/fengsser/p/5836677.html
LDA的使用是上述文档生成的逆过程,它将根据一篇得到的文章,去寻找出这篇文章的主题,以及这些主题对应的词。
是不是可以认为,在得到样本x以后,就可以得到后验分布theta了,相当于一直x以后,该文档的主题也就都可以求得了。
pLSA的通过EM算法求解,我们会得到两分参数的估计。根据这两个估计,我们可以求得每个文章中的主题分布,每个主题下的单词的分布。
如下,其中LDA与pLSA类似。
对于下图中的pLSA,在已经训练,得到这两个参数以后,基于统计的思想,我们认为,这两个参数是不变的。因为是矩阵,我们甚至可以求得每个文档下的主题分布,每个主题下的词的分布。
类似于朴素贝叶斯,需要对许多数据进行统计,然后求得参数。
而对于来了一篇新的文章,想要得到该文章的主题分布,以及主题下词的分布。就可以利用这两个公式进行计算了。k等于5的话,文档i下面我们就能得到5个theta。
LDA的求解方法:因为LDA基于贝叶斯学派的观点,所以用别的算法估计这两个参数十分麻烦,可以用变分EM算法或者gibbs采样可以求得这两个参数。
而对于新的一篇文档,要得到文档的主题分布,也是用gibbs采样的前半部分求得。参考http://www.cnblogs.com/pinard/p/6867828.html