首先给出一些参考网址:
第一个讲的很仔细了
这里我主要是对自己理解的一个总结:
LDA是什么,其实就是一个简单的model。
他能用来干什么呢?他可以用来提取主题,例如我们有一堆的文本或者文档,我们希望得到这些文档包含了那些主题,这个时候我们可以去用LDA模型
我们可以规定提取几个主题和每个主题都包括多少个word,这个是lda可以实现的。
LDA涉及到什么知识:
Direchle Process,吉布斯采样,Gamma分布等等,
但是我们不能被这个吓住了,看LDA的paper也觉得很困难,公式一大堆对吧
其实说白了一直是在找一个公式去计算word-topic,topic-document 和document-word的概率吗
我们先不管这些东西怎么算:
我告诉大家这个东西:
在初始化的时候我们有了alpha和beta,这两个参数就已经告诉了我们topic-document和topic-word的概率了
因为这两个参数告诉了我们topic-document和topic-word的direchlet分布。
那么大家一定觉得这个计算完了,既然已经知道了分布,那就结束了啊
但是我们知道了分布,但是我们不知道如何去分布每个topic中的单词
这个问题如何解决?
于是大家用到了吉布斯采样,也有用用EM
吉布斯采样是MCMC的一个特殊情况。
吉布斯参与的目的是什么呢?
我们用吉布斯参与去更新每一个单词的topic分布,从而达到一个稳定值
这个过程
这个bolg里面的代码是LDA的一个java代码
代码很简单,也方便大家的理解。
如果那里写的不对,希望大家指出,互相学习。