前言
要理解LDA,需要先了解以下知识:
- 一个函数:gamma函数
- 四个分布:二项分布、多项分布、beta分布、Dirichlet分布
- 一个概念和一个理念:共轭先验和贝叶斯框架
- 两个模型:pLSA、LDA
- 一个采样:Gibbs采样
LDA模型生成一篇文档的方法如下: - 从狄利克雷分布 α \alpha α 中取样生成文档 i 的主题分布 θ ( i ) \theta(i) θ(i)
- 从主题的多项式分布 θ ( i ) \theta(i) θ(i)中取样生成文档i第 j 个词的主题 z i , j z_{i,j} zi,j
- 从狄利克雷分布 β \beta β中取样生成主题 z i , j z_{i,j} zi,j对应的词语分布 Φ z ( i , j ) \varPhi_{z(i,j)} Φz(i,j)
- 从词语的多项式分布
Φ
z
(
i
,
j
)
\varPhi_{z(i,j)}
Φz(i,j)中采样最终生成词语
w
i
,
j
w_{i,j}
wi,j
-
二项分布
是重复n次的伯努利试验(一个有两种结果的简单试验,概率分别为p,q)得到的一个离散型的随机概率分布,其各中结果的概率取值对应以下二项式的展开项:
( p + q ) n = p n + . . . + ( i n ) q i p n − i + . . . . + q n (p+q)^{n}=p^{n}+...+\dbinom{i}{n}q^{i}p^{n-i}+....+q^{n} (p+q)n=pn+...+(ni)qipn−i+....+qn
其中p+q=1;且上式第 i 项表示概率p对应的结果出现i次,概率q对应的结果出现n-i次
多项分布
是二项分布在多维上的扩展,事件的结果不在是两种,可能有k中,每种结果出现的概率为 p 1 , p 2 , . . . , p k p_1,p_2,...,p_k p1,p2,...,pk, ∑ 1 ≤ i ≤ k p i = 1 \sum_{1\le i\le k} p_{i}=1 ∑1≤i≤kpi=1,先重复该事件n次得到 一个离散型的随机概率分布,其各种结果的概率值对应以下多项式的展开项:
( p 1 + p 2 + . . . + p k ) n = [ ( p 1 + p 2 + . . + p k − 1 ) + p k ] n = ( p 1 + p 2 + . . + p k − 1 ) n + . . . + ( i n ) p k i ( p 1 + p 2 + . . + p k − 1 ) n − i + . . . + p k n (p_1+p_2+...+p_k)^n=[(p_1+p_2+..+p_{k-1})+p_k]^n=(p_1+p_2+..+p_{k-1})^n+...+\dbinom{i}{n}p_k^{i}(p_1+p_2+..+p_{k-1})^{n-i}+...+p_k^n (p1+p2+...+pk)n=[(p1+p2+..+pk−1)+pk]n=(p1+p2+..+pk−1)n+...+(ni)pki(p1+p2+..+pk−1)n−i+...+pkn
按前一步方法以二项式的形式继续展开,每项的连乘积约分后得到每种结果的概率,以下是 p 1 , p 2 , . . . p k 概 率 对 应 结 果 出 现 次 数 为 m 1 , m 2 , . . . m k p_1,p_2,...p_k概率对应结果出现次数为m_1,m_2,...m_k p1,p2,...pk概率对应结果出现次数为m1,m2,...mk( ∑ 1 ≤ i ≤ k m i = n \sum_{1\le i\le k} m_{i}=n ∑1≤i≤kmi=n)的概率:
P ( m 1 , m 2 , . . . m k ) = n ! m 1 ! m 2 ! . . m k ! p 1 m 1 p 2 m 2 . . . p k m k P(m_1,m_2,...m_k)=\frac{n!}{m_1!m_2!..m_k!}p_1^{m_1}p_2^{m_2}...p_k^{m_k} P(m1,m2,...mk)=m1!m2!..mk!n!p1m1p2m2...pkmk
先验分布
简言之,就是关于某未知参数θ,通过先验信息(在实验之前对所要估计的未知参数θ所了解的信息,通常称为先验信息.)得到的一个关于θ的分布形式用P(θ)来表示,此分布p(θ)称为未知参数θ的先验分布.(即在实验前通过已知信息知道的分布)
后验分布
似然估计
似然估计用来描述在已知随机变量输出结果时,估计未知参数的可能取值;似然函数是以函数的形式表示估计未知参数可能的取值;例如,对于“一枚硬币上抛十次”这种事件,我们可以问这枚硬币正反面对称的“似然”程度是多少。给定输出x时,关于未知参数θ的似然函数L(θ|x)(在数值上)等于给定参数θ后变量X的概率:
L(θ|x)=P(X=x|θ)
后验分布
在抽样之前,人们对未知参数θ有个了解,即先验分布P(θ);抽样后得到样本相关信息可用来估计未知参数θ的可能取值,即似然函数L(θ|X=x);由于样本中包含未知参数θ的信息,可以修正抽样之前的关于未知参数θ的先验分布P(θ) 得到后验分布P(θ|X),后验分布综合运用了先验分布P(θ)和样本信息P(X|θ)。
共轭分布
在贝叶斯概率理论中,若后验概率P(θ|X)和先验概率P(θ)属于同类分布(形式相同,参数不同),则先验分布和后验分布被叫做共轭分布,同时,先验分布叫做似然函数的共轭先验分布。
共轭分布总是针对分布中的某个参数θ而言
Beta分布
参考这篇文章
Beta分布是二项分布的共轭先验分布,具体表示一组定义在(0,1)区间的连续概率分布,其概率密度函数如下(
α
和
β
为
参
数
\alpha和\beta为参数
α和β为参数):
f ( x , α , β ) = x α − 1 ( 1 − x ) β − 1 ∫ 0 1 u α − 1 ( 1 − u ) β − 1 d u = Γ ( α + β ) Γ ( α ) Γ ( β ) x α − 1 ( 1 − x ) β − 1 = 1 B ( α , β ) x α − 1 ( 1 − x ) β − 1 f(x,\alpha,\beta)=\frac{x^{\alpha-1}(1-x)^{\beta-1}}{\int_{0}^{1}u^{\alpha-1}(1-u)^{\beta-1}du}=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}x^{\alpha-1}(1-x)^{\beta-1}=\frac1{B(\alpha,\beta)}x^{\alpha-1}(1-x)^{\beta-1} f(x,α,β)=∫01uα−1(1−u)β−1duxα−1(1−x)β−1=Γ(α)Γ(β)Γ(α+β)xα−1(1−x)β−1=B(α,β)1xα−1(1−x)β−1
其中 Γ ( x ) 为 G a m m a 函 数 ( 表 示 阶 乘 数 列 在 实 数 集 上 的 扩 展 ) \Gamma(x)为Gamma函数(表示阶乘数列在实数集上的扩展) Γ(x)为Gamma函数(表示阶乘数列在实数集上的扩展)
Γ ( x ) = ∫ 0 + ∞ t x − 1 e − t d t \Gamma(x)=\int_{0}^{+\infty}t^{x-1}e^{-t}dt Γ(x)=∫0+∞tx−1e−tdt
Dirichlet分布
是多元的Beta分布,是Beta分布在高维上的扩展,我的理解是:Beta分布和Dirichlet分布的关系类似于二项分布和多项分布的关系;那么,Dirichlet分布就是多项分布的共轭先验分布。
理解案例:Dirichlet分布可以看做是某个概率分布之上的概率分布。如何理解这句话,我们可以先举个例子:假设我们有一个骰子,其有六面,分别为{1,2,3,4,5,6}。现在我们做了10000次投掷的实验,得到的实验结果是六面分别出现了{2000,2000,2000,2000,1000,1000}次,如果用每一面出现的次数与试验总数的比值估计这个面出现的概率,则我们得到六面出现的概率,分别为{0.2,0.2,0.2,0.2,0.1,0.1}。现在,我们还不满足,我们想要做10000次试验,每次试验中我们都投掷骰子10000次。我们想知道,骰子六面出现概率为{0.2,0.2,0.2,0.2,0.1,0.1}的概率是多少(说不定下次试验统计得到的概率为{0.1, 0.1, 0.2, 0.2, 0.2, 0.2}这样了)。这样我们就在思考骰子六面出现概率分布这样的分布之上的分布。而这样一个分布就是Dirichlet分布。[案例参考自deropty])
Dirichlet分布的概率密度函数如下(
α
i
为
参
数
\alpha_i为参数
αi为参数):
f ( x 1 , x 2 , . . . , x k ; α 1 , α 2 , . . . , α k ) = 1 B ( α ) ∏ i = 1 k x i α i − 1 ( 其 中 α = ( α 1 , α 2 , . . , α k ) ) f(x_1,x_2,...,x_k;\alpha_1,\alpha_2,...,\alpha_k)=\frac{1}{B(\alpha)}\prod_{{i=1}}^{{k}}x_i^{\alpha_i-1} (其中\alpha=(\alpha_1,\alpha_2,..,\alpha_k)) f(x1,x2,...,xk;α1,α2,...,αk)=B(α)1∏i=1kxiαi−1(其中α=(α1,α2,..,αk))
其中
B ( α ) = ∏ i = 1 k Γ ( α i ) Γ ( ∑ i = 1 k α i ) , ∑ i = 1 k x i = 1 B(\alpha)=\frac{\prod_{i=1}^k\Gamma(\alpha^i)}{\Gamma(\sum_{{i=1}}^{{k}}\alpha^i)},\sum_{i=1}^kx_i=1 B(α)=Γ(∑i=1kαi)∏i=1kΓ(αi),∑i=1kxi=1
按照贝叶斯推理的逻辑:
1.
我
们
要
猜
测
参
数
p
→
=
(
p
1
,
p
2
,
p
3
)
,
其
先
验
分
布
为
D
i
r
(
p
→
∣
k
→
)
1. 我们要猜测参数\overrightarrow{p}=(p_1,p_2,p_3),其先验分布为Dir(\overrightarrow{p}|\overrightarrow{k})
1.我们要猜测参数p=(p1,p2,p3),其先验分布为Dir(p∣k);
2.
数
据
Y
i
落
到
三
个
区
间
[
0
,
p
1
)
,
[
p
1
,
p
2
]
,
(
p
3
,
1
]
的
个
数
分
别
为
m
1
,
m
2
,
m
3
,
所
以
m
→
=
(
m
1
,
m
2
,
m
3
)
服
从
多
项
分
布
M
u
l
t
(
m
→
∣
p
→
)
2. 数据Y_i落到三个区间[0,p_1),[p_1,p_2],(p_3,1] 的个数分别为m_1,m_2,m_3,所以\overrightarrow{m}=(m_1,m_2,m_3)服从多项分布Mult(\overrightarrow{m}|\overrightarrow{p})
2.数据Yi落到三个区间[0,p1),[p1,p2],(p3,1]的个数分别为m1,m2,m3,所以m=(m1,m2,m3)服从多项分布Mult(m∣p);
3.
在
给
定
了
来
自
数
据
提
供
的
知
识
m
→
后
,
p
→
的
后
验
分
布
变
为
D
i
r
(
p
→
∣
k
→
+
m
→
)
3. 在给定了来自数据提供的知识\overrightarrow{m}后,\overrightarrow{p}的后验分布变为Dir(\overrightarrow{p}|\overrightarrow{k}+\overrightarrow{m})
3.在给定了来自数据提供的知识m后,p的后验分布变为Dir(p∣k+m)
上述贝叶斯分析过程的直观表述为:
D i r ( p → ∣ k → ) + M u l i t C o u n t ( m → ) = D i r ( p → ∣ k → + m → ) Dir(\overrightarrow{p}|\overrightarrow{k})+MulitCount(\overrightarrow{m})=Dir(\overrightarrow{p}|\overrightarrow{k}+\overrightarrow{m}) Dir(p∣k)+MulitCount(m)=Dir(p∣k+m)
其中:
D i r ( p → ∣ α → ) = Γ ( ∑ k = 1 K α k ) ∏ k = 1 K Γ ( α k ) ∏ k = 1 K p k α k − 1 Dir(\overrightarrow{p}|\overrightarrow{\alpha})=\frac{\Gamma(\sum_{k=1}^K\alpha_k)}{\prod_{k=1}^K \Gamma(\alpha_k)}\prod_{k=1}^Kp_k^{\alpha_k-1} Dir(p∣α)=∏k=1KΓ(αk)Γ(∑k=1Kαk)∏k=1Kpkαk−1
M u l i t C o u n t ( n → ∣ p → , N ) = ( N n → ) ∏ k = 1 K p k n k MulitCount(\overrightarrow{n}|\overrightarrow{p},N)=\dbinom{N}{\overrightarrow{n}}\prod_{k=1}^Kp_k^{n_k} MulitCount(n∣p,N)=(nN)∏k=1Kpknk
其思考问题的固定模型:
先 验 概 率 π ( θ ) + 样 本 信 息 χ    ⟹    后 验 分 布 π ( θ ∣ x ) 先验概率\pi(\theta) +样本信息\chi\implies后验分布\pi(\theta|x) 先验概率π(θ)+样本信息χ⟹后验分布π(θ∣x)
上 述 思 考 模 式 意 味 着 , 新 观 察 到 的 样 本 信 息 将 修 正 人 们 以 前 对 事 物 的 认 知 。 换 言 之 , 在 得 到 新 的 样 本 信 息 之 前 , 人 们 对 的 认 知 是 先 验 分 布 π ( θ ) , 在 得 到 新 的 样 本 信 息 后 , 人 们 对 的 认 知 为 π ( θ ∣ x ) 。 上述思考模式意味着,新观察到的样本信息将修正人们以前对事物的认知。换言之,在得到新的样本信息之前,人们对的认知是先验分布\pi(\theta),在得到新的样本信息后,人们对的认知为\pi(\theta|x)。 上述思考模式意味着,新观察到的样本信息将修正人们以前对事物的认知。换言之,在得到新的样本信息之前,人们对的认知是先验分布π(θ),在得到新的样本信息后,人们对的认知为π(θ∣x)。
- 频率派系: 频率派把需要推断的参数θ看做是固定的未知常数,即概率虽然是未知的,但最起码是确定的一个值,同时,样本X 是随机的,所以频率派重点研究样本空间,大部分的概率计算都是针对样本X 的分布;
- 贝叶斯派系: 贝叶斯派的观点则截然相反,他们认为待估计的参数
θ
\theta
θ是随机变量,且服从一定的分布,而样本X 是固定的,由于样本是固定的,所以他们重点研究的是参数的分布。
具体的LDA模型解析可以参考【参考资料1】
参考资料
- LDA的数学知识+模型解析:https://blog.youkuaiyun.com/v_july_v/article/details/41209515
- Beta分布解析:https://blog.youkuaiyun.com/a358463121/article/details/52562940