from:
对于语料库中的每篇文档,LDA定义了如下生成过程(generative process):
1. 对每一篇文档,从主题分布中抽取一个主题;
2. 从上述被抽到的主题所对应的单词分布中抽取一个单词;
3. 重复上述过程直至遍历文档中的每一个单词。
这个图模型表示法也称作“盘子表示法”(plate notation)。图中的阴影圆圈表示可观测变量(observed variable),非阴影圆圈表示潜在变量(latent variable),箭头表示两变量间的条件依赖性(conditional dependency),方框表示重复抽样,重复次数在方框的右下角。
doc
|
----------------------------------------
|
topic_1
topic_i
|
----------------------------------------
|
word_1
最基本的PLSA和LDA在刻画doc~topic和topic~word都利用了一个模型,就是multinomial model。为了计算的方便及先验的有意义,共轭先验是首选。multinomial distribution的共轭分布是Dirichlet distribution,很nice的一个分布。这也是Latent Dirichlet Allocation中Dirichlet的由来。
Bayes prior smoothing的先验也是Dirichlet,因为在一元语言模型中,也采用了multinomial来刻画。
而且在PLSA中引入的先验也是Dirichlet。那么它到底有什么好处呢?让大家这么对它着迷。计算简单性是大家都知道的,现在说一点它的奇妙的implict idea:
拿Bayes prior smoothing说:
P_ml(w|d) = c(w,d) / |d|
平滑后的分子为|d| + mu {原来为|d|}
好像文档多了mu个词,在这个mu新词中,有mu*p(w|c)这么多的w
对应到LDA中,是那个超参数给定后,才能得出i.i.d。。。需要自己看paper理解。
这也是层级模型的一个很优美的地方。
\
product_1
而条件独立则是一个更强的假设,整个转盘没有头上的钩子,但是确可以悬浮在概率空间中的任何一点,而认为整体形态没有改变。
这个生成过程可以用如下的图模型表示:
Topic model的一个通式为: P(w|d) = ∑ p(w|z)*p(z|d)
而
而最上层,就是人们常说的“降维”,其实是把文档投影到了“topic”空间。
doc~topic~word
这个Bayes Chain,就可以涵盖LDA的一个最基本的思想。
而PLSA其实也是这个链,那它和LDA有什么区别呢?
最大的区别就在于,doc~topic这一级,PLSA把这一级的所有变量都看作模型的参数,即有多少文档那么就有多少模型的参数;而LDA引入了一个超 参数,对doc~topic这一个层级进行model。这样无论文档有多少,那么最外层模型显露出来的[对于doc~topic]就只有一个超参数。
那么加什么先验呢?
Dirichlet prior是一个巨牛的先验:
P(w|d) = {c(w,d)+mu*p(w|c)} / {|d| + mu}
而最大似然的估计是
平滑后的分母为c(w,d)+mu*p(w|c){原来为c(w,d)}
所以奇妙的地方就在不同的地方:
这就是pseudo count的思想。理解了这个以后,PLSA加先验的推导,就不用再手推了。只要把这些多出来的先验词加上。一切就OK了。
那么如何推导LDA的那些参数呢?大体有两种方法:一种是作者的varitional inference;另外一种是Gibbs Sampling。
在这个层级结构中:doc~topic~word,刚才说到LDA是对(doc~topic)加了一个先验。然后他是如何利用这个先验的呢?利用了 exchangabiltity。所谓可交换性,就是conditional independent and identically distributed;注意与i.i.d的区别,“conditional”
在我给定了doc~topic的先验后,对于一个文档,我取不同的topic的过程完全是独立的。
Worker
可交换性其实是当我们信息不充足的时候的一个比较优美的假设,既然我们什么都不知道。那么我们就认为给定它的上级后,下面的东西都conditional independent and identically distributed
再举一个形象的例子,大家如果是懒人的话就会把袜子攒到一块洗,那么晾袜子就麻烦了,这么多袜子怎么办呢?于是商家很机警,他们发明了那种,头上一个钩,下面是一个大转盘的晾袜子的东西,这样袜子可以晾一圈。。。所以exchangabiltity指的是,如果袜子一样,那么一旦上面的钩子固定了,那么下面的袜子怎么转我们认为都没有关系的。
该模型有两个参数需要推断(infer),θ和φ。通过学习(learn)这两个参数,我们可以知道文档作者感兴趣的主题φ,以及每篇文档所涵盖的主题比例θ。
参考:http://hi.baidu.com/flyer_hit/blog/item/2ec12d251dd9dd6835a80f55
原文地址:http://blog.sina.com.cn/s/blog_50d4c97b0100n9ee.html