lda

懵懂的菜鸟 懵懂的菜鸟     2022-09-21     573

关键词:

LDA

1 概述

LDA(Latent Dirichlet allocation)潜在狄立克雷分配模型,它是将文档集中每篇文档的主题按照概率分布的形式给出,是一种典型的概率生成性模型,能够发现语料库中潜在的主题信息,因此也称为LDA主题模型。它是一种无监督学习,可以应用于推荐系统之中,其优点在于无需手工标注训练集,仅仅需要的是文档集和指定主题的数量。其中,对于每个主题只需找出一些词语代替即可。

LDA主题模型是一个包含词汇、主题(隐变量)、文档的三层结构,把文档集中的文档看做是多个主题信息的混合分布,每个主题看做是对应预料库中所有词汇上的混合分布。

LDA主题模型生成文档语料库的过程如下:(建设生成的语料库包含m篇文档、K个主题)

(1)对于m篇文档,生成"文档-主题"分布。文档主题分布也是一个多项式分布,它的参数服从参数为的Dirichlet先验分布。(Dirichlet(狄立克雷),Beta分布的多元推广)。

(2)获取每个主题下的"主题-词汇"的分布。主题-词汇分布是一个多项式分布,且它的参数变量服从参数为的Dirichlet先验分布。

(3)根据 "文档-主题"、"主题-词汇"分布,依次生成所有文档中的词汇。具体做法,首先根据该文档的"文档-主题"分布规律采样一个主题,然后从这个主题对应的"主题-词汇"分布规律中采样生成一个词汇,不断重复步骤3的生成过程,直到m篇文档词汇全部生成。(采用Gibbs采样法,一种特殊的MCMC(Markov chain Monte Carlo 马尔可夫链蒙特卡罗)算法)

2 LDA模型

LDA主题模型生成文档语料库的过程可以画成一个经典的贝叶斯网络图:

图解:

(1) 是每个文档下主题的多项式分布的Dirichlet先验参数,是每个主题下词的多项式分布的Dirichlet先验参数。

一般事先给定,如果取0,1对称的Dirichlet分布,表示在参数学习接收后,期望每篇文档的主题不会十分集中。

(2)表示第m个文档下的主题分布的分布;表示第k个主题下的词分布。

对于第i篇文档的主题分布是,是长度为K的向量;对于第i篇文档的,在主题分布下,可以确定一个具体的主题    对于第K个主题的词分布,是长度为v的向量;

选择,表示由词分布确定词,即得到观测值

(3)是第m个文档的单词总数。是第m个文档中第n个词的主题,

 

 

V:文档集中不重复的词汇的数目

语料库共有m篇文档,

对于文档,由个词汇组成,可重复;

是第m个文档中的第n个词。

M:文档集中文档的总数

Nm:第m个文档中包含的词汇总数

:文档m中第n个词在词典中的序号,属于1到V

:文档m第n个词汇的主题标号,属于1到k

k:第k个主题的词汇分布中的参数向量

:第m文档的主题分布中的参数向量

整个文档集的生成概率模型:

式中是Dirichlet分布的delta函数。即:

 

 

 

 

 

 

 

 

 

Gibbs迭代规则公式:

Gibbs迭代规则的思想:即不考虑当前词汇的主题分配,据此词汇所在文档的主题分布以及各个主题下词汇分布来计算此词汇被分配到各个主题的概率分布,然后选择以最大概率被分配的主题。

(1)表示排除当前第i个词汇,根据文档集中其他词汇序列的主题分布来计算第i个词汇属于第k个主题的概率

3)t 是第i个词汇对应词汇的字典序列号,表示排除当前词汇,k个主题中词汇 t 出现次数。

4)m 是当前词汇出现在第 m 篇文档中,表示排除当前词汇,m 篇文档中出现词汇k的次数。

当 Gibbs 采样收敛后,跟据每个文档中主题分配次数以及每个主题中词汇分配次数来计算"文档-主题"分布和和"主题-词汇"分布。

1)表示标号为v的词语分配到主题 k 的次数, 表示文档m 中所有词语分配到主题 z 的个数。

2)是主题在词汇上分布,式(2-10)中分子的意义是字典中第 t 个词汇分配到主题k下的次数,分母是表示的意义字典中所有词汇被分配到主题k下的次数,是主题-词汇分布中的先验参数,表示人为认为词汇 t 被分配到主题 k 的次数。所有词汇初始时都是等可能的被分配,以这里都假定=1。

3) 是文档-主题分布,式(2-11)中分子的意义是主题 k 被分配到第 m 篇文档中的次数,分母是表示的意义各个主题被分配到第 m 篇文档中的次数总和,文档m 的长度。是文档-主题分布中的先验参数,表示主题 k 被分配的次数。所有主题初始时都是等可能的被分配,以这里都假定=1

贝塔分布中的参数可以理解为伪计数,伯努利分布的似然函数可以表示为,表示一次事件发生的概率,它为贝塔有相同的形式,因此可以用贝塔分布作为其先验分布。

在刚才例子的后验概率的最终表达式中,参数αβx一起作为参数θ的指数——后验概率的参数为(x+α,1-x+β)。而这个指数的实践意义是:投币过程中,正面朝上的次数。αβ 先验性的给出了在没有任何实验的前提下,硬币朝上的概率分配;因此,αβ可被称作"伪计数"

Dirichleet分布其实就是Beta分布推广到K维的情况。

而Beta分布的一个重要应该是作为伯努利分布和二项式分布的共轭先验分布出现,在机器学习和数理统计学中有重要应用。

二项分布的共轭先验分布是Beta分布,那多项分布的共轭先验分布就是Dirichleet分布。

共轭先验:

后验概率分布拥有与先验分布相同的函数形式。这个性质被叫做共轭性。共轭先验有着很重要的作。它使得后验概率分布的函数形式与先验概率相同,因此使得贝叶斯分析得到了极的简化。

如果一个文档中只有两个词,那这个文档就是个二项分布吧, 但一个文档中一般有很多词,比如有K个,所以说文档是K项分布吧。

      注意:词频不是Dirichleet分布,词频是K项分布,而K项分布需要有参数的,这个参数是Dirichleet分布

 

参考文献:

 

[1] 边晋强. 基于LDA主题模型的文档文摘研究[D].北京理工大学,2015.

[2] http://blog.csdn.net/xueyingxue001/article/details/52396279?locationNum=1&fps=1

 

 

 

pca与lda

  PCA和LDA都是降维算法,他们的主要区别是:  PCA为无监督方法,主要是主成分分析方法,PrincipalComponentAnalysis, 简称PCA。PCA可以降到任意维度。  LDA是有监督方法,主要是线性判别分析法,LinearDiscriminantAnalysis,简... 查看详情

线性差别分析lda(代码片段)

LDA原理LDA思想这里的LDA是指LinearDiscriminantAnalysis,简称LDA,全称线性判别分析。要与自然语言处理领域的LDA(LatentDirichletAllocation)隐含狄利克雷分布区分开来。LDA是一种监督学习降维技术,它的数据集的每个样本是有类别输出的... 查看详情

lda

LDA1概述LDA(LatentDirichletallocation)潜在狄立克雷分配模型,它是将文档集中每篇文档的主题按照概率分布的形式给出,是一种典型的概率生成性模型,能够发现语料库中潜在的主题信息,因此也称为LDA主题模型。它是一种无监督学习... 查看详情

分类 LDA 与 TFIDF

】分类LDA与TFIDF【英文标题】:ClassificationLDAvs.TFIDF【发布时间】:2017-04-2013:41:41【问题描述】:我在文本数据上运行多标签分类时,我注意到TFIDF的性能大大优于LDA。TFIDF准确度约为50%,LDA约为29%。这是预期的还是LDA应该做得比... 查看详情

降维方法-lda线性判别分析

降维-LDA线性判别分析  【机器学习】LDA线性判别分析1. LDA的基本思想2. LDA求解方法3. 将LDA推广到多分类4.LDA算法流程5.LDA和PCA对比【附录1】瑞利商与广义瑞利商        线性判别分析... 查看详情

spark机器学习:lda主题模型算法

1.LDA基础知识LDA(LatentDirichletAllocation)是一种主题模型。LDA一个三层贝叶斯概率模型,包含词、主题和文档三层结构。LDA是一个生成模型,可以用来生成一篇文档,生成时,首先根据一定的概率选择一个主题,然后在根据概率选... 查看详情

lda和pca降维的原理和区别

 LDA算法的主要优点有:在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。LDA算法的主要缺点有:LDA不适合... 查看详情

SKlearn LDA 与 Gensim LDA 中的困惑比较问题

】SKlearnLDA与GensimLDA中的困惑比较问题【英文标题】:PerplexitycomparisionissueinSKlearnLDAvsGensimLDA【发布时间】:2017-03-2407:32:05【问题描述】:我在sklearn和gensim中都应用了lda。然后我检查了保留数据的困惑。我得到了gensim的困惑的负值... 查看详情

pca和lda

参考技术A在机器学习领域,PCA和LDA都可以看成是数据降维的一种方式。但是PCA是无监督的,也就是说不需要知道sample对应的label,而LDA是监督的,需要知道每一个数据点对应的label。下面分别解释PCA和LDA的基本原理相同点:不同... 查看详情

lda主题模型

  查看详情

机器学习入门-文本特征-使用lda主题模型构造标签1.latentdirichletallocation(lda用于构建主题模型)2.lda.components(输出各个词向量的权重值)(代码(代码

函数说明 1.LDA(n_topics,max_iters,random_state) 用于构建LDA主题模型,将文本分成不同的主题 参数说明:n_topics表示分为多少个主题,max_iters表示最大的迭代次数,random_state表示随机种子 2.LDA.components_打印输入特征的权重... 查看详情

lda笔记

  LDA算法最初的论文使用的是变分EM方法训练(VariationalInference)。该方法较为复杂,而且最后训练出的topic主题非全局最优分布,而是局部最优分布。后期发明了CollapsedGibbsSample方法,推导和使用较为简洁。    LatentDirichl... 查看详情

潜在狄利克雷分配(lda,latentdirichletallocation)模型

潜在狄利克雷分配(LDA,LatentDirichletAllocation)模型(二)目录潜在狄利克雷分配(LDA,LatentDirichletAllocation)模型(二)LDA模型实现 查看详情

潜在狄利克雷分配(lda,latentdirichletallocation)模型

潜在狄利克雷分配(LDA,LatentDirichletAllocation)模型(一) 目录潜在狄利克雷分配(LDA,LatentDirichletAllocation)模型(一)LDA模型推理随机变量 查看详情

LDA 主题建模 - 训练和测试

】LDA主题建模-训练和测试【英文标题】:LDAtopicmodeling-Trainingandtesting【发布时间】:2012-06-2502:50:58【问题描述】:我已阅读LDA,并且我了解输入一组文档时如何生成主题的数学原理。参考资料说,LDA是一种算法,只要给定一个文... 查看详情

如何使用 pyspark LDA 获取主题

】如何使用pysparkLDA获取主题【英文标题】:HowtogetthetopicusingpysparkLDA【发布时间】:2019-05-1315:49:36【问题描述】:我使用LDA来查找主题ref:从pyspark.ml.clustering导入LDAlda=LDA(k=30,seed=123,optimizer="em",maxIter=10,featuresCol="features")ldamodel=lda.fit... 查看详情

lda线性判别分析

http://blog.csdn.net/porly/article/details/8020696 1. LDA是什么线性判别式分析(LinearDiscriminantAnalysis),简称为LDA。也称为Fisher线性判别(FisherLinearDiscriminant,FLD),是模式识别的经典算法,在1996年由Belhumeur引入模式识别和人工智... 查看详情

gensim-lda实践

本文利用gensim进行LDA主题模型实验,第一部分是基于前文的wiki语料,第二部分是基于Sogou新闻语料。1.基于wiki语料的LDA实验上一文得到了wiki纯文本已分词语料wiki.zh.seg.utf.txt,去停止词后可进行LDA实验。importcodecsfromgensim.modelsimpor... 查看详情