【JMLR'03】Latent Dirichlet Allocation - David M.Blei

本文转自:

http://www.xperseverance.net/blogs/2012/03/17/

听说国外大牛都认为LDA只是很简单的模型,吾辈一听这话,只能加油了~

另外这个大牛写的LDA导读很不错:http://bbs.byr.cn/#!article/PR_AI/2530?p=1

一、预备知识:

       1. 概率密度和二项分布、多项分布,在这里

       2. 狄利克雷分布,在这里,主要内容摘自《Pattern Recognition and Machine Learning》第二章

       3. 概率图模型,在PRML第九章有很好的介绍

二、变量表示:

      1. word:word是最基本的离散概念,在自然语言处理的应用中,就是词。我觉得比较泛化的定义应该是观察数据的最基本的离散单元。word的表示可以是一个V维向量v,V是所有word的个数。这个向量v只有一个值等于1,其他等于0。呵呵,这种数学表示好浪费,我以前做过的项目里一般中文词在200-300w左右,每一个都表示成300w维向量的话就不用活了。哈哈,所以真正应用中word只要一个编号表示就成了。

     2. document:一个document就是多个word的合体。假设一篇文档有N个词,这些word是不计顺序的,也就是exchangeable的,LDA论文 3.1有说这个概念。论文中document的个数是M。

     3. topic:就是主题啦,比如“钱”的主题可能是“经济”,也可能是“犯罪”~ LDA中主题的表示是隐含的,即只预先确定主题的个数,而不知道具体的主题是什么。论文中表示主题个数的字母是k,表示主题的随机变量是z。

好了,总结一下所有的变量的意思,V是所有单词的个数(固定值),N是单篇文档词的个数(随机变量),M是总的文档的个数(固定值),k是主题的个数(需要预先根据先验知识指定,固定值)。

三、基础模型:

        先从两个基础模型说起:

       1. Unitgram model (LDA 4.1)

       一个文档的概率就是组成它的所有词的概率的乘积,这个一目了然,无需多说:

$p(\mathbf{w})=\prod\limits_{n=1}^{N}p(w_n)$

       图模型:

        2. Mixture of unigrams (LDA 4.2)

        假如我们假设一篇文档是有一个主题的(有且仅有一个主题),可以引入主题变量z,那么就成了mixture of unigrams model。它的图模型如下图:

$p(w)=\sum\limits_{z}p(z)\prod\limits_{n=1}^{N}p(w_n|z)$

       这个模型的generate过程是,首先选择一个topic z for each docoment,然后根据这个z以及p(w|z)独立同分布产生w。观察这个图,z是在N饼外面的,所以每一个w均来自同一个z,就是说一个文档N个词只有一个topic。这和LDA中z在N饼里面不一样。

四、LDA

       接下来正式说LDA的产生过程,对于一个文档w:

      1. 选择 $N\sim Possion(\xi)$

          这一步其实只是选个单词的个数,对整个模型没啥影响

      2. 选择一个多项分布参数 $\theta\sim Dir(\alpha)$

          这α是狄利克雷分布的参数(k+1维),$\vec{\theta}=(\theta_1,~...,~\theta_k)$是产生主题的多项分布的参数,其中每一个$\theta_i$代表第i个主题被选择的概率。从狄利克雷产生参数θ之后,再用θ去产生z

      3. 上两步完成后,开始产生文档中的N个词

              (a) 首先选个一个topic $z\sim Multinomial(\theta)$

                    z是从以θ为参数的多项分布中挑选出来的,总共有k个topic,根据θ的概率参数选择其中一个topic作为z

              (a) 然后选择一个word from $p(w_n|z_n,\beta)$

                   这个参数β也是多项分布,是一个$k\times V$的矩阵,表示从zi到wj的产生概率即$\beta_{ij}=p(w^j=1|z^i=1)$。若已选定zn,则矩阵的第n行就成了用来选择产生w的多项分布,根据这个多项分布产生一个w

       至此,产生过程完成。上概率图模型:

整个图的联合概率为(只算单个文档,不算整个corpus的M个文档):

$p(\theta,\mathbf{z},\mathbf{w}|\alpha,\beta)=p(\theta|\alpha)\prod\limits_{n=1}^{N}p(z_n|\theta)p(w_n|z_n,\beta)$

把上式对应到图上,可以大致解释成这个样子:

在上面这个新图中,LDA的三个表示层被用三种颜色表示了出来:

1. corpus-level (红色):α和β是语料级别的参数,也就是说对于每个文档都是一样的,因此在generate过程中只需要sample一次。

2.document-level (橙色):θ是文档级别的参数,意即每个文档的θ参数是不一样的,也就是说每个文档产生topic z的概率是不同的,所以对于每个文档都要sample一次θ。

3. word-level (绿色):最后z和w都是文档级别的变量,z由参数θ产生,之后再由z和β共同产生w,一个w对应一个z。

五、几何学解释

来看下面这个图:

        这个图的意思是这样的,外面大三角形的三个顶点代表三个word,这三个word组成一个simplex,那么这个simplex中的一个点,代表什么意思呢?它代表的意思就是一个点就是一个产生这三个word的多项分布的概率密度(对于这个图多项分布的它是一个三维向量)。具体点来说,例如红色的点p1,它就在word1上。这个意思就是说,p1是一个多项分布,其参数为(1.0, 0, 0),也就是它产生word1的概率为1,产生其它两个word的概率为0。再来看蓝色的点p2,它产生word1的概率正比于它到word1对边的距离(注意可不是到word1那个点的距离哈)。因为正三角形内部任意一点到三边的垂线之和等于高,也就是可以视为等于1。那么正好这个性质满足概率之和等于1。所以p2到三边的垂线非别代表p2产生垂线对面那个顶点的概率。因此,p2产生word 1的概率看起来像是0.1, word2的概率像是0.4,word3像是0.5。

       了解了上面这层意思之后,我们再来看这个topic simplex。它是包含在word simplex里面的(sub-simplex),所以topic simplex上的一点同时也是word simplex上的一个点。这样topic simplex上的一个点,就有了两层含义,一层含义是它是一个产生word的多项分布概率密度,另一层含义就是它是产生topic的多项分布概率密度。在这个图上,还可以发现topic的点相对于word simplex是已经固定的,其实这topic simplex 上的三个顶点到word simplex上的三个顶点对边垂直线总共9个距离,也就是9个概率值,正好是一个$3\times 3$的矩阵,这个矩阵就是LDA中的β参数。

      知道了这些之后,我们就可以来看mixture of unigrams在图上应该怎么表示了。还记得mixture of unigrams是要先选择一个文档的topic z的,然后根据这个topic产生word。所以它在这个图上的产生过程就是,先随机挑选topic simplx(注意是topic simplex)三个顶点中的一个,然后根据这个顶点到word simplex顶点对边线的距离,也就是这个顶点在word simplex上的多项分布产生每一个word。

      再来看pLSI,图中间每一个带叉的圈圈就是一个pLSI中的文档,每一个文档(在pLSI中文档被视为观察变量,即每个文档都被视为word那样是有编号的)都有一个独立的产生topic的多项分布,文档点的位置就表示了它产生三个topic的概率值。

     对于LDA,汗,不是很理解,LDA places a smooth distribution on the topic simplex denoted by the contour lines。只好先放着了。

     2012@3@28,关于上面这个LDA的图形为啥是曲线的问题,我专门请教了北大赵鑫大牛,他的回答很给力而且一针见血。要理解LDA为啥是曲线,要先从pLSI为啥是点说起。因为pLSI中,由文档w产生topic z的概率是一个参数,对于每个单独文档这个参数要被估计一次,参数可不是随机变量,而是固定的值。因此pLSI中每个文档在图中表示为一个确定的点。而LDA呢,文档w产生topic z的概率在论文里后面inference部分已经给出了,它是$p(z|w)=p(\theta,z|w,\alpha,\beta)=\frac{p(\theta,z,w|\alpha,\beta)}{p(w|\alpha,\beta)}$,也就是隐含变量z的后验分布,它是一个概率分布,这也是整个LDA inference部分最需要估计的东东。因此图中用曲线来表示LDA,也就是说LDA places a smooth distribution on the topic simplex ...

posted on 2012-03-06 21:56  恒恒恒  阅读(581)  评论(2编辑  收藏  举报