主题模型LDA
孙佩源
2015.06.18
主题模型
人构思文章的一种思路
• 首先确定文章主题:比如构思一篇自然语言处理的文章,40%谈语言学、
30%谈概率统计、20%谈计算机、10%谈其他
• 语言学词语:语法、句子、乔姆斯基、句法分析、主义……
• 概率统计词语:概率、模型、均值、方差、证明、独立、马尔科夫链……
• 计算机词语:内存、硬盘、编程、二进制、对象、算法、复杂度……
主题模型
主题模型
数学预备知识
• Gamma function
• Distribution
• Gamma Distribution
• Binomial Distribution
• Multinomial Distribution
• Beta Distribution
• Dirichlet Distribution
• MCMC
• Gibbs Sampling
Gamma function A history profile of the gamma function by Philip J. Davis
问题:如何找到一个函数经过阶乘数列的所有点?
Gamma function
• 当前阶乘的定义:
• 那么问题来了
! 1 2 3 ( 1)
1
( )! ?
2
1
(5 )! ?
2
n n n    


L
Gamma function
• Euler偶然间发现如下式子对所有的n都具备良好定义
2 1 3 2 4 3
[( ) ][( ) ][( ) ] !
1 1 2 2 3 3
n n n
n
n n n

  
L
Gamma function
1
1 2 3
lim ( 1)
(1 )(2 ) ( )
( 1)( 2) ( 1)
lim1 2 3
(1 )(2 ) ( 1)( 2) ( )
( 1)
lim !
( 1)( 2) ( )
1
lim !
!
n
m
n
m
n
m
n
m
k
m
m
n n m n
n n m m
n
n n m m m m n
m
n
m m m n
m
n
m k
n





 

  
  
    
    

 
  





L
L
L
L
L L
L
• 上面的式子可以整理如下:
Gamma function
• Euler将1/2代入后得到
• Euler看到 ,根据直觉其一定可以表达为积分形式𝜋
1
( )!
2 2


Gamma function
• 受Wallis计算半圆曲线面积的启发Euler考虑如下定积分:
• 一步分部积分:
1
0
( , ) (1 )e n
J e n x x dx 
1
1
0
1
1 1 1
0 0
1
1 1
0
1
( , ) (1 )
1
1
(1 ) | (1 )
1
(1 )
1
( +1, -1)
1
n e
n e e n
e n
J e n x dx
e
x x x d x
e
n
x x dx
e
n
J e n
e

 
 
 

    
  
 






Gamma function
• 迭代上式可得:
1
0
1
1
/
0
1 2 n
( , )
( 1)( 2) ( 1)
1 2 n
(1 )
( 1)( 2) ( 1)
:
1 2 n
(1 )
( 1) ( 1 )( 2 ) ( ( 1) )
e n
n
f e n
J e n
e e e n
x x dx
e e e n
fsubstitute for e
g
g
x x dx
f n g f g e g e n g



   

 
   

  
         


L
L
L
L
L
L
Gamma function
• 似乎令f=1,g=0就可以得到右侧上面的n!,但是:
• 继续将x替换为 :
1
0
1 1
( 1) (1 )
0
n
n n
f n g x dx x
g  
   
g
f g
x 
1
1
1 0
( 1)
(1 )
( 1) 1
( )
( )
g f g n
n
ng f g
n
f n g g
dx x
g f g
f n g x
dx
f g g f g




  


   

 


Gamma function
• 再次令f=1, g=0
• 对于 ,当z趋近于0时,由洛必达法则,上下同时求导:
• 替换 u
t e

0
! n u
n u e du


 
0
(1 )
0
n
n
x
dx


(1 )z
x z
0
1
0
(1 ) 0 ln
! ( log )n
x x
n t dt
  
 
Gamma function
• 至此,得到Gamma函数的常用表达式
1
0
( ) x t
x t e dt

 
  
Gamma distribution
• 由Gamma函数定义简单变换可得:
• 经常做变换 :
1
0
1
( )
x
x e
dx


 



x t
1
( | , )
( )
t
t e
Gamma t
  

 

 


Binomial Distribution
• 重复n次的伯努利试验,事件发生的概率为P,记为:
( , )
( ) (1 )k n k
x b n p
n
p x k p p
k
 
   
 
:
Multinomial Distribution
• 单次重复试验中变量取值不再是0-1,而是多种离散可能,满足:
1
1
1 2 1 2 1
1
1
!
( , , , ; , , , , )
! !
k
k
i
i
xx
k k k
k
p
n
p x x x n p p p p p
x x




L L L
L
Beta Distribution
问题一:
Beta Distribution
初步尝试:
• 假设 , 落在单位区间 ,即如下事件:( )kX [ , ]x x x 
Beta Distribution
• 求解:
• 和事件E等价的事件由排列组合可得共有:
1
1
n
n
k
 
 
 
Beta Distribution
推广情况:
• 假设有2个数落在单位区间 ,即如下事件:[ , ]x x x 
Beta Distribution
• 求解:
Beta Distribution
• 求解 的概率密度函数:( )kX
Beta Distribution
• 利用Gamma函数
• 取 ,则可得一般意义上的Beta分布
记为: ( | , 1)Beta p k n k 
Beta Distribution
• 问题一求解:
求极值
Beta-Binomial Conjugate Distribution
问题二:
Beta-Binomial Conjugate Distribution
1. 在 中第k大
2. 则为第k+m1大
基于以上由前述Beta分布推导过程可知:
的概率密度函数为
1( ) 1m n k m   
Beta-Binomial Conjugate Distribution
• 对比问题一求解的概率函数为:
• 做了m次贝努利实验,计数比p小的事件和比p大的事件
• 给定实验结果后,p的后验分布变为:
( | , 1)Beta p k n k 
1 2( | , 1 )Beta p k m n k m   
Beta-Binomial Conjugate Distribution
• 直观的
• 参数的先验分布和后验分布都能保持Beta分布的形式:共轭分布
Beta-Binomial Conjugate Distribution
• 例子:
• Bayesian公式
投掷一枚硬币,Theta概率为正面,1-Theta概率为反面,投掷5次3次为正面,估计Theta?
( | ) ( )
( | )
( )
p X p
p X
p X
 
 
不再是一个固定的值,而是服从一
个概率分布,比如Beta分布二项分布
5 3 2
2( | ) (1 )p X C   
边缘分布
1
0
( ) ( | ) ( )p X p X p d   
Beta-Binomial Conjugate Distribution
• 例子:
• Bayesian公式
投掷一枚硬币,Theta概率为正面,1-Theta概率为反面,投掷5次均为正面,估计Theta?
( | ) ( )
( | )
( )
p X p
p X
p X
 
 
Beta-Binomial Conjugate Distribution
问题二求解:
求极值1 2( | , 1 )Beta p k m n k m   
Dirichlet Distribution
• 问题三:
Dirichlet Distribution
• 问题三求解:
1 2 1 2
1 2 1 2
1 1 1 1 2
1 2 3
1 2
1 1 1 2
1 2 3
1 2 1 2
2 11
( )
1 11 1
!
( )
( 1)!( 1)!( )!
k k n k k
k k n k k
n n kn n
x x x x
k k
n
x x x x
k k n k k
    
    
       
           
 
   
Dirichlet Distribution
• 概率密度函数:
• 令 ,则密度函数可写为:
• 三维形式的Dirichlet分布,记为:
1 1 2 2 3 1 2, , 1k k n k k       
1 2 3 1 2 3,Dir x x x   ( , | , , )
Dirichlet-Multinomial Conjugate Distribution
• 问题四:
Dirichlet-Multinomial Conjugate Distribution
• 根据条件1、2可知: 在 中分别成了第
大的数
• 则后验概率为:
1 2,p p 1 2 1 2, , , , , ,n mX X X Y Y YL L
1 1 2 2,k m k m 
1 1 2 2 1 2 3, 1Dir p k m k m n k k m     
r
( | , )
Dirichlet-Multinomial Conjugate Distribution
• 直观的:
1. 猜测参数 ,先验分布为:
2. 经过试验获取结果
3. 后验分布为:
1 2 3( , , )p p p p
r
( | )Dir p k
rr
1 2 3( , , )m m m m
r
( | )Dir p k m
rr r
Dirichlet Distribution为Multinomial Distribution的Conjugate Prior
MC (Monte Carlo)
• 许多科学问题需要计算积分:
• 将其变为某随机变量的期望
• 则积分可以化为采样 的样本然后累加:
( )
b
a
I f x dx 
1 1
( )1
( )
( )
n n
i
i
i ii
f x b a
I f x
n g x n 

  
( )g x( 为密度函数)
( )
( )
( )
b
a
f x
I g x dx
g x
 
( )g x
MCMC (Markov Chain Monte Carlo)
• 马尔科夫链:
状态转移仅依赖于前一个状态
MCMC (Markov Chain Monte Carlo)
• 直观例子:
MCMC (Markov Chain Monte Carlo)
• 直观例子:
收敛
MCMC (Markov Chain Monte Carlo)
• 换一个初始概率分布:
收敛到同一个状态
仅和概率转移矩阵有关,与初始概率分布无关
MCMC (Markov Chain Monte Carlo)
• 直观例子:
MCMC (Markov Chain Monte Carlo)
• 细致平稳分布条件:
非周期马氏链的转移矩阵P和分布 满足
则 为平稳分布
( )x
, ,( ) ( )i j j ii P j P 
( )x
MCMC (Markov Chain Monte Carlo)
• 通过建立一个平稳分布为 的马氏链来得到 的样本
1. 在观测样本上选一个合适的马尔科夫链,使其转移核为
合适的含义是 是其相应的平稳分布(满足细致平稳分布条件)
2. 由观测样本上的某一点 出发,用1中的马尔科夫链产生序列
3. 对某个m和足够大的n,任一函数f(x)的期望估计如下:
( )x ( )x
(*|*)p
( )x
(0)
X (0) ( )
, n
X XL
( )
1
1ˆ ( )
n
t
t m
E f f X
n m

 



Metropolis-Hastings采样算法
Metropolis-Hastings采样算法
• 如何构造 为平稳分布的转移核?(满足细致平稳条件)
通常
• 引入 ,使其满足细致平稳条件
• Metropolis-Hastings算法选取的 ,可以证明其满足上式
(分别证明第一项大于、等于、小于1三种情况)
( )x
( ) ( , ) ( ) ( , )x q x y y q y x  建议分布
( , )x y
( ) ( , ) ( , ) ( ) ( , ) ( , )x q x y x y y q y x x y   
( , )x y
Gibbs采样算法
• 考察x坐标相同的两个点A和B
• 同理
Gibbs采样算法
• 构造如下转移核:
• 可知满足细致平稳条件:
Gibbs采样算法
二维Gibbs Sampling算法
Gibbs采样算法
• 实际上二维的情况推广到n维也是有效的
LDA
LDA生成M篇文档的过程:
1. 随机选择文档m
2. 由先验分布 生成文档m的主题分布
3. 由主题分布生成第n个词的主题
4. 由先验分布 生成主题 对应的词语分布
5. 由词语分布生成最终的词语
( )Dir 
r
( )Multinomial 
r
,m nz
( )Dir 
r
,m nz ( )Multinomial 
r
,m nw
LDA
单词-主题联合概率密度
• 由前述Dirichlet-Multinomial共轭性质可知:
整个预料中topics生成概率:
主题分布先验参数
文档m中各个主题词语权重比例
单词-主题联合概率密度
• 由前述Dirichlet-Multinomial共轭性质可知:
整个语料中词语生成概率:
主题k中各个词语频率
词语分布先验参数
单词-主题联合概率密度
• 经过推导Gibbs采样公式为:
单词-主题联合概率密度
• 结合前述两个概率可得:
LDA training
LDA inference

Lda