LDA背景资料
[https://zhuanlan.zhihu.com/p/30226687] LDA模型的前世今生
在文本挖掘中,有一项重要的工作就是分析和挖掘出文本中隐含的结构信息,而不依赖任何提前标注的信息。LDA(Latent Dirichlet Allocation)模型在过去十年里开启了一个主题模型领域。
LDA 的论文作者是戴维·布雷(David Blei)、吴恩达和迈克尔·乔丹(Michael Jordan)。这三位都是今天机器学习界炙手可热的人物。论文最早发表在 2002 年的神经信息处理系统大会(Neural Information Processing Systems,简称 NIPS)上,然后长文章(Long Paper)于 2003 年在机器学习顶级期刊《机器学习研究杂志》(Journal of Machine Learning Research)上发表。迄今为止,这篇论文已经有超过 1 万 9 千次的引用数,也成了机器学习史上的重要文献之一。
[ https://zhuanlan.zhihu.com/p/21377575] 关于LDA, pLSA, SVD, Word2Vec的一些看法
LDA从12年开始,经历了SparseLDA, AliasLDA, LightLDA, WarpLDA的发展道路,到了15年底,已经能非常快的学100万topic了,而且这个快是靠直接降低理论的时间复杂度实现的,代码写的更好只是起了辅助作用。
SparseLDA利用了如果topic很多,那么当模型快收敛时,一个word其实只会属于很少的topic,然后利用稀疏性来加速了算法。但这个算法有个致命的缺陷,就是初始化时,模型并不稀疏,因此迭代的前几轮会非常慢。当然充满智慧的群众发明了一堆奇技淫巧部分解决了这个问题。
AliasLDA是优化了Gibbs Sampling采样的时间复杂度,利用Alias Table让对K个topic采样的时间复杂度从O(K)降低到O(1)
LightLDA修改了采用的分布,把原来基于一个word doc在topic上联合分布的采样过程,改成了2个交替进行的独立采样过程,一个只依赖word,另一个只依赖doc。
WarpLDA做了更多的工程级别的优化,让LightLDA更快。
[http://blog.csdn.net/xianlingmao/article/details/7076165] 话题模型(topic model)的提出及发展历史
如果对目前出现的topic models进行分门别类作者认为topic models主要可以分为四大类:
无监督的、无层次结构的topic model 主要有: PLSA, LDA, Correlated Topic Model, PAM,Concept Topic Model等
无监督的、层次结构的topic model 主要有: HLDA, HDP,HPAM等
有监督的、无层次结构的topic model 主要有: S-LDA, Disc-LDA, MM-LDA, Author-Model, Labeled LDA, PLDA 等等
有监督的、层次结构的topic model 主要有: hLLDA, HSLDA
以上模型对应的文章名字,用google直接搜索即可得到,这里就不列出。下面对于每一类topic model,我都选择一个模型来进行介绍:
对于1) 上述已经介绍了LDA,所以就不介绍这类模型了;
对于2) 我想介绍HLDA(Hierarchical Latent Dirichlet Allocation) 模型
由于LDA产生出来的topic都是孤立的,topic之间没有关系,HLDA模型在LDA的基础上,试图建立topic之间的层次关系,同时考虑到LDA需要指定topic的数量作为参数,如果能自动决定topic的数量就比较理想了。为了自动发现决定topic的数量,HLDA用Chinese Restaurant Process去自动决定每一层的topic数量,然而需要指定topic层次的高度H(也就是有多少层的topic),同时它训练出来的层次结构是等高的,都是H这么高。至于怎么产生文档的每个词,这个和LDA都是一样的。
对于3) 我想介绍Labeled LDA (Labeled Latent Dirichlet Allocation) 模型
这个模型最大的好处是能够训练出来带标签的topic,因为在以前的topic model训练出来的topic都是分布,怎么赋予一个标签给这些topic则是很难的一个问题。
Labeled LDA与LDA最大的不同是: LDA是在所有topics上为某一个词进行选择某个topic,而labeled LDA则是只从文档相关的label对应的topic中去选择,其余和LDA都是一样的。
对于4) 我想介绍hLLDA (hierarchical Labeled Latent Dirichlet Allocation)模型
这个模型最大的好处就是在Labeled Latent Dirichlet Allocation模型的基础上扩展到层次结构,其思想也是很简单的,认为一个文档只是由这个文档对应的层次label所产生,具体学习和推断的时候几乎和Labeled Latent Dirichlet Allocation模型一样。
[https://github.com/baidu/Familia/wiki] Familia 说明文档
由于LDA中采用文档内的Bag-of-Words假设,词与词之间的位置信息是被忽略的。在很多工业界场景中,我们往往需要限制某些位置相近的词产生自同一主题,通过SentenceLDA能很好地满足这个需求。
SentenceLDA假设同一个句子里的词产生自同一主题,对句子内的词进行了进一步的建模,能捕捉到更加细粒度的共现关系。
但是LDA产生的主题往往被高频词占据,这种现象导致低频词在实际应用中的作用非常有限。
Topical Word Embedding (TWE) 利用LDA训练获得的主题为词向量的训练提供补充信息,进而得到词和主题的向量表示。有鉴于向量表示可以较好地建模低频词的语义信息,通过利用词和主题的向量表示,我们可以更好地捕捉每个主题下的低频词的语义信息,提升下游应用的效果。
主题模型在工业界的应用范式可以分为两类:语义表示和语义匹配。
[http://blog.csdn.net/hero_fantao/article/details/70176839] LDA工程化之快速采样算法
标准的Gibbs 采样LDA相关介绍, 采样时间复杂度是O(K),K表示主题数(不同主题有不同命中概率,需要计算累计概率归一化项):
Sparse LDA利用稀疏性的特征,相对标准Gibbs LDA 提升了几十倍速度。现实中一般文档只会包含少数若干个主题,一个词也是参与到少数几个主题中。基于这种假设,Sparse LDA 的时间复杂度是O(Kd + Kw), 其中Kd是表示文档的主题数(稀疏),Kw表示词的主题数 (稀疏)
Alias LDA 时间复杂度是O(Kd),主要是从pw分布采样时间复杂度是O(Kd),而才qw分布采样时间复杂度是O(1)。
把主题采样概率分布分解成两部分,两部分都可以采用Alias table 和Metropolis Hastings 方法进行O(1)时间复杂度采样呢? Light LDA就是试图解决这个问题。
LDA背景资料的更多相关文章
- 深度强化学习资料(视频+PPT+PDF下载)
https://blog.csdn.net/Mbx8X9u/article/details/80780459 课程主页:http://rll.berkeley.edu/deeprlcourse/ 所有 ...
- Spark MLlib LDA 基于GraphX实现原理及源代码分析
LDA背景 LDA(隐含狄利克雷分布)是一个主题聚类模型,是当前主题聚类领域最火.最有力的模型之中的一个,它能通过多轮迭代把特征向量集合按主题分类.眼下,广泛运用在文本主题聚类中. LDA的开源实现有 ...
- LDA线性分析推广到多分类
感谢皮果提的文章: http://blog.csdn.net/itplus/article/details/12038441 http://blog.csdn.net/itplus/article 皮 ...
- 《Spark 官方文档》机器学习库(MLlib)指南
spark-2.0.2 机器学习库(MLlib)指南 MLlib是Spark的机器学习(ML)库.旨在简化机器学习的工程实践工作,并方便扩展到更大规模.MLlib由一些通用的学习算法和工具组成,包括分 ...
- iOS-推送,证书申请,本地推送
介绍一点点背景资料 众所周知,使用推送通知是一个很棒的.给应用添加实时消息通知的方式.这样做的结局是,开发者和用户之间,彼此永远保持着一种令人愉悦的亲密关系. 然而不幸的是,iOS的推送通知并非那么容 ...
- Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx
Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx 1. 摘要算法的大概流程2 2. 旧约圣经 (39卷)2 2.1. 与古兰经的对 ...
- [翻译]利用顶点位移的VR畸变校正
文章英文原网址: http://www.gamasutra.com/blogs/BrianKehrer/20160125/264161/VR_Distortion_Correction_using_V ...
- reflow和repaint(摘录自张鑫旭的翻译)
//正文开始 关于回流(reflows)与重绘(repaints),我已经在twitter和delicious上发布,但是并没有在演讲中提到或是以文章形式发布. 第一次让我开始思考关于回流(reflo ...
- WebService入门案例
关于WebService的作用和好处,大家应该都了解.但如何在Asp.Net中添加Web Service等问题一直是新手朋友的一大难题.鉴于网上没有一个像样的实际案例,特将课程设计中运用到的WebSe ...
随机推荐
- Spring Boot Tomcat配置详解
参数配置容器 server.xx开头的是所有servlet容器通用的配置,server.tomcat.xx开头的是tomcat特有的参数,其它类似. 所有参数绑定配置类:org.springframe ...
- .NET手记-HttpClient解析GB2312乱码问题
最近为App的服务器端卸了个爬虫程序,输出结果时发现出现乱码现象,尝试使用了几个方案发现效果并不太好,最后发现了一个很简单的用法. var result = await client.GetByteA ...
- iOS- XKZoomingView 简单的图片缩放预览,支持横屏、长图【手势:单击、双击、放大缩小】
XKZoomingView.h #import <UIKit/UIKit.h> @interface XKZoomingView : UIScrollView /** 本地图片 */ @p ...
- Beautiful Soup的用法
BEAUTIFUL SOUP的介绍 就是一个非常好用.漂亮.牛逼的第三方库,是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree). 它提供简 ...
- 使用切片拦截Rest服务
使用切片拦截Rest服务 1.使用过滤器Filter: 我们可以在建立的springboot的项目中建立新的类来是先Filter的接口,doFilter是过滤器中的主要方法,用来做处理逻辑,最后我们只 ...
- Eclipse创建web项目目录结构
效果图如下: 0 新建Web项目 1.右击项目MyProject进入Java Build Path 2. 点击Add Folder按钮,进入如下界面 3.选择src,点击Add New Folder按 ...
- CentOS 6.5静态IP的设置(NAT和桥接联网方式都适用)
不多说,直接上干货! 为了方便,用Xshell来.并将IP设置为静态的.因为,在CentOS里,若不对其IP进行静态设置的话,则每次开机,其IP都是动态变化的,这样会给后续工作带来麻烦.为此,我们需将 ...
- Hadoop2源码分析-RPC探索实战
1.概述 在<Hadoop2源码分析-RPC机制初识>博客中,我们对RPC机制有了初步的认识和了解,下面我们对Hadoop V2的RPC机制做进一步探索,在研究Hadoop V2的RPC机 ...
- Spring Boot + Spring Cloud 构建微服务系统(六):熔断监控集群(Turbine)
Spring Cloud Turbine 上一章我们集成了Hystrix Dashboard,使用Hystrix Dashboard可以看到单个应用内的服务信息,显然这是不够的,我们还需要一个工具能让 ...
- Springboot项目打包成jar运行2种方式
最近公司有个项目需要移植到SpringBoot框架上,项目里面又有许多第三方jar包,在linux服务器上最方便的就是用jar的方式来运行SpringBoot项目了,因此我研究了2种打jar包的方式, ...