当前位置:网站首页 > 编程语言 > 正文

lda主题模型(LDA主题模型介绍)



LDA主题模型使用 lda主题模型基本步骤_主题模型

1. LDA主题模型想要完成什么任务



我们设有20个主题,LDA主题模型的目标是为每一篇文章找到一个20维的向量,向量中的20个值代表着这篇文章属于某一个主题的概率大小。是一个类似于聚类的操作

2. 在LDA主题模型下,一篇文章是怎么生成的

在LDA主题模型中,文章的生成有三个要素【词语,主题,文章】,词语和主题是多对多的关系,每个词语都可能代表着多个主题,每个主题下也有多个代表的词语;主题和文章也是多对多的关系,每个主题都对应着多篇文章,每篇文章也可能有多个主题。

在LDA主题模型下,一篇文章由词语的序列组成。首先以一定概率选择一个主题,其次以一定概率在这个主题中选择一个词。如果一篇文章由1000个词组成,那么就把上述方式重复1000遍,就能组成这篇文章。那么值得注意的是,以一定概率选择一个主题是服从多项式分布的,而多项式分布的参数是服从 Dirichlet分布的。以一定概率在特定主题中选择一个词也是服从多项式分布的,多项式分布的参数是服从Dirichlet分布的。为什么呢?因为Dirichlet分布是多项式分布的共轭分布,也就是说由贝叶斯估计得到的后验分布仍然是Dirichlet分布

3. LDA主题模型如何求解参数

  1. Gibbs采样
  2. 变分推断EM算法

4. Gibbs采样训练流程

  1. 选择合适的主题数 K,选择合适的超参数 α, β
  2. 对于语料库中每一篇文档的每一个词,随机的赋予一个主题编号 z
  3. 重新扫描语料库,对于每一个词,利用Gibbs采样公式更新它的topic编号,并更新语料库中该词的编号
  4. 重复第三步中基于坐标轴轮换的Gibbs采样,直到Gibbs采样收敛。
  5. 统计语料库中各个文档各个词的主题,得到文档主题分布;然后统计语料库中各个主题词的分布,得到主题与词的分布。

5. Gibbs采样预测流程

  1. 对当前文档的每一个词,随机的赋予一个主题编号z
  2. 重新扫描当前文档,对于每一个词,利用Gibbs采样算法更新它的topic编号
  3. 重复第二步的基于坐标轴轮换的Gibbs采样,直到Gibbs采样收敛
  4. 统计文档中各个词的主题,得到该文档主题分布。

6. 什么是采样

统计模拟中有一个重要的问题就是给定一个概率分布p(x),我们如何在计算机中生成它的样本。一般来说均匀分布是比较容易生成的,我们程序里所生成的随机数就是用线性同余发生器产生的伪随机数。

但是很多概率分布我们无法简单的找到一种算法来进行采样,所以就需要一些更加复杂的随机模拟方法来生成样本。

常用的采样方法有MCMC(Markov Chain Monte Carlo 马尔科夫链蒙特卡洛方法),Gibbs Sampling(Gibbs采样)

6.1 MCMC

MCMC的核心是马氏链的平稳分布。我们假设现在有【上等马,中等马,下等马】三种马,它们出现的概率分别是【0.1,0.7,0.2】,而且有一个状态转移矩阵,告诉我们上等马的后代有多大的概率繁衍出【上等马,中等马,下等马】。

我们会发现,给定转态状态矩阵之后,最后【上等马,中等马,下等马】的概率分布会收敛,不再改变,比如收敛到【0.2,0.6,0.2】,且不受初始概率影响,只于状态转移矩阵有关。

那么我们想到,如果我们能构造一个状态转移矩阵为P的马氏链,使得该马氏链的平稳分布恰好是p(x),那么我们从任意一个初始状态

出发沿着马氏链转移,得到一个转移序列

,如果马氏链在第n步已经收敛了,于是我们就得到了样本

,他们是满足概率分布p(x)的采样。

细致平稳条件: 如果非周期马氏链的转移矩阵

和分布

满足下式,且对任意

都成立,那么

是马氏链的平稳分布,下式被称为细致平稳条件。

我们引入一个接受率

,就可以把原来具有转移矩阵

的一个很普通的马氏链,改造成具有转移矩阵

的马氏链,而

恰好满足细致平稳条件,由此马氏链

的平稳分布就是p(x)。

MCMC采样的过程

  1. 首先随机初始化初始状态 (假设是三维)
  2. 然后按照状态转移矩阵,采样 , ~
  3. 接着从均匀分布采样u,若 ,那么就接受转移;否则不接受转移,原地踏步
  4. 收敛之后的采样就是满足要求的。

因为

可能偏小,所以在采样过程中马氏链容易原地踏步,所以会用在等式两边同时乘以一个数的方式扩大接受率。这就是M-H采样。

6.2 Gibbs Sampling

MCMC采样和M-H采样存在两个问题:

  1. 对于高维的情形,由于接受率 的存在,所以效率并没有很高,那是否能找到一个转移矩阵Q使接受率为1呢
  2. 有可能我们采样了上百万次马尔可夫链还没有收敛,也就是上面这个n1要非常非常的大,这让人难以接受

Gibbs采样的过程

  1. 首先随机初始化初始状态 (假设是三维)
  2. 然后按照条件概率,采样 , ~
  3. 采样 , ~
  4. 采样 , ~
  5. 采样得到的数据就是满足要求的

我们发现,Gibbs采样没有接受率的限制也无需等到马氏链收敛。,它与MCMC在采样流程上的区别是它是每个维度依次采样的。

为什么Gibbs采样没有接受率的限制,因为在

这条平行于y轴的直线上,如果使用条件分布

作为任何两个点之间的转移概率,那么任何两个点之间的转移满足细致平稳条件。

7. LDA 中主题数目如何确定?

在 LDA 中,主题的数目没有一个固定的最优解。模型训练时,需要事先设置主题数,训练人员需要根据训练出来的结果,手动调参,有优化主题数目,进而优化文本分类结果。

到此这篇lda主题模型(LDA主题模型介绍)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 越狱源(越狱源sileo)2026-04-27 11:27:08
  • Ubuntu镜像站同步(ubuntu镜像源配置)2026-04-27 11:27:08
  • win32是什么意思(windows32是什么意思)2026-04-27 11:27:08
  • 打开目录导航的命令(如何打开目录导航)2026-04-27 11:27:08
  • 密码库网站(简单密码库)2026-04-27 11:27:08
  • 动态库和静态库的区别(动态库与静态库的区别)2026-04-27 11:27:08
  • hpool怎么读(hpoi怎么读)2026-04-27 11:27:08
  • 反编译exe文件工具ilspy(反编译exe文件成源码)2026-04-27 11:27:08
  • 文件比较工具 查重(文件比较工具 查重怎么弄)2026-04-27 11:27:08
  • m哈是什么意思(么哈是什么)2026-04-27 11:27:08
  • 全屏图片