LDA学习总结(三)
隐含狄利克雷分布
简称LDA(Latent Dirichlet allocation),首先由Blei, David M.、吴恩达和Jordan, Michael I于2003年提出,目前在文本挖掘领域包括文本主题识别、文本分类以及文本相似度计算方面都有应用。
LDA就是在pLSA的基础上加层贝叶斯框架,即LDA就是pLSA的贝叶斯版本。
pLSA与LDA对比(文档生成方式)
pLSA与LDA对比(文档生成方式)
Note:
- 阴影圆圈表示可观测的变量,非阴影圆圈表示隐变量;箭头表示两变量间的条件依赖性;方框表示重复抽样,方框右下角的数字代表重复抽样的次数。
- 对应到图, 和 是超参数;方框 表示有k种“主题-词项”分布; 有M种“文档-主题分布”,即每篇文档都会产生一个 分布;每篇文档m中有n个词,每个词 一个主题 ,该词实际上由 产生
- β⃗ 到φ(生成topic-word分布的分布) and α⃗到θ(生成doc-topic分布的分布) 是狄利克雷分布,θ生成z(赋给词w的主题) and φ生成w(当前词) 是多项式分布。θ指向z是从doc-topic分布中采样一个主题赋给w(但是此时还不知道词w具体是什么,而是只知道其主题),φ指向w是φ的topic-word分布依赖于w。
pLSA与LDA对比(概率图)
对应到上面右图的LDA,只有W / w是观察到的变量,其他都是隐变量或者参数,其中,Φ表示词分布,Θ表示主题分布,α是主题分布Θ的先验分布(即Dirichlet 分布)的参数,β是词分布Φ的先验分布的参数,N表示文档的单词总数,M表示文档的总数。
假定语料库中共有M篇文章,每篇文章下的Topic的主题分布是一个从参数为的Dirichlet先验分布中采样得到的Multinomial分布,每个Topic下的词分布是一个从参数为的Dirichlet先验分布中采样得到的Multinomial分布。
对于某篇文章中的第n个词,首先从该文章中出现的每个主题的Multinomial分布(主题分布)中选择或采样一个主题,然后再在这个主题对应的词的Multinomial分布(词分布)中选择或采样一个词。不断重复这个随机生成过程,直到M篇文章全部生成完成。
M 篇文档会对应于 M 个独立的 Dirichlet-Multinomial 共轭结构(每篇文档都有其独特不同的doc-topic分布),K 个 topic 会对应于 K 个独立的 Dirichlet-Multinomial 共轭结构。
其中,α→θ→z 表示生成文档中的所有词对应的主题,显然 α→θ 对应的是Dirichlet 分布,θ→z 对应的是 Multinomial 分布,所以整体是一个 Dirichlet-Multinomial 共轭结构,如下图所示:
类似的,β→φ→w,容易看出, 此时β→φ对应的是 Dirichlet 分布, φ→w 对应的是 Multinomial 分布, 所以整体也是一个Dirichlet-Multinomial 共轭结构,如下图所示:
pLSA与LDA对比(生成模型)
第一个图已经讲解过了,第二个图,在每次生成一个文档前,我先生成文档主题的先验分布,得出每篇文档不同的主题分布,生成词汇的分布同理。
本质区别详解,PLSA中,主题分布和词分布是唯一确定的,能明确的指出主题分布可能就是{教育:0.5,经济:0.3,交通:0.2},词分布可能就是{大学:0.5,老师:0.3,课程:0.2}。
LDA中,主题分布和词分布不再唯一确定不变,即无法确切给出。例如主题分布可能是{教育:0.5,经济:0.3,交通:0.2},也可能是{教育:0.6,经济:0.2,交通:0.2},到底是哪个我们不再确定,因为它是随机的可变化的。但再怎么变化,也依然服从一定的分布,即主题分布跟词分布由Dirichlet先验随机确定。面对多个主题或词,各个主题或词被抽中的概率不一样,所以抽取主题或词是随机抽取。主题分布和词分布本身也都是不确定的,正因为LDA是PLSA的贝叶斯版本,所以主题分布跟词分布本身由先验知识随机给定。
pLSA与LDA对比(参数估计)
转载于:https://www.cnblogs.com/Vancuicide/p/9445882.html
LDA学习总结(三)相关推荐
- 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例
强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例 1. 引言 在这个部分补充之前马尔科夫决策和动态规划部分的代码.在以后的内容我会把相关代码都附到相关内容的后面.本部 ...
- Java IO流学习总结三:缓冲流-BufferedInputStream、BufferedOutputStream
Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/ ...
- 学习java三个技巧要知道!
java一直是IT行业发展前景非常不错的一门编程语言,学起来是相对有点困难的,尤其是零基础学员,要想学好java技术,一定要知道这三个技巧,来看看下面的详细介绍就知道了. 学习java三个技巧要知道! ...
- J2EE学习笔记三:EJB基础概念和知识 收藏
J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...
- 统计学习的三个招式:模型、策略和算法
统计学习的三个招式:模型.策略和算法 https://mp.weixin.qq.com/s/12yhAZ79i_ENAdtyOX63lQ 李航老师在统计学习方法中讲到:方法=模型+策略+算法 可以说模 ...
- 数据库MYSQL学习系列三
数据库MYSQL学习系列三 三.MYSQL事务与存储引擎 3.1-数据库事务 什么是事务 一系列有序的数据库操作: o要么全部成功 o要么全部回退到操作前的状态 o中间状态对其他连接不可见 事务的 ...
- 【转载】Wireshark基本介绍和学习TCP三次握手
Wireshark基本介绍和学习TCP三次握手 转载自:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇博客 ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
- ROS与Arduino学习(三)订阅与发布
ROS与Arduino学习(三)订阅与发布 Tutorial Level:HelloWorld Next Tutorial:用ROS的Cmake编译程序 本节介绍如何在arduino中发布与订阅消息. ...
- 【机器学习】SVM学习(三):线性分类器的求解
[机器学习]SVM学习(三):线性分类器的求解 2016-10-10 19:56 239人阅读 评论(0) 收藏 举报 本文章已收录于: 机器学习知识库 分类: 机器学习(37) 目录(?)[+ ...
最新文章
- cad版本在线转换_CAD版本转换中将图纸转换为AutoCAD2018版本的方法
- kenrel volatile关键字
- WEB开发者八项注意
- 计算机未识别网络什么意思,win7 64位系统提示当前连接到未识别的网络怎么办...
- 【项目实战】:基于python的p2p运营商数据信息的特征挖掘
- 数据结构与算法—单源最短路径dijkstra算法
- 洛谷P3902 递增
- 汇编8086CPU常用指令——详解
- 一文带你了解两种Transformer文字识别方法
- ArcGIS pro 发布地图服务(一)动态地图服务
- 荐号 | “看一看”中“偷”来的很棒的公众号
- MDaemon日志报错:550 aa@*.com must check for new mail first
- 认识三大方便的开源 Linux 防火墙生成器
- [K/3Cloud]有关单据显示行数限制和数据导出的建议
- 日记:2019新年计划,每日计划的思维导图
- 即使是昏暗的街道,也有每日照耀的月
- Appium常用操作之《元素定位、swipe滑屏操作》
- Linux 磁盘管理(RAID)--第五章
- Windows错误码
- 【雷达通信】雷达探测项目仿真(Matlab代码实现)