[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背景资料的更多相关文章

  1. 深度强化学习资料(视频+PPT+PDF下载)

    https://blog.csdn.net/Mbx8X9u/article/details/80780459 课程主页:http://rll.berkeley.edu/deeprlcourse/ 所有 ...

  2. Spark MLlib LDA 基于GraphX实现原理及源代码分析

    LDA背景 LDA(隐含狄利克雷分布)是一个主题聚类模型,是当前主题聚类领域最火.最有力的模型之中的一个,它能通过多轮迭代把特征向量集合按主题分类.眼下,广泛运用在文本主题聚类中. LDA的开源实现有 ...

  3. LDA线性分析推广到多分类

    感谢皮果提的文章: http://blog.csdn.net/itplus/article/details/12038441 http://blog.csdn.net/itplus/article 皮 ...

  4. 《Spark 官方文档》机器学习库(MLlib)指南

    spark-2.0.2 机器学习库(MLlib)指南 MLlib是Spark的机器学习(ML)库.旨在简化机器学习的工程实践工作,并方便扩展到更大规模.MLlib由一些通用的学习算法和工具组成,包括分 ...

  5. iOS-推送,证书申请,本地推送

    介绍一点点背景资料 众所周知,使用推送通知是一个很棒的.给应用添加实时消息通知的方式.这样做的结局是,开发者和用户之间,彼此永远保持着一种令人愉悦的亲密关系. 然而不幸的是,iOS的推送通知并非那么容 ...

  6. Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx

    Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx 1. 摘要算法的大概流程2 2. 旧约圣经 (39卷)2 2.1. 与古兰经的对 ...

  7. [翻译]利用顶点位移的VR畸变校正

    文章英文原网址: http://www.gamasutra.com/blogs/BrianKehrer/20160125/264161/VR_Distortion_Correction_using_V ...

  8. reflow和repaint(摘录自张鑫旭的翻译)

    //正文开始 关于回流(reflows)与重绘(repaints),我已经在twitter和delicious上发布,但是并没有在演讲中提到或是以文章形式发布. 第一次让我开始思考关于回流(reflo ...

  9. WebService入门案例

    关于WebService的作用和好处,大家应该都了解.但如何在Asp.Net中添加Web Service等问题一直是新手朋友的一大难题.鉴于网上没有一个像样的实际案例,特将课程设计中运用到的WebSe ...

随机推荐

  1. NHibernate删除数据时遇到deleted object would be re-saved by cascade级联问题

    今天在处理数据时遇到了这个问题,数据是一对多的关系,A包含多个B,想将某个B从A中移除,在保存时抛出如标题的问题,查找了下资料得知:由于在配置文件中设置了cascade为all,A和B存在级联关系,那 ...

  2. 用DDD模拟案例分析

    之前我写了几篇关于DDD的介绍和一些小例子说明,我想这对于介绍DDD还是有些模糊,甚至还不知道怎么用DDD来分析设计.昨天和园友讨论也发现没有例子很难说明,所以今天我模拟了一个案例,同时这个案例也是真 ...

  3. Maven项目报错:Missing artifact****和ArtifactDescriptorException: Failed to read artifact descriptor for***和Cannot change version of project facet Dynamic web module to 2.5

    一.关于Cannot change version of project facet Dynamic web module to 2.5 具体查看博客:http://blog.csdn.net/ste ...

  4. linux 双网卡桥接,实现网卡流量镜像与转发

    确认本地是否存在brctl,如果不存在请先安装: 1.确定你的镜像端口,比如eth1: 2.将实际数据通过的端口,比如eth0和镜像端口绑成一个bridge: brctl addbr br0 brct ...

  5. Linux路由表信息-route命令

    使用命令 :route route 命令    显示和设置Linux路由表 -A:设置地址类型: -C:打印将Linux核心的路由缓存: -v:详细信息模式: -n:不执行DNS反向查找,直接显示数字 ...

  6. C#.net使用DotNetCharting控件生成报表统计图

    在做项目时要对数据进行统计分析,所以必须生成一些报表统计图(如柱形图.饼图.曲线图等),网上强烈推荐了使用DotNetCharting控件来实现,于是自己对DotNetCharting控件进行了简单的 ...

  7. C#操作IIS站点 Microsoft.Web.Administration.dll

    利用IIS7自带类库管理IIS现在变的更强大更方便,而完全可以不需要用DirecotryEntry这个类了(网上很多.net管理iis6.0的文章都用到了DirecotryEntry这个类 ),Mic ...

  8. sql特殊语法

    MYSQL --判断非空select ifnull(null,'666');--666select ifnull(null,null);--null--合并字段select CONCAT('666', ...

  9. 转STM32官方固件库简介

    ST(意法半导体)为了方便用户开发程序,提供了一套丰富的 STM32 固件库.固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道,向上提供用户函数调用的接口(API) .固件库将这些寄 ...

  10. 5.数码相框-额外项目电子书总结,并使用svgalib库

    在LCD显示任意编码的文本文件,类似电子书 怎样在LCD上显示文件: 需要哪几个文件? 1.顶部文件 通过main.c分析命令行的操作,然后初始化各个管理文件下的结构体,比如DisplayInit() ...