主题模型---理论
主题模型
主要内容
若想做文档的提取,分类,以及发现,做0-1向量得到长度为V的向量。每一个文档的长度都是V维的,保证每个文档对应的0-1向量是一样的,所以不管是喂给logistic回归,还是SVM,随机森林,都是可能得到监督学习模型的。也可以使用朴素贝叶斯进行分类。
对于同样一个词,放在不同的语义中即隐含的意义是不同的,即topic就不同,主题就不同,因此希望将这个词背后的topic拿到手,用这个topic主题所做的model,即主题模型。
所以关键是看这个词背后的主题是什么。
gamma函数
Beta分布
共轭先验分布
若以统计的角度来看待,就是看看在给定样本的时候,谁的参数取值概率最大,谁就是我们要估计的参数,就是最终的目的,这个目的可以通过贝叶斯公式写成如下等式。
共轭先验分布: 如果说先验概率乘以似然概率等于后验概率,而且先验概率与似然概率服从同一个分布,那这个先验分布就叫做似然概率的共轭分布。
抛硬币–到底什么是共轭
它是这个词与本文档的相似程度,这个相似度可以利用主题的词分布,和文档的主题分布,计算出来的。
对称Dirichlet分布的参数分析
、
若现在是K个变量P,即需要有K个a,即a1–ak;只不过可将a都取一样而已。
LDA的解释
首先做一个有向无环图,在节点是概率的情况下,边表示他们之间有这种直接的相关性,这样的图称为有向无环图。即三层贝叶斯网络。
现有1号,到m号文档,每个文档有各自的词的,且词的个数不见得是相同的。因为每篇文档又涉及若干个主题,第m篇文档,长度叫Nm,且都有各自的主题分布。
即主题分布可能是某一个分布采样采出来的。
选择Dirichlet分布进行采样,因为这个分布本身是有一些超参数的a1–ak的,然后确定Dirichlet分布,并从Dirichlet分布中去采样,再采出一个Dirichlet分布来,即就是第i篇文档的主题分布了。
将所有文档都拿出来,做成一个词典,并将词都放进去,将词的总个数记作V,即可以得到20个主题在V个词上的离散分布图了,即主题在V个词上有词分布图,这个词分布是个多项式分布,该多项式分布参数服从Dicichlet分布,记作beta。
即第m个文档的n号词主题是什么。即Zm,n,因为事先做好fan1-fan20的词分布有了,若Z=8,即选择第8号主题的词分布即fan8,词分布是1到V号的很大很大的词分布,从词分布中依据概率选择出一个词既可以了,即第m个文档的n号词就有了,即不断重复,再得到主题分布-----通过词分布采样得到具体的一个词。
LDA,朴素贝叶斯,EMcoke模型都是生成模型。决策树,logistic回归,随机森林,SVM都是判定模型。
问题解决
1、词分布是某一个主题上的词分布,如爱情主题有:蜡烛,花,礼物等与这个主题有关,而贝叶斯与爱情主题无关。
词向量是将一个词映射到n维的向量当中去。
2、我们说的LDA是隐Diriclet模型,专门解决文档的主题模型的。是无监督的模型。
3、假定有20个主题,fan1是第一号主题的词分布等,第m个文档的n号词主题值是什么。即Zm,n是个数字,fanZm,n是第Zm,n号主题的词分布,从该词分布中采样出一个词出来即可,就是wm,n了。
我们是得到某篇文档的主题分布以及这个文档中的每个词属于哪个主题即也有了。将某个词拿出来看有多少属于哪个主题,多少概率属于另一个主题,即看看某一个词与20个主题的相关性,即词分布。看看每个主题中经常出现的词有哪些。看看这大V个词与主题武侠的概率都画出来即得到主题的词分布。
4、
并不是说先算主题分布再算词分布,而是算任何一个文档中的任何一个词属于哪个主题的分布的。若天龙八部有100个词,这100个词任何一个词的主题是什么都算出来。
5这个要学习的参数是:
任何一个词背后的主题是什么,就可以得到任何一个主题词分布,以及任何一个文档的主题分布了。
6、LDA前提假设词之间是独立的,即词袋模型。这并不成立。但是不妨碍LDA做一些事。
7、
8主题与词分布都是多项分布,而主题与词的先验分布都是Dirichlet分布。
9、Zm,n是那个词属于哪个主题,是个数。
10、Wm,n就表示一个具体的词。
详细解释LDA
Gibbs采样
想计算任何一个词背后的主题是什么,应该:这个词与其相邻的词往往属于哪个主题,这个词就有可能属于哪个主题了。将任何词背后的主题是什么进行随机初始化。
即第i号词的主题记作k,即除了i号词以外的其他词的主题我们都知道了。除了第i号词外的词属于这个第k号主题一共出现了多少次。我们要算Wi这个词背后的主题Zi,如这个词Wi在这个文档中出现多次,反正不是一次,我们看看他的周围的词属于第k号主题的出现多少次。若整个文档总共有100个段域,要想算其中一个段域属于某一号词,若发现99个段域中有60个都属于爱情主题,有36个属于武侠,所以这个段域有很大可能属于爱情这个主题的。
比如大理这个词在天龙八部中总会偏向是武侠这个主题,因为段域在那呢。因为天龙八部的主要主题就是武侠,所以大理属于武侠的概率就高。所以现在任何一个词属于某一个主题,除了跟这个词本身的性质有关以外,还与这个词处于的这个文档的性质有关,即要想看第i个词属于第k个主题,看看这个第m个文档除了第i词以外,其他词出现这个主题多少回,如
武侠在这个文档中出现10000次了,那么新的词属于武侠的概率就很大。所以一个是主题词本身的性质,一个是主题本身的性质,二者一乘就是结论。
当我们有了每一个词背后的主题是什么了的时候,如想算第k号主题的主题分布,即第k号主题,词为t的分布,即fank,t,看看这个词在文档中出现多少回,除以总的出现次数,最后加上小小的Beta参数,即做平滑。
同样第m个文档出现第k号主题的词分布为sentam,k,即用第m个文档出现第k个主题的次数,除以总的个数,加上a平滑即可。
词分布就是把某一个第t号词看看他出现在第k号主题上有多少个,除以总个数,加上加上小小的Beta参数,即做平滑。
有了fan与senta,然后就可以求概率了。因为都属于Dirichlet分布。
这就是由Beta分布推广的Dirichlet分布。