LDA学习笔记5-LDA模型
来源:互联网 发布:中银淘宝校园卡办理 编辑:程序博客网 时间:2024/05/16 17:39
LDA(latent dirichlet allocation)一种无指导的topic model,用于识别文档中包含的主题信息。
按照图模型表示如下图:
其中包含三个要素,每个要素及其对应的变量,对应于上图中的一个plate。
对于语料库中的每篇文档,LDA定义了如下生成过程(generative process):
1. 对每一篇文档m,从主题分布中抽取一个主题参数/theta_m;
2. 对文档m的每个单词位置m,n,根据/theta_m为参数的多项式分布,抽取出对应该词的主题zm,n
3. 根据zm,n对应的主题参数/phi_zm,n的多项式分布,抽取出对应的单词zm,n,其中zm,n为观察值
3. 根据zm,n对应的主题参数/phi_zm,n的多项式分布,抽取出对应的单词zm,n,其中zm,n为观察值
4.重复上述过程直至获取到所有的单词
设有K个主题,V个单词,M个文档,每个文档的长度是Nm。
则/theta是一个K*M的矩阵,每个文档对应的/theta_m是一个K维向量,用于生成包含K个主题的混合模型
/phi是一个V*K的矩阵,每个主题对应的/phi_k是一个V维向量,用于生成包含V个单词的混合模型
这里的混合模型是通过对每个单词抽取一次主题完成的,因为这样总体看来就好像一个文章里拥有了多个主题
(和bayes不同,bayes对每个文章生成唯一的主题)
设有K个主题,V个单词,M个文档,每个文档的长度是Nm。
则/theta是一个K*M的矩阵,每个文档对应的/theta_m是一个K维向量,用于生成包含K个主题的混合模型
/phi是一个V*K的矩阵,每个主题对应的/phi_k是一个V维向量,用于生成包含V个单词的混合模型
这里的混合模型是通过对每个单词抽取一次主题完成的,因为这样总体看来就好像一个文章里拥有了多个主题
(和bayes不同,bayes对每个文章生成唯一的主题)
下式为对应的只有1个文档的生成式,
前两项符合多项式分布,后两项符合dir分布。
建立LDA模型的目的,就是求解
1.每个文档(一个w向量)对应的topic分布(即对应的/theta值),
2.以及每个topic对应的word的分布,即对应的/phi值。
我们通过对每个word进行gibbis抽样获得对应的类别zm,n,然后再根据z值计算P(参数|Z,W)
详细做法是
1.Gibbs抽样计算每个z值,即轮流对每个单词计算z抽样,公式为
其中
这个式子在需要注意的:
- (74)式中利用了wi和w-i对于z-i条件独立这个事实,这可以从图模型中看出来。后续忽略了
p(wi) 这个常数,所以后来的式子是∝ 成正比。 - 若第
m 篇文章中的第n 个词为t,其主题为k 。当对这个词进行sampling时, 第k个主题的term数量nk(t)和第m个文档的topic数量nm(k)满足n(t)k=n(t)k,¬i+1,n(k)m=n(k)m,¬i+1 对于其他文档和其他主题都没有影响。 - (74)式中p(w,z)的计算方法如下,带入后约掉分子分母后获得(75)式:
按p(zi| z-i,w )依次抽样获得整个马尔科夫链。然后按照下式计算获取/theta和/phi的值
按Dir分布的求其期望,有
最后,整个LDA算法如下:
参考文献:
1.Gregor Heinrich《Parameter estimation for text analysis》
2.Philip Resnik《Gibbs sampling for the uninitiated》
3. 《PRML》
- LDA学习笔记5-LDA模型
- LDA模型学习笔记
- LDA主题模型学习笔记
- LDA主题模型学习笔记5:C源码理解
- 笔记-话题模型&LDA
- 王小草【机器学习】笔记--主题模型LDA
- 【LDA】LDA主题模型
- LDA学习笔记
- LDA论文学习笔记
- LDA主题模型学习笔记1:模型建立
- LDA模型学习(代码)
- LDA 隐含主题模型学习
- LDA模型学习(代码)
- LDA模型
- LDA 模型
- LDA模型
- 《机器学习》学习笔记九 主题模型之LDA
- LDA主题模型学习笔记3.5:变分参数推导
- unity3教程基础篇—(4)动画(1)
- hdu 4283 You Are the One
- 开发日志:项目没错,但不管怎么修改页面/Java内容,在Tomcat上部署的项目都没有更新的问题
- 给苹果发邮件
- NDK编程入门笔记
- LDA学习笔记5-LDA模型
- Linux常用命令详解之权限管理命令
- hdu4287 Intelligent IME
- do...while(0)的妙用
- 遮盖与投影
- wxWidgets UI笔记
- Android开源
- 当java swing界面启动无法正常显示,当调整JFrame大小后才能全部显示子组件
- 在ios中运用core animation暂停和继续动画