主题模型LDA

多项分布和狄利克雷分布

多项分布

某随机实验如果有k个可能结局A1、A2、…、Ak,分别将他们的出现次数记为随机变量X1、X2、…、Xk,它们的概率分布分别是p1,p2,…,pk,那么在n次采样的总结果中,A1出现n1次、A2出现n2次、…、Ak出现nk次的这种事件的出现概率P有下面公式:

<nobr> P(X1=n1,...,Xk=nk)={n!n1!...nk!pn11...pnkk0,ki=1ni=n;,otherwise </nobr>

另一种形式写为:
<nobr> P(X1=n1,...,Xk=nk)=n!i=1kpniini!0,ki=1ni=n;,otherwise </nobr>

多项分布可以看作时候二项分布推广到多维的形式

狄利克雷分布

dirichlet distribution就是由2种结果bernoulli trial导出的beta distribution外推到k种的generalization
K阶段狄利克雷分布的概率密度函数如下:
<nobr> f(x1,...,xK;a1,...,aK)=1B(a)Kk=1pak1k,pk[0,1] </nobr>
简记为
<nobr> Dir(p|a)=1B(a)Kk=1pak1k </nobr>,其中
<nobr> B(a)=k=1KΓ(ak)Γ(k=1Kak) </nobr>
期望
<nobr> E(pi)=aik=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=1Kpa1k </nobr>
其中
<nobr> Bk(a)=ΓK(ak)Γ(Ka) </nobr>
对称狄利克雷分布性质

  • <nobr> a=1 </nobr>,退化为均匀分布(类比Beta(1,1))
  • <nobr> a>1 </nobr>时, <nobr> p1=p2=...=pk </nobr>的概率增加(更偏向于各分量取值相同)
  • <nobr> a<1 </nobr>时, <nobr> pi=1,pi=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=1kxai1i </nobr>
另有似然函数
<nobr> p(y|x)Multi(x) </nobr>
则后验概率
<nobr> p(x|y)1Zi=1kxai+ni1i </nobr>
与Dirichlet分布形式一致。

主题模型

主题模型是一族生成式有向图模型,主要用于处理离散型的数据(如文本集合)。LDA是主题模型的典型代表。

基本概念

词word是待处理数据的基本离散单元。
文档document是待处理的数据对象,由一组词组成,这些词在文档是不计顺序的。
话题topic表示一个概念,表示为一系列相关的词,以及它们在该概念下出现的概率。

LDA中的两个关键要素

  • 一系列关于词语的分布(topics)
  • 每个文档有一个话题的分布

LDA生成过程

  • 生成每个话题,就是一个词语的分布
    <nobr> βkDirichlet(γ),k=1,...,K </nobr>
  • 对于每一个文档,生成一个关于话题的分布
    <nobr> θdDirichelet(a),d=1,...,D </nobr>
  • 对于第d篇文档中的第n各词语 <nobr> xdn </nobr>
    1. 将其分配给一个主题
      <nobr> cdnDiscrete(θd) </nobr>
    2. 从选择的话题中生成词语
      <nobr> xdnDisccrete(βcdn) </nobr>

LDA和矩阵分解

对于一篇特定的文档d,如何计算 <nobr> P(xdn=i|β,θd) </nobr>?
通过将话题的簇分配积分得到。

<nobr> P(xdn=i|β,θ)=k=1KP(xdn=i,cdn=k|β,θd)=k=1KP(xdn=i|β,cdn=k)P(cdn=k|θd)=k=1Kβkiθdk </nobr>

现在令 <nobr> B=[β1,...,βK] </nobr> <nobr> Θ=[θ1,...,θD] </nobr> ,则 <nobr> P(xdn=i|β,θ)=(BΘ)id </nobr>
换句话说,我们可以通过一个由两个含有非负项的矩阵相乘得到的矩阵得到。
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
三年之期已到我的offer快到碗里来:9硕都比不上9本
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务