LDA主题模型
LDA数学八卦学习笔记
数学知识
Gamma函数
Gamma函数的性质
其可以看作阶乘在实数集上的扩展
Gamma分布
由变换 x=bt 取一般形式
Beta/Dirichlet分布
Beta分布
从均匀分布中采样n个随机变量
第k大的变量的概率分布即Beta分布
取 a = k, b = n - k + 1 即可
Beta-Binomial 共轭
此处共轭的意思是,数据符合二项分布的时候,参数的先验分布和后验分布都能保持Beta分布的形式
Dirichlet-Multinomial 共轭
Dirichlet分布是Beta分布的高维扩展
对于三维形式的Dirichlet分布
其含义是从均匀分布中采样的顺序统计量
(X(k1), X(k1+k2))的概率分布
其中
a1 = k1,a2 = k2,a3 = n - k1 - k2 + 1
共轭
当先验符合狄利克雷分布,采样数据符合多项分布的时候,后验概率也是狄利克雷分布
一般形式的狄利克雷分布
Beta/Dirichlet 分布的性质
MCMC 和 Gibbs Sampling
包括指数分布、Gamma分布、t分布、F分布、Beta分布、Dirichlet分布等都能通过均分分布+数学变化得到,但是一些复杂的分布无法直接计算,就需要用MCMC和Gibbs Sampling的方式得到
马尔可夫链和平稳分布
马尔可夫性质即状态的概率转移只依赖于前一个状态
对于绝大多数状态转移矩阵,当转移次数足够多的时候,其每一行都会收敛
对此,有定理
连通的含义不是直接一步可以转移到,而是允许通过间接的方式
Markov Chain Monte Carlo
由于马氏链能收敛到平稳分布,于是有一个很漂亮的想法是:如果我们能构造一个转移矩阵为P的马氏链,使得该马氏链的平稳分布恰好是p(x),所以对于x0,x1,x2,⋯,xn,xn+1,⋯如果这个马尔可夫过程在第n步时已经收敛,那么分布p(x)的样本即为xn,xn+1,⋯
下面介绍的Metropolis-Hastings算法是MCMC的一个改进变种
对于一个状态分布p(x),可以改造马氏链Q为Q',使p(x)为平稳分布
其中a(i, j)可以理解为转移接受概率
于是我们可以得到MCMC采样算法
对正负样本等比例增加采样率,分布不变
于是固定a(i, j)、a(j, i)中的较大值为1,另一值按比例缩放
于是得到 MH 采样算法
Gibbs Sampling
前面介绍的Metropolis-Hastings采样为从指定分布中进行采样提供了一个统一的框架,但是采样的效率依赖于指定的分布的选择,若是选择的不好,会使得接受率比较低,大量的采样被拒绝,影响到整体的收敛速度。
Gibbs采样是Metropolis-Hastings采样算法的特殊形式,即找到一个已知的分布,使得接受率α=1。这样,每次的采样都会被接受,可以提高MCMC的收敛速度。
文本建模
Unigram Model
所以一篇文档的生成概率
一个语料库的概率
Unigram Model 假设文档之间是独立可交换的,而文档之中的词也是独立可交换的,所以又被称为词袋模型
假设语料中的总的词频是N,在所有N个词中,我们关注每个词的发生次数ni,那么可得n服从一个多项式分布
此时语料的概率为
按照频率统计的观点,我们可以最大化p(W),得到参数pi的估计值
对于贝叶斯学派来说
所以语料库的概率为
因为文档服从多项式分布,所以选择其共轭分布Dirichlet分布作为先验分布
所以有如下概率图模型
无需计算,我们得到参数p的后验概率分布
依据前面提到的Dirichlet分布的性质
我们可以估计出pi的值
进一步我们可以计算出文本语料的产生概率
Topic Model ⁄PLSA
PLSA认为一篇文章可以由多个主题混合而成,而每个主题都是词汇上的概率分布, 文章中的每一个词都是由一个固定的主题生成的。
所以游戏规则变成下面这个
图示
对于每一篇文章都有一个特定的主题骰子,所以可得
可以使用著名的EM算法求解该模型
LDA文本建模
LDA的主要思想是在PLSA中加入先验
在Bayesian Unigram Model中我们得到
利用 Dirichlet-Multiomial 共轭结构
我们得到参数 θ 的后验分布
由于m篇文章topics的生成过程独立,我们可以得到整个语料库topics的生成概率
同时LDA的语料生成步骤可以等价为:先选出topic骰子,再合并topic得到word骰子
所以又可以得到一个共轭分布
同样我们可以得到
以及后验概率分布
设 w(k) 表示由topic k 生成的词,z(k)表示topic编号
所以得到整个语料中词生成的概率
结合topic的概率得到
k下标为topic编号,m下标为文档编号
Gibbs Sampling
LDA Gibbs Sampling 公式,推导过程略
Training and Inference
有了LDA模型,当然我们的目标只有两个
- 估计模型的参数
- 对于一篇新来的文档,我们计算这篇文档的topic分布
有了吉布斯采样公式,我们就可以基于语料训练LDA模型,并应用训练的模型对新文档进行语义分析
对于一个新来的文档