简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)
  H5KJhu8RQjh0 2023年11月02日 42 0


引言

LDA(Latent Dirichlet Allocation)称为潜在狄利克雷分布,是文本语义分析中比较重要的一个模型,同时,LDA模型中使用到了贝叶斯思维的一些知识,这些知识是统计机器学习的基础。为了能够对LDA原理有清晰的认识,也为了能够对贝叶斯思维有全面的了解,在这里对基本知识以及LDA的相关知识进行阐述,本系列包括两个部分:

  • Latent Dirichlet Allocation——理论篇
  • Latent Dirichlet Allocation——实践篇

在理论篇中将重点阐述贝叶斯相关的知识和LDA的基本思想,基本的知识点包括Gamma函数和分布,Beta函数和分布,Dirichlet函数和分布,贝叶斯定理,Gibbs采样等等。在接下来的文章,我们通过以下几个方面具体介绍LDA的核心思想:

  • 基础知识:二项分布,多项式分布,Gamma分布,Beta分布,Dirichlet分布,贝叶斯定理,共轭分布
  • 文本建模:Unigram Model,概率主题模型,Gibbs采样以及贝叶斯推理

一、基础知识

在贝叶斯思维以及LDA中需要使用到一些概率的知识,下面我们罗列下会使用到的一些基本知识。

1、二项分布

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_多项式

2、多项式分布

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_机器学习_02

3、Gamma分布

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_LDA_03


简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_二项分布_04

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_多项式_05

4、Beta分布

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_概率主题模型_06

5、Dirichlet分布

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_LDA_07

6、贝叶斯定理

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_多项式_08

7、共轭分布

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_机器学习_09

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_多项式_10

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_概率主题模型_11

二、文本建模

对于一篇文章,是文章中出现的次的过程,在文章中,我们已经知道每个词出现的概率,则在省城文章的过程中,我们在词库中根据概率取出每个词,形成一篇文章。

1、Unigram Model

1.1、频率派

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_多项式_12

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_多项式_13

1.2、贝叶斯派

对于贝叶斯派来说,其并不认同上述的求解参数值估计的方法,贝叶斯思维认为,一切的参数都是随机变量,因此上述的选择每个词的概率不是一个确定的值,而是一个随机变量,随机变量就应该服从一个分布。因此参数p⃗ 是由分布P(p⃗ )决定的,该分布称为先验分布。则上述的过程就变成了如下的两个过程:

  • 首先由先验分布P(p⃗ )得到参数的样本p⃗ ;
  • 由参数p⃗ 生成文档。

上述的过程,可以由下面的概率图模型表示:

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_概率主题模型_14

依据上述的观点,则文档的概率可以表示为:


简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_概率主题模型_15

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_LDA_16

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_机器学习_17

2、概率主题模型

前面对文档的生成方式做了简单的介绍,其实在写文章的过程中,每一篇文章都会有一些主题,表示这篇文章主要讲的是关于哪方面的文章,如本篇文章主要是在介绍贝叶斯,LDA等等,而文章的基本组成单元式词,文章的主题则主要表现在词在不同组题的分布上,每一个词是在这些确定的主题上产生的,具体的如下图所示:

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_机器学习_18

文章的主题最终体现在词在每个主题的分布上。在写文章的过程中,首先我们需要做的是确定文章的主题,在确定了文章的主题的前提下,我们产生每一个词,从而构成了整篇文章。

如果要写一篇文章,我们往往是先确定其主题,比如这篇文章是写社会的,还是写的技术类的,或者游记类的,在主题确定的条件下,如要写一篇关于机器学习方面的文章,在确定了主题的条件下,会谈及到损失函数,模型,神经网络,深度学习等等,每个词在这篇文章中的比重会有所不同。这便是文章的生成过程,即:

一篇文章,通常是由多个主题构成的,而每个主题大概可以用于该主题相关的频率最高的一些词来描述。

在上面们提及到一篇文章的生成过程,即:

  • 对于文章选择主题
  • 每个主题下对词汇的选择

2.1、频率派

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_LDA_19

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_二项分布_20

2.2、贝叶斯派

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_LDA_21

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_多项式_22

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_二项分布_23

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_机器学习_24


3、LDA训练——Gibbs采样

3.1、Markov Chain的相关概念

MCMC(Markov Chain Monte Carlo)和Gibbs采样算法是用来生成样本的随机模拟方法,Gibbs采样算法是LDA中参数求解的一种很有效的方法,想要理解Gibbs采样,必须了解以下的几个概念:

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_二项分布_25

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_LDA_26

3.2、Gibbs采样

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_二项分布_27

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_二项分布_28

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_二项分布_29

3.3、LDA训练

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_二项分布_30

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_LDA_31

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_多项式_32

LDA的训练过程如下所示:

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_多项式_33

4、LDA推理

LDA推理的过程与LDA训练的过程类似,具体过程如下所示:

简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)_多项式_34

两张图来自参考文献1。

参考文献

1、LDA数学八卦

2、通俗理解LDA主题模型

3、零基础小白使用LDA模型

4、LDA理解以及源码分析(二)

5、Xuan-Hieu Phan and Cam-Tu Nguyen. GibbsLDA++: A C/C++ implementation of latent Dirichlet allocation (LDA), 2007

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
H5KJhu8RQjh0