-->

AI内参_102_097_LDA模型的前世今生

你好,我是洪亮杰。

今天我来和你聊一聊LDA模型的前世今生。

在文本挖掘中有一项重要的工作,就是分析和挖掘出文本中隐含的结构信据,从不依赖任何提前标注的信息。

今天我就介绍一个叫做LDA的模型,它在过去十年里开启了一个领域叫主题模型。

从LDA提出后,不少学者都利用它来分析各式各样的文档数据。

从新闻数据到医药文档,从考古文献到政府公文,一段时间内呀,LDA成了分析文本信息的标准工具。

从最原始的LDA发展出来的各类模型变种则被应用到了各种数据类型上,包括图像、音频、混合信息推荐系统、文档检索等等。

各类主题模型变种也是层出不穷。

下面呢我就来简单剖析一下LDA这个模型,聊聊它的模型描述以及训练方法等基础知识。

Lda的论文作者是戴维布雷、吴恩达和迈克尔乔丹,这三位都是今天机器学习界炙手可热的人物。

论文最早发表在二零零二年的神经信息处理系统大会上。

然后长文章是于二零零三年在机器学习顶级期刊机器学习研究杂志上发表的。

迄今为止,这篇论文已经有超过一万九千次的引用数,也成了哥伦学习史上的重要文献之一。

论文发表的时候,戴维布雷还在加州大学伯克利分校,迈克尔手下攻读博士。

吴恩达当时刚刚从迈克尔手下博士毕业,来到了斯坦福大学任教代维。

二零零四年,从伯克利毕业之后,先到了卡内基梅隆大学,跟随统计学权威教授约翰拉弗蒂做了两年的博士后学者,然后又到东部普林斯顿大学任教职,先后担任了助理教授和副教授。

二零一四年转到纽约哥伦比亚大学任统计系和计算机系的正教授。

戴维在二零一零年获得了斯隆奖,紧接着又在二零一一年获得了总统青年科学家和工程师早期成就奖。

目前他所有论文的引用数超过了四万九千次。

吴恩达在斯坦福晋升到副教授之后,二零一一年到二零一二年,在谷歌工作,开启了谷歌大脑的项目来训练大规模的深度学习模型是深度学习的重要人物和推动者之一。

二零一二年,他合作创建了在线学习平台,coursera可以说是打开了慕课运动的大门。

之后,吴恩达从二零一四年到二零一七年担任百度首席科学家,并创建和运行了百度在北美的研究机构。

目前他所有论文的引用数超过八万三千次。

文章的第三作者,迈克尔乔丹是机器学习界的泰斗人物。

他自一九九八年在加州大学伯克利任教,至今是美国三个科学院院士,是诸多学术和专业组织的院士。

迈克尔可以说是桃李满天下,而且其徒子徒孙也已经遍布整个。

机器学习领域,不少都是学术权威,他的所有论文有多达十二万次以上的应用量。

值得注意的是啊,对于三位作者来说,LDA论文都是他们单篇论文引用次数最多的文章。

要描述LDA模型,就要说一下LDA模型所属的产生式模型的背景产生式模型是相对于判别式模型。

而说的这里我们假设需要建模的数据有特征信息,也就是通常说的x以及标签信息,也就是通常所说的y判别式模型常常直接对y的产生过程进行描述,而对特征信息本身不予建模。

这使得判别式模型天生就成为构建分类器或者回归分析的有利工具,而产生式模型则要同时对x和y建模。

这使得产生式模型更适合做无标签的数据分析。

比如聚类。

当然,因为产生式模型要对比较多的信息进行建模。

所以一般认为对于同一个数据而言,产生式模型要比判别式模型更难以学习。

一般来说,产生式模型,希望通过一个产生过程来帮助读者理解一个模型。

注意,这个产生过程本质是描述一个联合概率分布的分解过程。

也就是说,这个过程是一个虚拟过程,真实的数据往往并不是这样产生的。

这样的产生过程是模型的一个假设,一种描述,任何一个产生过程都可以在数学上完全等价。

一个联合概率分布LDA的产生过程,描述了文档以及文档中文字的生成过程。

在原始的LDA论文中,作者们描述了对于每一个文档而言,有这么一种生成过程。

这里我为你用文字描述一下这个过程。

点击文稿可以看到一张图,帮助你更好的理解。

一、首先从一个全局的泊松参数为贝塔的分布中生成一个文档的长度。

N二从一个全局的迪利克雷参数为阿尔法的分布中生成一个当前文档的西塔三。

然后对于当前的文档长度n的每一个字执行以下两步,一是从以西塔为参数的多项分布中生成一个主题的下标。

二是从以five和z共同为参数的多项分布中产生一个字。

从这个描述我们可以马上得到这些重要的模型信息。

第一,我们有一个维度是k乘以v的主题矩阵,其中每一行都是一个five,也就是某一个生成字的多项分布。

当然,这个主题矩阵,我们在事先并不知道,是需要学习得到的。

另外,对每一个文档而言,西塔是一个长度为k的向量,用于描述当前文档。

在k个主题上的分布产生过程,告诉我们我们对于文档中的每一个字都先从这个西塔向量中产生一个下标,用于告诉我们现在要从主题矩阵中的哪行去生成当前的字。

这个产生模型是原论文最初提出的,有两点值得注意。

第一,原始论文为了完整性,提出了一个使用泊松分布来描述文档的长度这一变化信息。

然而,从模型的参数和隐变量的角度来说,这个假设并不影响整个模型。

最终,作者在文章中去,除了这个信息的讨论,在主题模型的研究中也较少有文献专注这个信息。

第二,原始论文并没有在主题矩阵上放置全局的狄利克雷分布作为先验概率分布,这也缺失在后续所有的主题模型文献中得到修正。

于是,今天标准的LDA模型有两类迪利克雷的先验信息,一类是文档,主题分布的先验参数是阿尔法,一类是主题矩阵的先验参数是贝塔文章。

作者们把这个模型和当时的一系列其他模型进行了对比。

比如说LDA并不是所谓的迪利克雷多项聚类模型。

这里LDA对于每一个文档的每一个字都有一个主题下标。

也就是说,从文档聚类的角度来看,LDA是没有一个文档统一的聚类标签,而是每个字有一个聚类标签,而这里就是主题,这也是LDA是mixed membership模型的原因。

每个字有可能属于不同的类别,每个文档也有可能属于不同的类别。

Lda很类似在二零零零年初提出的另外一类更简单的主题模型概率隐性语义索引,简称PLSI.其实,从本质上来说,LDA借用了PLSI的基本架构,只不过在每个文档的主题分布向量上放置了迪利克雷的先验概率,以及在主题矩阵上放置了另外一个迪利克雷的先验概率。

尽管看上去这是一个非常小的改动,但是这样做的结果则是LDA的参数个数并不随着文档数目的增加而增加。

那么相对于PLSI来说,LDA并不容易对训练数据过度拟合。

值得注意的原始文章说,过度拟合主要是指对于PLSI而言,文档的主题分布向量是必须需要学习的,而这个向量对于LDA是可以被忽略,或者说是并不需要保存的中间变量。

然而,在实际的应用中,我们其实常常也需要这个向量的信息。

因此,这部分对于过度拟合的讨论在后来的应用中并没有特别体现。

Lda虽然从某种意义上来说,仅仅是在PLSI增加先验信息,然而这个改动为整个模型的训练学习带来了非常大的挑战。

应该说,整个LDA的学习,直到模型提出后,近十年才随着随机变分推理的提出,以及基于别名方法的抽样算法,而得以真正的大规模化。

一直以来,LDA的训练学习都是一件很困难的事情,不像PLSI可以依靠最大期望算法得以比较完美的解决。

传统上,LDA的学习属于贝叶斯推理。

而在二零零零年代的初期,只有马尔科夫、蒙特卡洛,简称MCMC以及迈克尔乔丹等人推崇的变分推理,简称VI.作为工具可以解决这篇文章,因为出自迈克尔的实验室,当仁不让的选择了VI.比较有意思的是,后续大多数LDA相关的论文都选择MCMC为主的吉布斯采样来作为学习算法。

Vi的完整讲解无法在本文涵盖从最高的层次上来理解,VI是选取一整组简单的、可以优化的所谓变分分布,来逼近整个模型的后验概率分布。

当然,由于这组分布的选取,有可能会为模型带来不小的误差。

不过,好处是这样,把贝叶斯推理的问题转化成了优化问题。

从LDA的角度来讲,就是要为西塔以及z选取一组等价的分布,只不过更加简单,更不依赖其他的信息。

在VI进行更新。

西塔以及z的时候,算法可以根据当前的西塔以及z的最新值更新阿尔法的值,整个流程俗称变分,最大期望算法文章在TRECAP的文档数据中做了实验。

首先,作者们使用了一个较困惑度的评估值来衡量,文档的建模有效程度,这个值越低越好。

Lda在好几个数据集中都明显好于PLSI以及其他更加简单的模型。

从这篇文章之后,主题模型的发展和对比都离不开困惑度的比较,也算是开启了一个新时代。

然后,作者们展示了利用LDA来做文档分类,也就是利用文档主题向量来作为文档的特征,从而放入分类器中来加以分类。

作者们展示了LDA作为文档分类特征的有力证据,在数据比较少的情况下优于文本本身的特征。

不过总体来说,在原始的LDA论文中,作者们并没有特别多的展示出LDA的所有可能性。

今天我为你梳理了LDA提出的背景,以及这篇论文所引领的整个领域的情况。

你需要掌握的核心要点,第一,论文作者们目前的状态。

第二,LDA模型本身和它的一些主点。

第三LDA的训练流程概况,以及在原始文章中的实验结果。

最后我要为你留一个思考题。

Lda的产生过程决定了对于一个文本而言,每个字都可能来自不同的主题。

那么如果你希望对于某一个段落,所有的文字都来自同一个主题,你需要对LDA这个模型进行怎么样的修改呢?欢迎在评论区留言讨论。