开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践:LDA 原理 中】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1067/detail/15527
LDA 原理 中
内容介绍
一、对称 Dirichlet 分布的概率密度函数
二、稀疏 Dirichlet 先验的采样
三、LDA=pLSA + Dirichlet 先验
一、对称 Dirichlet 分布的概率密度函数
然后因为LD里用到刚才看到的是非对称的对视,这个是对称,但是后验概率已经不对称。LD里头现在都是对称的对视分布。对称的对视是什么意思?就是所有的α1,α2,αk都是相等的结果,就可以讨论是是否大于1或者小于1。
1,α>1
所有的α都大于一时,分布的情况是三角形是所有合法的Xi。实际上是一个三维空间的。这里画了两枚,因为另外一枚必须满足规划的约束。可以很容易从这两个里算出来。
Z轴代表概率密度,对应的概率最高,然后接近X2的概率几乎为零。α>1时,是这样一个尖顶帽子的形状,也就是说在中间位置的概率最大,然后旁边儿就衰减的很快。和高斯分布有点儿像。
2,α=1
跟刚才看过骰子的例子,是平均分布的。每个参数的可能性都是相等的。
3,α<1
三个角概率很大,然后b两边的概率也比较大一些,然后中间的概率几乎为零。然后以靠近X2的尖角为例,X2的尖角几乎等于一。X1和X3基本上等于零了。很接近零,因为三个相加必须等于一。所以这就是想要的稀疏的效果就是。会给一些稀疏的向量比如0.9
二、稀疏 Dirichlet 先验的采样
将0.9剩下几乎为零。然后这个0.6,还有一个0.17,这个几个比较大,剩下大部分都为零。从系数的定义域抽样出来基本上都是很离散的参数向量。
抽样实际上相当于在函数里头随机找一点,越高拿到这一点的概率越大,意思就是有很大的概率是找到这个角上。中间找中间的概率就很小。然后拿到这个角就是一个系数向量,相对应的一个系数的离散分布
作为先验比较鼓励,会给那个系数的离散分布一个比较大的概率。如果这个离散丰富不太清楚,先验概率会比较小,知道了后验概率∝先验概率*似然函数,后验概率可能会比较小
阿尔法是向量,因为考虑的是对称对视,是所有的α=1,, α1,α2,αk都是相等的k都是相等的,都等于α,所以可以考虑是否大于一或者小于一,所有维的抄参的α都是0.2。是个鼓励系数分布的一个对视先验。
三、LDA=pLSA + Dirichlet 先验
LDA在{θd},T上加了不同的Dirichlet先验,为了鼓励系数,αβ应该选择比较小。
比如0.1或者0.01,一个选择的基本原则就是topic的主题数目增多,α就选小一些。如果词多的话,β就选小一些,。近似认为topic数目K乘以α。但实际上可能不是这样的。等近似有这样一种关系,可以乘α,是每个文档里头比较显著的topic数目。比如直觉上觉得一个文档里头大概有七八个topic已经够多了。那剩下topic的基本上都是接近零,那就选k*α约小于10,K抽出的大,α就小,不然抽取的topic都比较大,不太合理。词的道理是一样的,和pLSA类似可以把文档及其参数的联合概率写出来
首先给参数的先验概率,p(θd|α)是{θd}的先验概率,在参数是α的对视里抽出来的。然后每个{tk}都是从参数是β的对视里抽出来的,然后要把K个连乘,p(wi,zi|θd,T)和PRC是一样的。就是每个词的概率。然后做推导的时候一样的要用Jensen不等式,因为这个更复杂。刚才的差别在于说,刚才是QZ。分布是关于z的,现在是q(z,θ),因为θ也需要后验分布。所以说q(z,θ)联合的后验分布用q(z,θ)逼近先求log再求和,因为θ是连续的参数,这实际上应该是个积分,为了简化这个符号也写成这个这个求和的形式。