lda主题模型基本原理(lda主题模型文本分类)

lda主题模型基本原理(lda主题模型文本分类)LDA Latent Dirichlet Allocation 是一种文档主题生成模型 也称为一个三层 贝叶斯概率模型 包含词 主题和文档三层结构 所谓生成模型 就是说 我们认为一篇文章的每个词都是通过 以一定概率选择了某个主题 并从这个主题中以一定概率选择某个词语 这样一个过程得到 文档到主题服从多项式分布 主题到词服从多项式分布 1 nbsp lt

大家好,我是讯享网,很高兴认识大家。



 LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,也称为一个三层 贝叶斯概率模型,包含词、主题和文档三层结构。所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到。文档到主题服从多项式分布,主题到词服从多项式分布。 [1] &nbsp;</p><p> <br></p><p> <br></p><p> LDA是一种非监督机器学习技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息。但是词袋方法没有考虑词与词之间的顺序,这简化了问题的复杂性,同时也为模型的改进提供了契机。每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多单词所构成的一个概率分布。 </p><p> <br></p><p> <br></p><p> <br></p><p> <br></p><p> 对于语料库中的每篇文档,LDA定义了如下生成过程(generativeprocess): </p><p> <br></p><p> <br></p><p> 1.对每一篇文档,从主题分布中抽取一个主题; </p><p> <br></p><p> <br></p><p> 2.从上述被抽到的主题所对应的单词分布中抽取一个单词; </p><p> <br></p><p> <br></p><p> 3.重复上述过程直至遍历文档中的每一个单词。 </p><p> <br></p><p> <br></p><p> 语料库中的每一篇文档与T(通过反复试验等方法事先给定)个主题的一个多项分布 (multinomialdistribution)相对应,将该多项分布记为θ。每个主题又与词汇表(vocabulary)中的V个单词的一个多项分布相对应,将这个多项分布记为φ。 </p><p> <br></p><p> <br></p><p> <br></p><p> <br></p><p> 先定义一些字母的含义:文档集合D,主题(topic)集合T 

讯享网

讯享网D中每个文档d看作一个单词序列&lt;w1,w2,...,wn&gt;,wi表示第i个单词,设d有n个单词。(LDA里面称之为wordbag,实际上每个单词的出现位置对LDA算法无影响) 

·D中涉及的所有不同单词组成一个大集合VOCABULARY(简称VOC),LDA以文档集合D作为输入,希望训练出的两个结果向量(设聚成k个topic,VOC中共包含m个词): 

讯享网·对每个D中的文档d,对应到不同Topic的概率θd&lt;pt1,...,ptk&gt;,其中,pti表示d对应T中第i个topic的概率。计算方法是直观的,pti=nti/n,其中nti表示d中对应第i个topic的词的数目,n是d中所有词的总数。 

·对每个T中的topict,生成不同单词的概率φt&lt;pw1,...,pwm&gt;,其中,pwi表示t生成VOC中第i个单词的概率。计算方法同样很直观,pwi=Nwi/N,其中Nwi表示对应到topict的VOC中第i个单词的数目,N表示所有对应到topict的单词总数。 

讯享网LDA的核心公式如下: 

p(w|d)=p(w|t)*p(t|d) 

讯享网直观的看这个公式,就是以Topic作为中间层,可以通过当前的θd和φt给出了文档d中出现单词w的概率。其中p(t|d)利用θd计算得到,p(w|t)利用φt计算得到。 

[2] &nbsp;


讯享网

LDA算法开始时,先随机地给θd和φt赋值(对所有的d和t)。然后上述过程不断重复,最终收敛到的结果就是LDA的输出。再详细说一下这个迭代的学习过程: 

讯享网1.针对一个特定的文档ds中的第i单词wi,如果令该单词对应的topic为tj,可以把上述公式改写为: 

pj(wi|ds)=p(wi|tj)*p(tj|ds) 

讯享网2.现在我们可以枚举T中的topic,得到所有的pj(wi|ds),其中j取值1~k。然后可以根据这些概率值结果为ds中的第i个单词wi选择一个topic。最简单的想法是取令pj(wi|ds)最大的tj(注意,这个式子里只有j是变量),即argmax[j]pj(wi|ds) 

[2] &nbsp;

对于语料库中的每篇文档,LDA定义了如下生成过程(generativeprocess):

1.对每一篇文档,从主题分布中抽取一个主题;

2.从上述被抽到的主题所对应的单词分布中抽取一个单词;

3.重复上述过程直至遍历文档中的每一个单词。

语料库中的每一篇文档与T(通过反复试验等方法事先给定)个主题的一个多项分布 (multinomialdistribution)相对应,将该多项分布记为θ。每个主题又与词汇表(vocabulary)中的V个单词的一个多项分布相对应,将这个多项分布记为φ。

小讯
上一篇 2025-06-16 10:53
下一篇 2025-04-18 10:33

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/186831.html