LDA漫游指南(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-17 22:50:30

点击下载

作者:马晨

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

LDA漫游指南

LDA漫游指南试读:

前言

LDA算法是主题模型领域非常著名的算法,也有很深刻的数学背景和技术启发价值,值得深入研究应用。曾经有哲人说:万物皆数。我是一个十分喜欢数学、喜欢算法、热爱技术的人,非常想从算法中寻找人工智能的永恒之道。

我现在仍记得19世纪的数学家赫尔曼 · 汉克尔说过的:“就大多数学科而言,一代人摧毁的正是另一代人所建造的,而他们所建立的也必将被另一代人所破坏。只有数学不同,每一代人都是在旧的建筑物上加进新的一层。”

所以说,数学的价值还具有一种永世不灭的恒久性,其他学科的时尚潮流往往随着时代的变迁被人遗忘,那些旨在改变世界的理想,最终往往变成了思想垃圾。而只有数学和算法与此不同。

我们探究前人伟大的成果时,就能体会到奥利弗 · 亥维赛的精辟论说:“逻辑能够很有耐性,因为它是永恒的。”

当我选择分析Latent Dirichlet Allocation(LDA)这个算法课题时,我考虑了很多因素。首先,该算法是已经被学术界和工业界广泛接受的;其次,该算法能带来更多的新技术启示;最后,该算法能为我们的工作,我们的研究带来实用性的技术启发。

LDA算法恰好满足了这个条件。

虽然网上已经有许多分析LDA算法的博客文章,但是网上的博文相对零散不成体系,读者阅读起来有较大困难。只要读者有恒心和毅力,就一定可以从本书中受益。

为什么需要这本书?独特的价值

1. 理论与实践并重:网络上同类文章非常零散,理论推导部分也缺乏关键细节。本书中每一条公式都由作者手把手为您推理(每一条公式都有详细的解释和备注),并且按照初学者的思路娓娓道来,从逻辑链条上打通算法的整个环节,让用户有清晰的认识。在实践部分,作者以多年的工作实践经验为基础,精选了6个实现简单但又有较强的应用价值的LDA应用方法。这些精选的应用方法将成为读者未来工作实践中不可多得的资料。

2. 见解独到:本书最大的特色是从理论分析开始就含有作者独到的理解和分析,从不同角度完美地解释算法的整个流程。

3. 章节内容安排精巧,可根据需求选择:有的工程师对于算法推导不是很感兴趣,这种情况下可以跳过前3章,直接从第4章开始阅读LDA算法的具体实现。如果将来有兴趣研究LDA的来龙去脉时,可以再来看前3章的理论推导部分。如果读者对大数据环境下的LDA感兴趣,包括如何在Hadoop、Spark上实现LDA算法可以直接阅读第5章。

4. 首次将LDA引入大数据时代:大数据时代最大的特色就是信息爆炸,各种文本数据,用户生成(UGC)数据也变得非常庞大,网络上查阅到的LDA算法资料大部分不能应对大数据环境。第5章深入浅出地讲解了大数据环境下如何实现并行化的LDA算法。

5. 关于LDA的变分推断技术讲解细致。章节安排

第1章为相关背景的介绍,介绍了算法知识的来源,即从18世纪的欧拉讲到剑桥大学的David Blei。

第2章和第3章为算法的理论分析阶段。

第2章为LDA算法的前置知识,为学习LDA打下了坚实的理论知识。第2章力求做到关键证明不遗漏,这样就可以与第3章的LDA的算法推导构成一个完整的推理链条!第2章中的有些证明需要读者具备一些简单的微积分知识,如果读者忘了基础的微积分知识,那么看不懂某条证明,可以暂且相信我的推理是对的,跳过去往后看,日后再复习。

第3章为LDA算法推导部分,用严谨的数学推导和清晰的讲解(每个公式都做了清晰的标注)让读者认识该推理方法。

第4章为实现和应用部分,用伪代码方式庖丁解牛,讲解代码实现的精髓,然后结合我多年的工作实践,写了该算法的几个最具实用价值的应用。这些应用方法中有相当一部分是本人工作经验的总结,在任何其他书籍上找不到。

第5章为并行化,在大数据如火如荼的今天,要想大规模运行LDA算法,就要靠并行化技术了,这一章从两个算法的改进形式讲解了该技术的并行化,并且可以放在目前最流行的spark大数据引擎上运行。

第6~8章为LDA的变分EM技术的详细推导和C语言代码实现的一个详尽剖析,这个方法的来龙去脉都在这3章有所体现。

本书是一个指南、指引性质的作品,尚不完善、完美,有些地方可能仍有疏漏,且本人水平有限,如果读者发现纰漏,请及时联系人民邮电出版社修正。希望这部作品日臻完美。马晨 2016.4.19

飞机和飞鸟形态、结构和原理都不相同,但都能飞翔,人工智能未来也许如此。第1章 背景

LDA算法使用的全部知识的渊源可以追溯到18世纪的欧拉。欧拉(Leonhard Euler ,1707年4月15日—1783年9月18日),瑞士数学家,如图1-1所示。欧拉一生贡献颇丰,1734年,欧拉因解决巴塞尔问题而出名,巴塞尔问题见式(1.1)的值是多少。图1-1 Euler(1.1)

这个问题困扰了数学家长达几个世纪的,当时的数学家只知道该级数的值小于2,但不知道精确值,欧拉准确的推导出该式的值等于π^2/6。欧拉的方法聪明而新颖,他创造性地将有限多项式的观察推广到无穷级数,并假设相同的性质对于无穷级数也是成立的:(1.2)

欧拉最后的发现是令人惊奇的,π这个数字在与圆周率无关的场合中出现了,这足以说明数学与自然存在着某些神秘的联系。虽然以现代数学的眼光来看,欧拉的证明还不严密。但作为第一个(富有创造性的)证明,欧拉的这个证明永远有着其宝贵的价值。欧拉的另一个贡献就是发现了gamma函数。该函数后被广泛应用于概率论,这个函数也是本文的主角之一。

作为算法标题之一的Dirichlet, wiki一下,一个19世纪的人映入了我们的眼帘。Dirichlet(1805—1859),德国数学家,生于现德国 Duren(当时属法国),卒于哥廷根,如图1-2所示。他是解析数论的奠基者,也是现代函数观念的定义者。在本文中该数学家的主要贡献是Dirichlet分布。图1-2 Peter Gustav Lejeune Dirichlet

但是这还不是故事的全部,说到底19世纪的时候还没有发明计算机,LDA应该不是这哥们发明的,于是继续查找,最后查明英国剑桥大学的David M.Blei(见图1-3)是最初LDA论文的作者。Blei同学借用了Dirichlet Distribution,而创造了Latent Dirichlet Allocation。

Blei以PLSA(LDA之前的另一个概率模型)为基础,加上了贝叶斯先验,从而发明了LDA算法。LDA算法最初的论文使用的是变分EM方法训练(Variational Inference)。该方法较为复杂,而且最后训练出的主题非全局最优分布,而是局部最优分布。后期发明了Collapsed Gibbs Sampling方法,推导和使用都较为简洁。Blei及其LDA算法具体介绍如下:图1-3 David Blei

Latent Dirichlet Allocation是Blei等人于2003年提出的基于概率模型的主题模型算法。LDA是一种无监督机器学习技术,可以用来识别大规模文档集或语料库中的潜在隐藏的主题信息。该方法假设每个词是由背后的一个潜在隐藏的主题中抽取出来。

对于语料库中的每篇文档,LDA定义了如下生成过程(generative process):(1)对每一篇文档,从主题分布中抽取一个主题。(2)从上述被抽到的主题所对应的单词分布中抽取一个单词。(3)重复上述过程直至遍历文档中的每一个单词。

LDA认为每篇文章是由多个主题混合而成的,而每个主题可以由多个词的概率表征。所以整个程序的输入和输出如表 1-1所示。表 1-1  LDA算法的输入与输出算法输入:分词后的文章集(通常为一篇文章一行)     主题数K,超参数α和β算法输出:1.每篇文章的各个词被指定(assign)的主题编号:tassign-model.txt     2.每篇文章的主题概率分布θ:theta-model.txt           3.每个主题下的词概率分布φ:phi-model.txt           4.程序中词语word的id映射表:wordmap.txt           5.每个主题下φ概率排序从高到低top n特征词:twords.txt

如果你想使用LDA算法,建议从Gibbs LDA++代码(http://gibbslda.sourceforge.net/)开始使用。在使用过程中,你就会发现该算法的使用方式还算简单,并且生成的结果文件也很规则,根据手册一看便懂。输入分词后的文件,一个文章一行,输出其中看到每个主题规则文件.twords如下格式所示。Topic 0th:Topic 1th:  食品    0.022937  农业   0.022957  不合格  0.006634  农村   0.022404  加多宝  0.006634  农民   0.014940  检测   0.006433  土地   0.013734  包装   0.004403  粮食   0.007909  儿童   0.004038 农产品   0.006644  抽检   0.004016  耕地   0.005823  王老吉  0.003759  集体   0.005067  批次   0.003483  农户   0.004852  检验   0.003379  种植   0.004674  红罐   0.003342  流转   0.004177  样品   0.003312  农业部  0.003693第2章 前置知识

本章所描述的工具和线索在后期LDA算法的采样公式推导中会全部明了。关于为什么需要使用这些知识要素,这里面有很长的一段历史渊源,比如在概率论和数理统计中,gamma函数被广泛使用,而在最终的LDA采样公式中,你会发现,gamma函数被神奇地消失了。我们在后面的章节中可以看到,LDA算法的精妙之处在于用令人屏息的洞察力作为纽带,将零散的部件全部组合在一起。2.1 gamma函数

所谓的gamma函数其实就是阶乘的函数形式,即n!=1⋅2⋅3…n。如果我问你3的阶乘是多少,你立即回答1⋅2⋅3=6,但是如果我问你0.5阶乘是什么,如果没有gamma函数就无法回答了。欧拉经过不懈努力,终于发现阶乘的更一般的函数形式gamma函数,直接给出:((2.1))

可以直接算出。

也可以算出

由于,所以。

设,则。

当时,;

当时,;

则换元后,得。

令,则。

利用二重积分换元法做极坐标变换,令,, 则当和的定义域D都为~,即积分区域为整个坐标轴,半径的范围为0~,而的范围为绕坐标轴一圈从0~2π使用雅可比行列式:

故。

则又因为的被积函数大于0,则>0,最后得((2.2))

接下来验证。,做分部积分法(),

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载