现在的位置: 首页 > 综合 > 正文

LDA模型和gibbs采样介绍

2019年04月01日 ⁄ 综合 ⁄ 共 2085字 ⁄ 字号 评论关闭
      一.LDA的介绍

       LDA是一种非监督机器学习技术,可以用来识别大规模文档集(document
collection)或语料库(corpus)中潜藏的主题信息。
它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息。但是词袋方法没有考虑词与词之间的顺序,这简化了问题的复杂性,同时也为模型的改进提供了契机。每一篇文档代表了一些主题所构成的一个概率分布,而每一个主题又代表了很多单词所构成的一个概率分布。
       LDA是一种三层的结构,第一层是文档,第二层是主题,第三层是词语
      有点拗口,举个例子。假设有一个文档集D,我们选取其中的一个文档来说D1,而构成这个D1的就是w1、w2、w3、w4、w5,这里的w就是一个一个的词语了。

      有了上述的符号表示,我们可以有如下的产生文档的过程

      1. 对每一篇文档,从主题分布中抽取一个主题;

      2. 从上述被抽到的主题所对应的单词分布中抽取一个单词;

      3. 重复上述过程直至遍历文档中的每一个单词。

      

         这里面的alpha和beta分别是主题的先验分布和某主题对应的词语的分布的先验分布的参数。

         为什么要用先验分布呢?

         之前我们估计参数的方法往往是max likelihood的方法 即  augmax p( | )   而有贝叶斯学派的观点就是任何参数都是有一个先验分布的,如我抛硬币连续抛10次,每次都是正面,那么如果是按照频率学派 max likelihood 的方法估计参数值得到的就是  p(正面)=1,但这显然是不合理的。所以我就要用如下的贝叶斯公式进行参数的推导

                    

       通过这个公式我们就可以看出我们用贝叶斯方法进行预测的推导之后,我们得到观测值就是一个加上先验知识的最大化后验知识 augmax p( | )的参数估计值。

       说了上面的预测参数的方法,显然我们需要对我们LDA中的参数和找到对应的先验知识。接下来介绍如何选取先验知识。

       我们以某一个主题分布和这个主题分布下的词语分布分布为例,来说明如何选取先验知识。这里我们引出共轭先验的知识。

                         

         首先,有先验知识   +  likelihood  =后验知识

        

       对于这个等式,我们看到先验和后验是同一种形式,则我们就说  Dir是MultCount的共轭先验!

       可以看到,如果使用共轭先验作为某一个likelihood的先验知识,那么它的后验分布是无论从计算还是形式上都是很方便的。

       引出了共轭先验的知识,也就到了LDA的核心了,我们为什么会选择Dirichlet 分布做为我们这个模型中参数和的先验知识呢?

          

       原因就是我们的likelihood就是多项式分布!

         

        在看一下这个公式,那么多项分布的共轭先验不就是Dirichlet 分布

        所以可以说Dirichlet 分布就是多项式分布的分布!

        下面解释下为什么我们的参数为什么是多项式分布。以为例,则可以看到我们在选取主题的时候,假设有3个主题,则我们的主题观测结果就是有 主题1多少个,主题2多少个,主题3多少个,这就是一个多项式分布!

        我们假设共有M个主题(K-dim)的分布,K个产生词语分布,则这就是K+M个独立的共轭结构。我们的目标

        二.Gibbs采样

       1.首先为什么要采样?

       这个问题困扰了好久,先说什么是采样。

       采样就是说我们知道了某一种事件的分布,然后想得到这个分布下的数据,而获取这个样本的过程就是采样!打个比方,一枚硬币,我们知道它是均匀分布的,我们想知道100次投掷的一个结果(可能是45正55反,或者54正46反,再或者50正50反.......)。获取这个结果的过程就是采样!

        通过公式的推到我们可以得到:

              

       有了这个联合分布,我们就想知道这个分布的样本,继而再通过这些样本来用ML等方法来估计我们的参数。这就是我们采样的原因---获取已知分布的样本点!

       而采样的过程用了随机过程中关于markov转移矩阵收敛的判别条件以及markov细致平稳条件的判定,这里略过介绍,只需知道核心思想就是利用马氏链的收敛特性,构造一个转移矩阵让它的收敛向量就是我们的概率分布。

       直接给出公式

        

       有了上面的公式,我们就可以通过它进行采样,然后统计采样的结果,这里用均值代替ML来估计我们的参数。

      这里面的参数和,是我们在训练后需要用到的数据。它是topic-word的一个分布,对于新的document D,我们只需要重复上面的过程(在更新参数的时候用我们之前的训练的),当topic收敛的时候,就得到一片文章的主题分布了。


抱歉!评论已关闭.