天天看点

lda数学八卦_LDA主题模型详解(面试的问题都在里面)

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),那么我们从任意一个初始状态

lda数学八卦_LDA主题模型详解(面试的问题都在里面)

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

lda数学八卦_LDA主题模型详解(面试的问题都在里面)

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

lda数学八卦_LDA主题模型详解(面试的问题都在里面)

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

细致平稳条件: 如果非周期马氏链的转移矩阵
lda数学八卦_LDA主题模型详解(面试的问题都在里面)
和分布
lda数学八卦_LDA主题模型详解(面试的问题都在里面)
满足下式,且对任意
lda数学八卦_LDA主题模型详解(面试的问题都在里面)
都成立,那么
lda数学八卦_LDA主题模型详解(面试的问题都在里面)
是马氏链的平稳分布,下式被称为细致平稳条件。
lda数学八卦_LDA主题模型详解(面试的问题都在里面)

我们引入一个接受率

lda数学八卦_LDA主题模型详解(面试的问题都在里面)

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

lda数学八卦_LDA主题模型详解(面试的问题都在里面)

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

lda数学八卦_LDA主题模型详解(面试的问题都在里面)

的马氏链,而

lda数学八卦_LDA主题模型详解(面试的问题都在里面)

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

lda数学八卦_LDA主题模型详解(面试的问题都在里面)

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

MCMC采样的过程

  1. 首先随机初始化初始状态
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    (假设是三维)
  2. 然后按照状态转移矩阵,采样
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    ~
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
  3. 接着从均匀分布采样u,若
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    ,那么就接受转移;否则不接受转移,原地踏步
  4. 收敛之后的采样就是满足要求的。

因为

lda数学八卦_LDA主题模型详解(面试的问题都在里面)

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

6.2 Gibbs Sampling

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

  1. 对于高维的情形,由于接受率
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    的存在,所以效率并没有很高,那是否能找到一个转移矩阵Q使接受率为1呢
  2. 有可能我们采样了上百万次马尔可夫链还没有收敛,也就是上面这个n1要非常非常的大,这让人难以接受
Gibbs采样的过程

  1. 首先随机初始化初始状态
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    (假设是三维)
  2. 然后按照条件概率,采样
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    ~
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
  3. 采样
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    ~
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
  4. 采样
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
    ~
    lda数学八卦_LDA主题模型详解(面试的问题都在里面)
  5. 采样得到的数据就是满足要求的

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

为什么Gibbs采样没有接受率的限制 ,因为在
lda数学八卦_LDA主题模型详解(面试的问题都在里面)
这条平行于y轴的直线上,如果使用条件分布
lda数学八卦_LDA主题模型详解(面试的问题都在里面)
作为任何两个点之间的转移概率,那么任何两个点之间的转移满足细致平稳条件。

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

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

关注微信公众号“算法岗从零到无穷”,微信后台回复“LDA”,《LDA数学八卦》送给你!
lda数学八卦_LDA主题模型详解(面试的问题都在里面)