此文为David M. Blei所写的《Introduction to Probabilistic Topic Models》的译文,供大家参考。
摘要:概率主题模型是一系列旨在发现隐藏在大规模文档中的主题结构的算法。本文首先回顾了这一领域的主要思想,接着调研了当前的研究水平,最后展望某些有所希望的方向。从最简单的主题模型——潜在狄立克雷分配(Latent Dirichlet Allocation,LDA)出发,讨论了其与概率建模的联系,描述了用于主题发现的两种算法。主题模型日新月异,被扩展和应用许多领域,其中不乏有趣之处。我们调研发现很多扩展都弱化了LDA的统计假设,加入元数据(meta-data)进行文档分析,使用近似的模型分析如社会网络、图像和基因这类多样化的数据类型。我们在文章的最后给出了主题模型目前还未探索但很重要的方向,包括严格检验数据模型的方法,文本和其它高维数据可视化的新技术,以及如何从传统信息工程中的应用推广到更多科学应用。
1 引言
如今公开的知识日益以新闻、博客、网页、科学论文、书籍、图像、声音、视频和社交网络的形式被数字化存储,巨大的信息量同时也增加了人们寻找和发现自己所需要的知识的难度。人们需要新的计算工具以组织、搜索和理解这些庞大的信息量。现在的在线信息挖掘使用两种主要的工具——搜索和链接。向搜索引擎提交关键词就可以找到相关的文档和其它相链接的文档。这种与在线文档的交互方式虽然有效,但却丢失了某些信息。
假设所要搜索和寻找的文档由各类主题组成。这样,通过对文章进行“放大”和“缩小”就可以得到较具体或者较粗略的主题;在文档中就可以看到这些主题是如何随着时间变化,或者说是如何相互联系的。搜索文档就不只是通过关键词寻找,取而代之的是先找到相关的主题,然后再查找与这一主题相关的文档。
拿纽约时报所记载的历史举例。从较广的层次来看,报纸中的主题就对应着报纸各个版块——对外政策、国内事务、体育,再拿对外政策进行“放大”,就可以得到其不同方面——中国对外政策、中东冲突、英国与俄罗斯的关系。接下来,我们跟踪这些专题是如何随着时间演变的,例如过去50年里的中东冲突。如此这般探索就能找到与主题相关的原始文档。可见,这种主题结构是探索和理解文档的新窗口。
但以这种方法与电子文档进行交互是不现实的,因为随着网上文本的数量越来越多,单单仅靠人力已经无法全部阅读和研究所有的文本。由此,概率主题建模应运而生。机器学习领域的研究人员们开发出了一套旨在发现和标记大规模文档的主题信息的算法。主题建模算法是一种统计方法,它通过分析原文本中的词以发现蕴藏于其中的主题,主题间的联系,以及主题随时间的演变(就比如后面图3,通过分析耶鲁法律找到主题),而且不需要事前对文档进行标记。也就是说,人力所无法完成的文档标记,主题建模算法能够进行组织和归纳。
2 潜在狄立克雷分配
潜在狄立克雷分配(LDA)是最简单的主题模型,其基础是文档是由多个主题构成的。如图1所示,《Seeking Life’s Bare(Genetic) Necessities》是一篇对基因数量进行数据分析的文章(基因是有机体赖以进化的基础)。
图1:潜在狄立克雷分配的直观现象。如图左所示,假设主题是词语上的概率分布;图右是主题直方图。从直方图到文章的词的过程是这样的:首先随机产生一个主题直方图,然后选择其中一主题,最后从该主题对应的主题分布中选择一个词。这里的主题和主题直方图只作说明之用,与文章其实并不相匹配。相匹配的主题见图2。
文章中不同的词被高亮在不同的颜色。如“computer”和“prediction”之类有关数据分析的词以蓝色标记;如“life”和“organism”之类关于进化生物学的词以粉红色标记;如“sequenced”和“genes”之类有关遗传学的词以黄色标记。将所有词语进行这样的标记,并剔除“and”、“but”和“if”这类包含极少主题内容的词语后可以发现,这篇文章由不同主题以不同的比例组成,更进一步地看,多个主题可以帮助人们在一堆科技论文中发现这篇文章。
建立在文档集合上的统计模型LDA就试图描述上述直观的现象。LDA可以看作是一个文档产生的过程(2.1节将具体解释概率模型LDA)。形式化地定义主题是固定的词语的概率分布。例如,“遗传学”主题中“genes”的概率就相当高,类似地,“进化生物学”主题中“life”的概率也相对较高。假设所有的主题在文档产生之前就已经产生且指定。生成文档(或者说生成文档中的词)可以看成是如下两个过程:
- 随机产生一个主题直方图(或者说分布);
- 对文档中的每个词:
- (a) 从第一步产生的直方图里随机选择一个主题;
- (b) 从主题对应的词语的概率分布中随机选择一个词。
从文档产生的过程来看,第一步使得每篇文档由不同主题以不同比例组成。第二步的第二小步(b)使得每篇文档中每个词从一个主题中得来,其中的主题从第一小步(a)得来。实际上,第一步主题直方图(或者说分布)是一个狄立克雷分布(Dirichlet distribution),其作用是将文档中的词分配给不同的主题,那为什么是潜在的呢?且听后面分解。
对图1所示的文章来说,主题直方图中主题“遗传学”、“数据分析”和“进化生物学”都会占一定比例,文章中每个词都由这三个主题中的一个所给出。文档集中也可能会有一篇关于“数据分析”和“神经科学”;其主题直方图中这两个主题都将占有一定的比例;这就是潜在狄立克雷分配的显著特征——集合中所有文档共享同一主题集合,但每个文档中各个主题所占的比例又都各不相同。
如前引言所述,主题建模的目的是为了自动地发现文档集中的主题。文档自然是可被观察到的,但主题结构——主题、主题直方图(或者分布)和主题的词分布——却是隐藏的。所以主题建模的中心问题就是利用看到的文档推断出隐藏的主题结构,其实也就是产生文档的逆过程。
图2:图1的LDA。我们从《自然》上的17000篇文章提取100个主题及其相关词,然后对图1所示的文章进行分析,左边是主题所占比例的直方图,右边是文章常见主题的最常出现的前15个词。
如图2所示,就是一个推断图1中文章的例子。使用主题建模算法(假设有100个主题)推断《科学》上17000篇文章的潜在主题结构,然后推断出最能描述图1中示例文章的主题分布(图左)。需要注意的是,尽管主题分布上有无穷个主题,但事实上只有其中的一小部分的概率不为零。进一步地,文章中词可被分主题进行组织,可以看到最常见的主题所包含的概率最大的词。
需要强调的是,算法事先并不知道这些主题,文章也未有关键词或主题标记。计算潜在结构得到的主题分布可以产生所观察到的文档集合(由推断算法产生的主题对所分析的文档集合几乎都具有可解释性,主题似乎与语言的统计结构和LDA的具体概率假设有关)。如图3显示了《Yale Law Journal》中发现的主题(这里设置主题数为20)。主题由基因和数据分析替换为歧视和合同法。主题建模是管理、组织和标记大规模文本的一种算法。推断得到的隐藏结构近似于文档集的主题结构,能标记文档集中各个文档。这代替了痛苦的手工标记,并有助于信息检索,分类和语料库搜索。
2.1 LDA和概率模型
LDA和其它主题模型都属于概率建模这一更大领域。数据被看作是经过包括隐藏变量在内的生成过程得到的。生成过程定义了观测随机变量和隐藏随机变量的联合概率分布。通过使用联合分布来计算在给定观测变量下隐藏变量的条件分布(后验分布)来进行数据分析。对于LDA来说,观测变量就是文档中的词;隐藏变量就是主题结构;生成过程如之前所述。那么推测从文档中隐藏的主题结构的问题其实就是计算在给定文档下隐藏变量的条件分布(后验分布)。
形式化地定义如下:所有主题为β1:K,其中βk是第k个主题的词的分布(如图1左部所示)。第d个文档中主题所占的比例为θd,其中θd,k表示第k个主题在第d个文档中的比例(图1右部的直方图)。第d个文档的主题全体为zd,其中zd,n是第d个文档中第n个词的主题(如图1中有颜色的圆圈)。第d个文档中所有词记为wd,其中wd,n是第d个文档中第n个词,每个词都是固定的词汇表中的元素。那么LDA的生成过程对应的观测变量和隐藏变量的联合分布如下: