1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > LDA(Latent Dirichlet Allocation)简介

LDA(Latent Dirichlet Allocation)简介

时间:2023-07-24 06:12:32

相关推荐

LDA(Latent Dirichlet Allocation)简介

一、简介

LDA(隐狄利克雷分布)是一种无监督学习的主题概率生成模型,输入是文档集合和主题个数,输出是以概率分布的形式呈现的主题,常用于主题建模、文本分类、观点挖掘等多个领域。 它假定了一个前提:文档相当于一个词袋(bag-of-words),袋子中的词是独立可交换的,没有语法结构和顺序。 其基本思想是:每个文档(Document)由多个主题(Topic)构成,每个主题都有对应的多个词(Word)来描述。

二、LDA模型介绍

1. 模型描述

LDA的核心是贝叶斯网络(左图是贝叶斯网络,右边是参数说明):图一 LDA的贝叶斯网络 图二 参数说明

在贝叶斯网络中,左边的矩形表示每个主题对应的单词概率分布;右边的外矩形表示有M个文档,内矩形表示每个文档中的所有单词。 贝叶斯网络模拟文档的生成过程,为了方便理解,结合伪代码来解释生成过程(先看伪代码的注释;其中各种概率分布先忽略,后面再解释):

2. 概率分布介绍

2.1 主题分布

贝叶斯网络的两个结点之间的箭头表示概率分布。在图一中,因为每一个主题出现的概率是独立同分布的,所以假定未知参数符合多项分布。这个假定的分布在贝叶斯公式中叫做似然函数。贝叶斯规则还提出:对于已知模型的未知参数,需要一个先验分布与似然函数共轭,来评估未知参数。关于贝叶斯规则,请看”贝叶斯公式的共轭分布“。

由贝叶斯规则可知:其中,先验分布是Dirichlet分布,似然函数是多项分布函数,而计算后验分布目的是为了获得主题分布。则图一的上半部分可表示为:

2.2 单词分布

同理,单词分布也服从多项分布,其贝叶斯表达式为:

其先验分布是Dirichlet分布,似然函数是多项分布。如图:

2.3 主题分布和单词分布的表达式

经过一系列的公式推导(详见 "Parameter estimation for text analysis", Gregor Heinrich),得到主题分布和单词分布的最终表达式:

参数说明:

三、Gibbs Sampling算法:实现LDA

第二部分重点描述了LDA生成文档的模型,以及模型中未知参数(即主题分布和单词分布)的表达式。模型已经大体了解,不过具体该怎么实现?这里采用的算法是Gibbs Sampling。 Gibbs Sampling算法是MCMC(Markov Chain Monte Carlo,马尔科夫链-蒙特卡罗)算法的一个特例。它的运行方式是每次选择概率向量的一个维度,然后根据这个向量的其他维度的值来采样当前维度的新值。请看下图:

1. 步骤说明

Initialize:初始时随机给文本中的每个单词分配主题。

Count:计算每个每篇文档属于第k个主题的单词总数,以及第k个主题在所有文档中生成第t个单词的总数。

Compute:去除当前单词的主题,根据该文档中其他单词的主题评估当前单词被赋予各个主题的概率。其中,

Sample:在得到当前单词的主题概率分布后,根据这个概率分布为该词采样一个新的主题。

Loop:从Count步骤重新开始,不断更新下一个单词的主题,直到和收敛。

2. 输出结果

最后输出的是主题分布和单词分布,对文本挖掘方面的技术有重要意义。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。