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

引言

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、二项分布

2、多项式分布

3、Gamma分布

Gamma函数Γ(x)具有如下的一些性质:

4、Beta分布

5、Dirichlet分布

注意到Beta分布是特殊的Dirichlet分布,即k=2k=2时的Dirichlet分布。

6、贝叶斯定理

贝叶斯定理中牵涉到概率的一些基本知识,包括:

  • 条件概率
  • 联合概率
  • 边缘概率

7、共轭分布

有了如上的贝叶斯定理,对于贝叶斯派而言,有如下的思考方式:

先验分布+样本信息⇒\Rightarrow 后验分布

二、文本建模

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

1、Unigram Model

1.1、频率派

1.2、贝叶斯派

2、概率主题模型

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

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

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

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

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

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

2.1、频率派

2.2、贝叶斯派

上面介绍的思路中,对于文档选择主题的概率以及依据主题选择每一个词的概率都是固定的数,对于贝叶斯派来说,这是无法接受的,贝叶斯派认为所有的值都是随机变量,因此,在文档对应的主题以及依据指定的主题选择每一个词的概率都服从特定的分布。因此上述的过程可以通过如下的概率图模型表示:

3、LDA训练——Gibbs采样

3.1、Markov Chain的相关概念

3.2、Gibbs采样

这样的情况很容易推广到多维的情况:

上述两张图来自参考文献1。

3.3、LDA训练

LDA的训练过程如下所示:

4、LDA推理

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

两张图来自参考文献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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法原理与实践

文本主题模型之LDA(一) LDA基础

    在前面我们讲到了基于矩阵分解的LSI和NMF主题模型,这里我们开始讨论被广泛使用的主题模型:隐含狄利克雷分布(Latent Dirichlet Allo...

19220
来自专栏ATYUN订阅号

深度学习要点:可视化卷积神经网络

AiTechYun 编辑:yuxiangyu 深度学习中最深入讨论的话题之一是如何解释和理解一个训练完成的模型,尤其是在医疗保健等高风险行业的背景下。“黑盒”这...

1.3K100
来自专栏机器学习算法与Python学习

机器学习(4)之线性判别式(附Python源码)

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 LDA是什么? 线性判别式分析(Li...

42090
来自专栏人工智能LeadAI

如何感性地理解EM算法?

如果使用基于最大似然估计的模型,模型中存在隐变量,就要用EM算法做参数估计。个人认为,理解EM算法背后的idea,远比看懂它的数学推导重要。idea会让你有一个...

39430
来自专栏LhWorld哥陪你聊算法

【机器学习】--LDA初始和应用

LDA是一种 非监督机器学习 技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。它采用了词袋(b...

13230
来自专栏AI科技大本营的专栏

Fast.ai深度学习实战课程 Lesson7 学习笔记:CNN Architectures

本篇是AI100学院此前重点推出的《Fast.ai 深度学习实战课程》(中文字幕)第七节的学习笔记,分享者胡智豪。 如果你对深度学习感兴趣,该系列课程千万不...

47960
来自专栏深度学习思考者

Vehicle Logo Recognition System Based on Convolutional Neural Networks With a Pretraining Strategy

论文笔记Ⅰ 基于卷积神经网络的车辆标记识别系统 考虑文章中一些语法以及用词还挺好,先记录一下,留下来以后可能用到自己的paper中。 Abstract 由...

26580
来自专栏肖洒的博客

彩色图像中的人脸检测

色彩模型vs色彩空间 要解开YCbCr色彩空间这个结,色彩模型(color model)和色彩空间(color space)的区别必须要理解。简单来说两者的关系...

13020
来自专栏智能算法

机器学习三人行(系列十)----机器学习降压神器(附代码)

系列九我们从算法组合的角度一起实战学习了一下组合算法方面的知识,详情戳下链接: 机器学习三人行(系列九)----千变万化的组合算法(附代码) 但是,我们也知道算...

41590
来自专栏机器之心

学界 | 如何通过方差偏移理解批归一化与Dropout之间的冲突

34150

扫码关注云+社区

领取腾讯云代金券