主题模型LDA
多项分布和狄利克雷分布
多项分布
某随机实验如果有k个可能结局A1、A2、…、Ak,分别将他们的出现次数记为随机变量X1、X2、…、Xk,它们的概率分布分别是p1,p2,…,pk,那么在n次采样的总结果中,A1出现n1次、A2出现n2次、…、Ak出现nk次的这种事件的出现概率P有下面公式:
另一种形式写为:
多项分布可以看作时候二项分布推广到多维的形式
狄利克雷分布
dirichlet distribution就是由2种结果bernoulli trial导出的beta distribution外推到k种的generalization
K阶段狄利克雷分布的概率密度函数如下:
<nobr> f(x1,...,xK;a1,...,aK)=1B(a→)∏Kk=1pak−1k,pk∈[0,1] </nobr>
简记为
<nobr> Dir(p→|a→)=1B(a→)∏Kk=1pak−1k </nobr>,其中
<nobr> B(a→)=∏k=1KΓ(ak)Γ(∑k=1Kak) </nobr>
期望
<nobr> E(pi)=ai∑k=1Kak </nobr>
协方差
<nobr> Cov(pi,pj)=aia0[i=j]−aiaja20(a0+1) </nobr>
<nobr> a0=∑Kk=1ak </nobr>
对称狄利克雷分布
在对称狄利克雷分布中所有 <nobr> ai </nobr>的取值相同,所以分布可以由唯一的 <nobr> ak </nobr>和阶数K确定。
<nobr> Dir(p→|a,K)=1BK(a)∏k=1Kpa−1k </nobr>
其中
<nobr> Bk(a)=ΓK(ak)Γ(K⋅a) </nobr>
对称狄利克雷分布性质
- 当 <nobr> a=1 </nobr>,退化为均匀分布(类比Beta(1,1))
- 当 <nobr> a>1 </nobr>时, <nobr> p1=p2=...=pk </nobr>的概率增加(更偏向于各分量取值相同)
- 当 <nobr> a<1 </nobr>时, <nobr> pi=1,p−i=0 </nobr>的概率增大,(偏向于某分量取值更大)
共轭性质
类比于二项分布的共轭先验是 <nobr> Beta </nobr>分布,多项分布的共轭先验是狄利克雷分布。
假设参数 <nobr> x=(x1,x2,...,xk) </nobr>有先验分布 <nobr> Dir(K,a1,...,ak) </nobr>,即
<nobr> p(x;a1,...,ak)=1B(a)∏i=1kxai−1i </nobr>
另有似然函数
<nobr> p(y|x)∼Multi(x) </nobr>
则后验概率
<nobr> p(x|y)∼1Z∏i=1kxai+ni−1i </nobr>
与Dirichlet分布形式一致。
主题模型
主题模型是一族生成式有向图模型,主要用于处理离散型的数据(如文本集合)。LDA是主题模型的典型代表。
基本概念
词word是待处理数据的基本离散单元。
文档document是待处理的数据对象,由一组词组成,这些词在文档是不计顺序的。
话题topic表示一个概念,表示为一系列相关的词,以及它们在该概念下出现的概率。
LDA中的两个关键要素
- 一系列关于词语的分布(topics)
- 每个文档有一个话题的分布
LDA生成过程
- 生成每个话题,就是一个词语的分布
<nobr> βk∼Dirichlet(γ),k=1,...,K </nobr> - 对于每一个文档,生成一个关于话题的分布
<nobr> θd∼Dirichelet(a),d=1,...,D </nobr> - 对于第d篇文档中的第n各词语 <nobr> xdn </nobr>
- 将其分配给一个主题
<nobr> cdn∼Discrete(θd) </nobr> - 从选择的话题中生成词语
<nobr> xdn∼Disccrete(βcdn) </nobr>
- 将其分配给一个主题
LDA和矩阵分解
对于一篇特定的文档d,如何计算 <nobr> P(xdn=i|β,θd) </nobr>?
通过将话题的簇分配积分得到。
现在令 <nobr> B=[β1,...,βK] </nobr> , <nobr> Θ=[θ1,...,θD] </nobr> ,则 <nobr> P(xdn=i|β,θ)=(BΘ)id </nobr>
换句话说,我们可以通过一个由两个含有非负项的矩阵相乘得到的矩阵得到。