基于LDA模型的文档生成算法2014年12月1基于LDA模型的文档生成算法李晨(西安电子科技大学电子工程学院,陕西西安710071)摘要:本文包含两部分内容,一部分是我们对LDA模型的理解,LDA模型的核心是对参数,的估计,而估计过程用到了EM,variationalinference等方法对,进行逼近,最后收敛得出学习结果。另一部分是在此基础上所做的文档生成模型,这个生成模型的核心是对参数12(,...)kk(代表主题个数)的采样,我们利用Dirichlet分布与Gamma分布的关系先产生k个相互独立的服从Gamma分布的随机数,再利用12(,...)k=12=1=1=1(,...)kkkkiiiiiiyyyyyy得出服从Dirichlet分布的,最后利用函数11,1,2,...,.ikknikkpFinp对各个主题和单词进行采样,最终得出几篇文档,经分析,生成的文档具有一定的意义。关键词:LDA模型文档EM算法DocumentgenerationalgorithmbasedonLDAmodelChenLi(SchoolofElectronicEngineering,XidianUniv.,Xi’an710071,China;SchoolofElectronicEngineering,XidianUniv.,Xi’an710071,China;SchoolofElectronicEngineering,XidianUniv.,Xi’an710071,China)Abstract:Alongwithourcountryautomobileindustryandthedevelopmentofthehighway,greatlypromotedthemeridiantyremarketdemand,sothattheradialtyredevelopmentrapidly.Thepapermainlyintroducesthecharacteristicsoftheradialtyredevelopmentstatusandtrend,atthesametimeputsforwardthedevelopmentofchina’sautomobileradialtyreindustryapieceofadvice.Keywords:LDAStyleDocEMmaths基于LDA模型的文档生成算法2014年12月21引言LDA模型(LatentDirichletAllocation)是文本建模的一种方法,属于概率生成模型。LDA模型是由DavidM.Blei和MichaelI.Jordan等人在2003年提出的【1】。这个模型的提出是为了解决一些文档处理领域的问题,比如文章主题分类、文章检测、相似度分析、文本分段和文档检索等问题【2】。目前针对LDA扩展的研究工作非常多。其中有对参数的扩展,比如Blei等人在2004年和2006年又相继提出树结构的层级LDA和相关主题模型(CTM),使得模型更接近数据的真实情况。还有面向特定任务的LDA模型,涉及分类、作者主题模型、词义消歧、引用链接分析、人名消歧、情感分析等更细化的任务【2】。在LDA模型中,由于涉及到概率的生成,所以当对分布函数的参数进行估计的时候,就需要使用到EM算法。EM算法(Expectation-MaximizationAlgorithm)是由Dempster等人于1977年提出,是一种用于对具有隐变量的概率模型进行极大似然估计的算法。该算法在自然语言处理方面已经有广泛的运用,常见的诸如隐马尔科夫模型、高斯混合模型、k-均值算法、主成分分析等都可以用EM算法的思想来解释【2】。例如在LDA模型中,主题和单词的联合分布的似然函数的表达式无法写出来,但是可以用隐性变量表示出来,这时就可以使用EM算法来估计似然函数的参数。所谓隐性变量,说的是LDA的预测目标——主题分布,是训练集中不能直接观察到的量,是人(或模型)虚构出来的量,因此称之为潜在的(Latent)。目前,EM算法的发展和LDA模型紧密相连,比如Nallapati等人提出的并行变分EM算法,就用来对文档生成模型中的学习过程进行加速,以便应用于多处理器和分布式环境【2】。我们首先根据前人的成果对LDA模型和EM算法进行了详细研究,并且接触了一些关于用LDA模型实现文档生成的MATLAB程序。之后,我们尝试着以LDA模型为基础,以数学软件MATLAB为工具,先进行参数估计并生成一个有关主题和单词分布的矩阵,然后以这个矩阵作为学习后的结果进行采样,优化,进而生成一篇文档。2LDA模型的原理2.1LDA学习过程在LDA学习过程中,有LDAGraphicalmodelrepresentation:Figure1LDA学习模型几乎所有讨论LDA的文章都包括上面的这幅图。它代表的概率模型:𝑝(θ,z,ω|α,β)=𝑝(θ|α)∏𝑝(𝑧𝑛|𝜃)𝑝(𝑤𝑛|𝑧𝑛,β)𝑁𝑛=1(1)上式计算边缘概率,便可得:基于LDA模型的文档生成算法2014年12月3𝑝(D|α,β)=∏∫𝑝(𝜃𝑑|α)(∏∑𝑝(𝑧𝑑𝑛|𝜃𝑑)𝑝(𝑤𝑑𝑛|𝑧𝑑𝑛,β)𝑧𝑑𝑛𝑁𝑑𝑛=1)𝑑𝜃𝑑𝑀𝑑=1(2)其中D代表一个语料库,M代表语料库中文档的总数。通过对LDA生成模型的讨论我们理解到对文本的建模实际上就是要计算α和β两个参数。α和β可以采用极大似然估计,但是这里遇到一个问题,就是似然函数由于α和β的耦合无法直接求出来:𝑝(ω|α,β)=Γ(∑𝛼𝑖𝑖)∏Γ(𝛼𝑖)𝑖∫(∏𝜃𝑖𝛼𝑖−1𝑘𝑖=1)(∏∑∏(𝜃𝑖𝛽𝑖𝑗)𝑤𝑛𝑗𝑉𝑗=1𝑘𝑖=1𝑁𝑛=1)𝑑𝜃(3)在这里,用到了variationalinference方法,为了估计后验分布,寻找一个似然函数的下界,这个下界正好可以被用来做为参数估计,因此借鉴Blei文中选择使用variationalinference方法来计算似然函数的下界。这样,分别给定一个α和β的初始值,就可以计算出一个似然函数的值。极大似然函数的参数估计,就是要找出一对α和β,使得似然函数值最大。这时就用到了EM算法,EM有两个主要应用环境,第一个是观测到的数据不完整或其它原因导致数据丢失,第二个是似然函数无法直接计算但可以用隐含变量表示。LDA中的参数估计属于后者。每次E-STEP输入α和β,计算似然函数,也就是variationalinference的过程,M-STEP最大化这个函数,求出α和β。这样不断迭代知道收敛,就求得了最终的α和β值。在本文中,我们利用Gibbs采样原理,对于后验估计𝑝(α,β|ω)=𝑝(ω|α,β)𝑝(α)𝑝(β)∬𝑝(ω|α,β)𝑑αdβ(4)这里假设了α和β相互独立。给定先验初始α和β,即可计算出p(α),一个主题分布的率值,p(β),对应主题下的单词的概率分布,和相应的p(ω|α,β),于是通过寻找一对α和β,使上式达到最大,再重新代入上式计算,依次不断类推最终达到收敛。此处运用到variationalinference的知识,即确定α和β,找到一组不断逼近所求似然函数值的函数,确定其中最大值,使之最为接近所求似然函数。利用KL距离,p(α,β|ω)≈p̂(α|ω)p̂(β|ω),简化计算。接下来的工作,就是要进行EM迭代,直到α和β收敛。E-STEP:对每一篇文档,计算p̂(α|ω)p̂(β|ω)。M-STEP:最大化VariationalInference中的下界,求出此时的α和β,得到p(α)、p(β),即θ,beta。2.2文档生成原理LDA是给文本建模的一种方法,它属于生成模型。生成模型是指该模型可以随机生成可观测的数据,在这里,LDA可以随机生成一篇由N个单词组成的文章。通过阅读有关LDA模型的论文,我们总结出基本的文档生成的步骤。要生成一篇文档首先要有采样数据库【1】,比如:基于LDA模型的文档生成算法2014年12月2Figure2LDA模型的词料库这是由LDA模型的学习过程得出的一个词料库【3】,每一列代表一个主题(topic),比如“Art”、“Budget”、“children”和“Education”。在这个词料库所含单词的分布为多项分布,该词料库由两个参数来刻画,也就是LDA模型中的参数α和β,α是Dirichlet分布的参数,如图一所示,一个词料库是由多个主题组成的,这些主题在文档中出现的概率θ={12,...k}服从Dirichlet(α)分布。β是一个KV的矩阵,ij表示第i个主题条件下生成第j个单词的概率,LDA模型的核心和关键就是对这两个参数的估计,这里我们采用EM算法,估计出α和β,以后就可以进行文档提取了。在通过EM算法估计出参数,得到语料库之后,产生文档的过程如下:1.选择N,N服从Poisson()分布,这里N代表文档的长度。2.选择θ,θ服从Dirichlet(α)分布,这里θ是列向量,代表的是各个主题发生的概率,α是Dirichlet分布的参数。3.对N个单词中的每一个:a)选择主题nz,nz服从Multinomial(θ)多项分布。nz代表当前选择的主题;b)选择所需的单词nw,根据p(nw|nz;):在nz条件下的多项分布。上式中是一个KV的矩阵,ij=P(jw=1|iz=1),也就是说记录了某个主题条件下生成某个单词的概率。在给定了N之后,上述过程实际上是一个采样的过程,就是所有的步骤都是随机的,但是这样的随机过程必须服从相应的分布,比如计算机先根据Dirichlet分布随机产生θ,即各主题在文档中的分布概率已经确定,类似地再产生各个单词,最后得出一篇文档。但通过程序模拟,我们发现这样得出的文档没有多大的意义,只是一些单词的简单堆砌,无法构成一篇可以供人阅读的文章。这是因为LDA模型最初的假设就是学习所用的文档是“bagofwords”——词袋,词与词之间并没不产生语义,但是采样得出的文档并不是失败的,当适当地加入介词或其他联接词语后文档显示出了一定的意义,比如LDA模型的提出者Blei所做的例子【3】:TheWilliamRandolphHearstFoundationwillgive$1.25milliontoLincolnCenter,MetropolitanOperaCo.,NewYorkPhilharmonicandJuilliardSchool.“Ourboardfeltthatwehadarealopportunitytomakeamarkonthefutureoftheperformingarts基于LDA模型的文档生成算法2014年12月3withthesegrantsanacteverybitasimportantasourtraditionalareasofsupportinhealth,medicalresearch,educationandthesocialservices,”HearstFoundationPresidentRandolphA.HearstsaidMondayinannouncingthegrants.LincolnCenter’ssharewillbe$200,000foritsnewbuilding,whichwillhouseyoungartistsandprovidenewpublicfacilities.TheMetropolitanOperaCo.andNewYorkPhilharmonicwillreceive$400,000each.TheJuilliardSchool,wheremusicandtheperformingartsaretaught,willget$250,000.TheHearstFoundation,aleadingsupporteroft