打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【JMLR’03】Latent Dirichlet Allocation (LDA)
userphoto

2014.04.01

关注

【注:本文为原创】

若公式显示有问题请复制链接到新TAB重新打开

听说国外大牛都认为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(w)=n=1Np(wn)

       图模型:

        2. Mixture of unigrams (LDA 4.2)

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

p(w)=zp(z)n=1Np(wn|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. 选择 NPossion(ξ)

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

      2. 选择一个多项分布参数 θDir(α)

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

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

              (a) 首先选个一个topic zMultinomial(θ)

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

              (a) 然后选择一个word from p(wn|zn,β)

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

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

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

p(θ,z,w|α,β)=p(θ|α)n=1Np(zn|θ)p(wn|zn,β)

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

 

在上面这个新图中,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×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(θ,z|w,α,β)=p(θ,z,w|α,β)p(w|α,β),也就是隐含变量z的后验分布,它是一个概率分布,这也是整个LDA inference部分最需要估计的东东。因此图中用曲线来表示LDA,也就是说LDA places a smooth distribution on the topic simplex …

     2012@4@18 今天看到《Parameter estimation for text analysis》(PETA)里的内容,可以更深入地解释“LDA places a smooth distribution on the topic simplex denoted by the contour lines”这句话。首先给出PETA里面的原话:LDA with a uniform prior Dir(1) is a full Bayesian estimator for the same model for which PLSA provides an ML or MAP estimator。这句话说明了pLSA是用的是最大似然推断或最大后验推断,在最大后验推断中,p(z|w)是一个给定的置信值(这一点PETA中也有说明:最大后验推断中的置信值不等同于概率),这个置信值是一个常量。LDA用的是贝叶斯推断,所以LDA中的p(z|w)是一个概率分布。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
LDA及Gibbs Sampling
Python之LDA主题模型算法应用
Spark2.0机器学习系列之9: 聚类算法(LDA)
主题模型
FanJianning: LDA主题模型简介 | 统计之都 (中国统计学门户网站,免费统计学服务平台)
使用深度学习阅读和分类扫描文档
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服