Gamma函数

  • 公式
    Γ(x)=∫0+∞e−ttx−1dt\Gamma(x)=\int_0^{+\infty} e^{-t} t^{x-1}dtΓ(x)=∫0+∞​e−ttx−1dt
  • 性质

Γ(x+1)=xΓ(x)\Gamma(x+1)=x\Gamma(x)Γ(x+1)=xΓ(x)
Γ(n)=(n−1)!\Gamma(n)=(n-1)!Γ(n)=(n−1)!

Beta函数

  • 公式
    B(m,n)=∫01xm−1(1−x)n−1dx\Beta(m,n)=\int_0^1 x^{m-1}(1-x)^{n-1}dxB(m,n)=∫01​xm−1(1−x)n−1dx
  • 性质

B(m,n)=Γ(m)Γ(n)Γ(m+n)\Beta(m,n)=\frac{\Gamma(m)\Gamma(n)}{\Gamma(m+n)}B(m,n)=Γ(m+n)Γ(m)Γ(n)​

二项分布

  • 假设在玩CS游戏,你拿着狙击枪,敌人出现你打中敌人的概率是P,打不中敌人的概率是1-P,那么敌人第一次出现你没打中,而第二次出现你打中的概率是(1-P)P。如果敌人出现了n词,而你打中了其k次,而不确定具体是哪k次,这样从n次中任取k次的次数是CnkC_n^kCnk​,而这不确定k次打中敌人的概率是Cnkpk(1−p)n−kC_n^kp^k(1-p)^{n-k}Cnk​pk(1−p)n−k,通过这个例子可以得知二项分布的概率:

    f(k;n,p)=Cnkpk(1−p)n−kf(k;n,p)=C_n^kp^k(1-p)^{n-k}f(k;n,p)=Cnk​pk(1−p)n−k

Beta分布

  • 定义

f(x;a,β)=xa−1(1−x)β−1∫01ua−1(1−u)β−1duf(x;a,\beta)=\frac{x^{a-1}(1-x)^{\beta-1}}{\int_0^1 u^{a-1}(1-u)^{\beta -1} du}f(x;a,β)=∫01​ua−1(1−u)β−1duxa−1(1−x)β−1​
=xa−1(1−x)β−1B(a,β)=\frac{x^{a-1}(1-x)^{\beta -1}}{\Beta(a,\beta)}=B(a,β)xa−1(1−x)β−1​
=Γ(a+β)Γ(a)Γ(β)xa−1(1−x)β−1=\frac{\Gamma(a+\beta)}{\Gamma(a)\Gamma(\beta)}x^{a-1}(1-x)^{\beta -1}=Γ(a)Γ(β)Γ(a+β)​xa−1(1−x)β−1

  • 期望

E(p)=∫01pa(1−p)β−1dpΓ(a,β)=B(a+1,β)B(a,β)E(p)=\int_0^1 \frac {p^a(1-p)^{\beta -1}dp}{\Gamma(a,\beta)}=\frac{\Beta(a+1,\beta)}{\Beta(a,\beta)}E(p)=∫01​Γ(a,β)pa(1−p)β−1dp​=B(a,β)B(a+1,β)​
=Γ(a+1)Γ(β)Γ(a+β+1)Γ(a+β)Γ(a)Γ(β)=\frac{\Gamma(a+1)\Gamma(\beta)}{\Gamma(a+\beta+1)}\frac{\Gamma(a+\beta)}{\Gamma(a)\Gamma(\beta)}=Γ(a+β+1)Γ(a+1)Γ(β)​Γ(a)Γ(β)Γ(a+β)​
=aa+β=\frac{a}{a+\beta}=a+βa​

  • 相似分布

    如果p⃗服从分布Dir(t⃗∣a⃗)\vec p 服从分布 Dir(\vec t | \vec a)p​服从分布Dir(t∣a)则可证明,
    E(p⃗)=(a1∑iai,a2∑iai,⋯)E(\vec p)=\big( \frac{a_1}{\sum_i a_i},\frac{a_2}{\sum_i a_i},\cdots \big)E(p​)=(∑i​ai​a1​​,∑i​ai​a2​​,⋯)

  • 多项分布

    设投掷n次骰子,这个骰子共有六种结果,且1点出现概率为p1p_1p1​,2点出现概率为p2,⋯p_2,\cdotsp2​,⋯多项分布给出了在n次实验中,骰子1点出现x1x_1x1​次,2点出现x2x_2x2​次,3点出现x3x_3x3​次,⋯\cdots⋯,6点出现x6x_6x6​次,这个结果组合的概率为:
    n!x1!x2!⋯xk!p1x1p2x2⋯pkxk\frac{n!}{x_1!x_2!\cdots x_k!}p_1^{x_1}p_2^{x_2}\cdots p_k^{x_k}x1​!x2​!⋯xk​!n!​p1x1​​p2x2​​⋯pkxk​​
    亦可表示为:
    Γ(∑ixi+1)∏iΓ(xi+1)∏ipixi\frac{\Gamma(\sum_i x_i+1)}{\prod_i \Gamma(x_i+1)}\prod_i p_i^{x_i}∏i​Γ(xi​+1)Γ(∑i​xi​+1)​i∏​pixi​​

狄利克雷分布

  • 狄利克雷分布式beta分布在多项式情况下的情况,也就是多项分布的共轭先验分布,其概率密度如下:
    f(p1,p2,⋯ ,pk−1∣a1,a2,⋯ ,ak)=1Δ(a⃗)∏i=1kpai−1f(p_1,p_2,\cdots,p_{k-1}|a_1,a_2,\cdots,a_k)=\frac{1}{\Delta(\vec a)}\prod_{i=1}^kp^{a_i-1}f(p1​,p2​,⋯,pk−1​∣a1​,a2​,⋯,ak​)=Δ(a)1​i=1∏k​pai​−1
    其中的Δ(a⃗)\Delta(\vec a)Δ(a)计算公式如下:
    Δ(a⃗)=∏i=1kΓ(ai)Γ(∑iai)\Delta(\vec a) = \frac {\prod_{i=1}^k \Gamma(a_i)}{\Gamma(\sum_i a_i)}Δ(a)=Γ(∑i​ai​)∏i=1k​Γ(ai​)​

共轭先验分布

  • 所谓共轭,知识我们选取一个函数作为似然函数的先验分布,使得后验分布函数和先验分布函数形式一致。比如Beta分布是二项分布的共轭先验概率分布,而狄更斯分布式多项式分布的共轭先验概率分布。

  1. 参数估计

    对于典型的离散型随机变量分布:二项分布、多项分布;典型的连续性随机变量分布:正态分布。他们都可以看作参数分布,因为他们的函数形式被一小部分参数控制,比如正态分布的均值合方差,二项分布事件发生的概率等。因此,给定一堆观测数据集,我们需要有一个解决方案来确定这些参数值的大小,以便能够利用分布模型做密度估计,这就是参数估计。
    对于参数估计,一直存在两个学派的不同解决方案。一是频率学派解决方案:通过某些优化准则来选定特定参数值;二是贝叶斯学派方案:假定参数服从一个先验分布,通过观测到的数据,使用被也是理论计算对应的后验分布。先验和后验的选择满足共轭,这些分布都是指数簇分布的例子。
    简而言之,假设参数θ\thetaθ也是变量而非常量,而且在做实验前已经服从某个分布,然后现在做新实验去更新这个分布假设。

  2. 从二项分布到beta分布

    二项分布的似然函数
    L(X=s,Y=f∣p)=Cnsps(1−p)fL(X=s,Y=f|p)=C_n^sp^s(1-p)^fL(X=s,Y=f∣p)=Cns​ps(1−p)f
    先验分布beta分布
    P(p∣a,β)=pa−1(1−p)β−1B(a,β)P(p|a,\beta)=\frac{p^{a-1}(1-p)^{\beta -1}}{\Beta(a,\beta)}P(p∣a,β)=B(a,β)pa−1(1−p)β−1​
    计算后验分布
    P(X=s,Y=f,p∣a,β)=ps+a−1(1−p)f+β−1B(s+a,f+β)P(X=s,Y=f,p|a,\beta)=\frac{p^{s+a-1}(1-p)^{f+\beta -1}}{\Beta(s+a,f+\beta)}P(X=s,Y=f,p∣a,β)=B(s+a,f+β)ps+a−1(1−p)f+β−1​

  3. 多项分布到Dirichlet分布

    同上可以证明多项分布与Dirichlet分布共轭

马尔科夫蒙特卡洛

一、 Inverse CDF

  • cdf(累计分布函数)

F(x)=∫−∞xf(x)dxF(x)=\int_{-\infty}^xf(x)dxF(x)=∫−∞x​f(x)dx

高斯的CDF图形


  • 采样
  1. 求F(x)的反函数F−1(y)F^{-1}(y)F−1(y),进而进行采样
  2. 使用uniform(0,1)获取采样点s,进而获取简单计算t=F−1(s)t=F^{-1}(s)t=F−1(s)
  3. 上式计算结果极为采样点
  • 证明
  1. 均匀分布的CDF函数

P(x≤a)=H(x)=x(0≤x≤1)P(x \leq a)=H(x)=x (0\leq x \leq 1)P(x≤a)=H(x)=x (0≤x≤1)

  1. 采样有以下性值

P(x≤s)=P(x≤F(t))=F(t)P(x\leq s)=P(x\leq F(t))=F(t)P(x≤s)=P(x≤F(t))=F(t)

  • 总结

    对概率密度函数fff进行采样可以使用以上方式进行,但是并非所有的CDF都容易求得或其逆容易求得因此使用了其它方法

二、 Reject Sampling

  • 采样类比
  1. 目标分布π(x)\pi(x)π(x),分布q(x)q(x)q(x)和常数MMM,通过对q(x)q(x)q(x)的采样实现对π(x)\pi(x)π(x)采样,满足:

    q(x)q(x)q(x)采样比较容易
    q(x)q(x)q(x)的形状接近π(x)\pi(x)π(x),且∀x,π(x)≤Mq(x)\forall x,\pi(x)\leq Mq(x)∀x,π(x)≤Mq(x),即保证0≤π(x)Mq(x)≤10 \leq \frac{\pi(x)}{Mq(x)}\leq 10≤Mq(x)π(x)​≤1

  • 采样过程
  1. 生成样本x∽q(x)x \backsim q(x)x∽q(x)和 u∽Uniform[0,1]u \backsim Uniform[0,1]u∽Uniform[0,1]
  2. 若u≤π(x)Mq(x)u \leq \frac{\pi(x)}{Mq(x)}u≤Mq(x)π(x)​则接受样本x
  3. 则接受样本服从π(x)\pi(x)π(x)分布
  • 证明
  1. 等价于

    产生样本X∽q(X)X \backsim q(X)X∽q(X)和U∽[0,1]U \backsim[0,1]U∽[0,1]
    Y=Mq(X)UY=Mq(X)UY=Mq(X)U,若Y≤π(X)Y \leq \pi(X)Y≤π(X),则接受X

  2. x的概率密度如下

    px(x)=q(x)p_x(x)=q(x)px​(x)=q(x)

  3. y的概率密度

    F(y∣x)=P(Y≤y∣x)=P(Mq(x)U≤y∣x)=P(U≤yMq(x)∣x)F(y|x)=P(Y\leq y|x)=P(Mq(x)U \leq y|x)=P(U \leq \frac{y}{Mq(x)}|x)F(y∣x)=P(Y≤y∣x)=P(Mq(x)U≤y∣x)=P(U≤Mq(x)y​∣x)

    上式表示在X发生的情况下y发生的情况P(U≤yMq(x))=yMq(x)P(U \leq \frac{y}{Mq(x)})=\frac{y}{Mq(x)}P(U≤Mq(x)y​)=Mq(x)y​
    得到其概率密度函数如下:
    py(y∣x)=1Mq(x)p_y(y|x)=\frac{1}{Mq(x)}py​(y∣x)=Mq(x)1​

  4. 联合密度函数

    p(x,y)=px(x)py(y∣x).=1Mp(x,y)=p_x(x)p_y(y|x).=\frac{1}{M}p(x,y)=px​(x)py​(y∣x).=M1​

  5. 按接受-拒绝采样抽出的随机数d的概率

    F(d∣accept)=P(X≤d∣Y≤π(x))=P(X≤d,Y≤π(x))P(Y≤π(x))=∫−∞dπ(x)dxF(d|accept)=P(X\leq d| Y \leq \pi(x))=\frac{P(X\leq d, Y\leq \pi(x))}{P(Y \leq \pi(x))}=\int_{-\infty}^d\pi(x)dxF(d∣accept)=P(X≤d∣Y≤π(x))=P(Y≤π(x))P(X≤d,Y≤π(x))​=∫−∞d​π(x)dx

  • 缺点

    选择q(x)非常重要,当q(x)q(x)q(x)与π(x)\pi(x)π(x)相差较大时采样效率就会非常低

三、蒙特卡洛采样

  • 细致平稳条件

    π(x∗)K(x∗→x)=p(x)K(x→x∗)\pi(x^*)K(x^* \rightarrow x) = p(x)K(x \rightarrow x^*)π(x∗)K(x∗→x)=p(x)K(x→x∗)

  • 使用的过程

    以一维分布为例
    initialise x0x^0x0
    for i =0 to N-1
    u ~ U(0,1)
    x∗∽q(x∗∣xi)x^* \backsim q(x^*|x^{i})x∗∽q(x∗∣xi)
    ifu&lt;a(x∗)=min(1,π(x∗)q(x∣x∗)π(x)q(x∗∣x))xi+1=x∗if  u &lt; a(x^*)=min(1,\frac{\pi(x^*)q(x|x^*)}{\pi(x)q(x^*|x)})  x^{i+1}=x^*if u<a(x∗)=min(1,π(x)q(x∗∣x)π(x∗)q(x∣x∗)​)  xi+1=x∗
    elsexi+1=xielse  x^{i+1}=x^ielse xi+1=xi

  • 证明其满足detail balance

    需要证明:π(x)K(x→x∗)=π(x∗)K(x∗→x)\pi(x)K(x\rightarrow x^*)=\pi(x^*)K(x^*\rightarrow x)π(x)K(x→x∗)=π(x∗)K(x∗→x)
    K(x→x∗)=q(x∗∣x)min(1,π(x∗)q(x∗∣x)π(x)q(x∗∣x))K(x \rightarrow x^*)=q_(x^*|x)min(1,\frac{\pi(x^*)q(x^*|x)}{\pi(x)q(x^*|x)})K(x→x∗)=q(​x∗∣x)min(1,π(x)q(x∗∣x)π(x∗)q(x∗∣x)​)

    原式转化为
    π(x)K(x→x∗)=π(x)q(x∗∣x)min(1,π(x∗)q(x∗∣x)π(x)q(x∗∣x))\pi(x)K(x\rightarrow x^*)=\pi(x)q(x^*|x)min(1,\frac{\pi(x^*)q(x^*|x)}{\pi(x)q(x^*|x)})π(x)K(x→x∗)=π(x)q(x∗∣x)min(1,π(x)q(x∗∣x)π(x∗)q(x∗∣x)​)
    =min(π(x)q(x∗∣x),π(x∗)q(x∗∣x))=min(\pi(x)q(x^*|x),\pi(x^*)q(x^*|x))=min(π(x)q(x∗∣x),π(x∗)q(x∗∣x))
    =π(x∗)q(x∗∣x)min(1,π(x)q(x∗∣x)π(x∗)q(x∣x∗))=\pi(x^*)q(x^*|x)min(1,\frac{\pi(x)q(x^*|x)}{\pi(x^*)q(x|x^*)})=π(x∗)q(x∗∣x)min(1,π(x∗)q(x∣x∗)π(x)q(x∗∣x)​)
    =π(x∗)K(x∗→x)=\pi(x^*)K(x^* \rightarrow x)=π(x∗)K(x∗→x)

四、Gibbs Sampling

  • 过程

    已知 x1,y1,z1x^1,y^1,z^1x1,y1,z1
    x2∽P(x∣y1,z1)x^2 \backsim P(x|y^1,z^1)x2∽P(x∣y1,z1)
    y2∽P(y∣x2,z1)y^2 \backsim P(y|x^2,z^1)y2∽P(y∣x2,z1)
    z2∽P(z∣x2,y2)z^2 \backsim P(z|x^2,y^2)z2∽P(z∣x2,y2)
    x3∽P(z∣x2,y2)x^3 \backsim P(z|x^2,y^2)x3∽P(z∣x2,y2)

  • 证明Gibbis 与 蒙特卡洛关系

  1. 当采样第i个样本时

π(xi∗∣X−i)=qi(x∗∣x)\pi(x_i^*| X_{-i})=q_i(x^*|x)π(xi∗​∣X−i​)=qi​(x∗∣x)

  • 需证明

π(x∗)qi(x∣x∗)=π(x∗)qi(x∣x∗)\pi(x^*)q_i(x|x^*)=\pi(x^*)q_i(x|x^*)π(x∗)qi​(x∣x∗)=π(x∗)qi​(x∣x∗)

  • 对应的接收率为

π(x∗)q(x∣x∗)π(x)q(x∗∣x)=π(x∗)π(xi∣X−i∗)π(x)π(xi∗∣X−i)\frac{\pi(x^*)q(x|x^*)}{\pi(x)q(x^*|x)}=\frac{\pi(x^*)\pi(x_i|X^*_{-i})}{\pi(x)\pi(x_i^*|X_{-i})}π(x)q(x∗∣x)π(x∗)q(x∣x∗)​=π(x)π(xi∗​∣X−i​)π(x∗)π(xi​∣X−i∗​)​

  • 采样时X−i∗=X−iX^*_{-i}=X_{-i}X−i∗​=X−i​因此有以下公式
    π(xi∗∣X−i∗)π(xi∣X−i∗)π(xi∣X−i)π(xi∗∣X−i)=1\frac{\pi(x_i^*|X^*_{-i})\pi(x_i|X^*_{-i})}{\pi(x_i|X_{-i})\pi(x_i^*|X_{-i})}=1π(xi​∣X−i​)π(xi∗​∣X−i​)π(xi∗​∣X−i∗​)π(xi​∣X−i∗​)​=1

  • 总结

    吉布斯采样可以直接在π(xi∣X−i)\pi(x_i|X_{-i})π(xi​∣X−i​)上依次进行采样

主题模型

  • LDA

    1. LDA是一种无监督的贝叶斯模型
    2. 是一种主题模型,它可以将文档集中的每篇文档的主题按照概率分布的形式给出。同时它是一种无监督学习算法,在训练时不需要手工标注的训练集,需要的仅仅是文档集以及指定主题的数量K即可。此外LDA的另一个优点则是,对于每个主题均可找出一些词语来描述它。
    3. 是一种典型的词袋模型,即它认为一篇文档是由一组词构成的一个集合,词与词之间没有顺序以及先后的顺序,一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。
  • 生成词过程

    例:


    1. a→→θ→m→zm,n\overrightarrow a \rightarrow \overrightarrow \theta_m \rightarrow z_{m,n}a→θm​→zm,n​,这个过程表示在生成m篇文档时,先抽取一个doc-topic骰子θ→m\overrightarrow \theta_mθm​,然后投掷这个筛子生成文档第n个词topic编号zm,nz_{m,n}zm,n​r
    2. β→→φ→k→wm,n\overrightarrow \beta \rightarrow \overrightarrow \varphi_k \rightarrow w_{m,n}β​→φ​k​→wm,n​,这个过程表示如下动作生成第m篇文档中的第n个词:在K个topic-word筛子φ→k\overrightarrow \varphi_kφ​k​中,选择编号为k=zm,nk=z_{m,n}k=zm,n​这个筛子进行投掷,生成单词wm,nw_{m,n}wm,n​
  • LDA模型理解

    LDA生成模型中,M篇文档会对应于M个独立的Dirchlet-Multionmial共轭分布。K个主题会生成K个独立的Dirichlet-Multionmial共轭结构。下面将分析LDA是如何被分解为M+K个Dirichlet-Multionmial共轭结构

  1. 第一个物理过程

    此过程主要时需要获取θ→m\overrightarrow \theta_mθm​,我们知道P(θ→m∣z→m,a→)∝P(θ→m∣a→)P(z→m∣θ→m)P(\overrightarrow \theta_m | \overrightarrow z_m,\overrightarrow a ) \propto P(\overrightarrow \theta_m|\overrightarrow a)P(\overrightarrow z_m| \overrightarrow \theta_m)P(θm​∣zm​,a)∝P(θm​∣a)P(zm​∣θm​)因此我们可以对后面的数据进行优化,操作如下:
    P(z→m∣a→)=∫θ→mP(z→m∣θ→m)P(θ→m∣a→)dθ→m=Δ(n→m+a→)Δ(a→)P(\overrightarrow z_m | \overrightarrow a ) = \int _{\overrightarrow \theta_m}P(\overrightarrow z_m |\overrightarrow \theta_m )P(\overrightarrow \theta_m|\overrightarrow a )d_{\overrightarrow \theta_m}=\frac{\Delta(\overrightarrow n_m+\overrightarrow a)}{\Delta(\overrightarrow a)}P(zm​∣a)=∫θm​​P(zm​∣θm​)P(θm​∣a)dθm​​=Δ(a)Δ(nm​+a)​
    同时θ→m∽Dir(θ→m∣n→m+a→)\overrightarrow \theta_m \backsim Dir(\overrightarrow \theta_m|\overrightarrow n_m+\overrightarrow a)θm​∽Dir(θm​∣nm​+a)且对整个词库而言满足以下公式:
    P(z→∣α→)=∏m=1MP(z→m∣α→)=∏m=1MΔ(n→m+a→)Δ(a→)P(\overrightarrow z | \overrightarrow \alpha)=\prod_{m=1}^MP(\overrightarrow z_m | \overrightarrow \alpha)=\prod_{m=1}^M \frac{\Delta(\overrightarrow n_m+\overrightarrow a)}{\Delta(\overrightarrow a)}P(z∣α)=m=1∏M​P(zm​∣α)=m=1∏M​Δ(a)Δ(nm​+a)​
    注:n→m\overrightarrow n_mnm​表示第m个文档中对应主题所形成的分布,即[n1,n2,⋯&ThinSpace;,nk]m[n_1,n_2,\cdots,n_k]_m[n1​,n2​,⋯,nk​]m​

  2. 第二个物理过程

    此过程主要获取φ→k\overrightarrow \varphi_kφ​k​,我们知道P(φ→k∣w→(k),β→)∝P(φ→k∣β→)P(w→(k)∣φ→k)P(\overrightarrow \varphi_k | \overrightarrow w_{(k)},\overrightarrow \beta ) \propto P(\overrightarrow \varphi_k|\overrightarrow \beta)P(\overrightarrow w_{(k)}| \overrightarrow \varphi_k)P(φ​k​∣w(k)​,β​)∝P(φ​k​∣β​)P(w(k)​∣φ​k​),因此我们需要对后面的数据进行优化,操作如下:
    P(w→(k)∣β→)=Δ(n→k+β→)Δ(β→)P(\overrightarrow w_{(k)}|\overrightarrow \beta)=\frac{\Delta(\overrightarrow n_k + \overrightarrow \beta)}{\Delta(\overrightarrow \beta)}P(w(k)​∣β​)=Δ(β​)Δ(nk​+β​)​
    同时φ→k∽Dir(φ→k∣n→k+β→)\overrightarrow \varphi_k \backsim Dir(\overrightarrow \varphi_k|\overrightarrow n_k+\overrightarrow \beta)φ​k​∽Dir(φ​k​∣nk​+β​)对整个语料而言:
    P(w→∣z→,β→)=∏k=1KΔ(n→k+β→)Δ(β→)P(\overrightarrow w | \overrightarrow z ,\overrightarrow \beta)= \prod_{k=1}^K\frac{\Delta(\overrightarrow n_k + \overrightarrow \beta)}{\Delta(\overrightarrow \beta)}P(w∣z,β​)=k=1∏K​Δ(β​)Δ(nk​+β​)​
    注:n→k\overrightarrow n_knk​表示第k个主题中word形成的分布,即[n1,n2,⋯&ThinSpace;,nN]k[n_1,n_2,\cdots,n_N]_k[n1​,n2​,⋯,nN​]k​

  3. 综合有整个词库中主题、词的联合分布如下:

    P(w→,z→∣α→,β→)=∏k=1KΔ(n→k+β→)Δ(β→)∏m=1MΔ(n→m+a→)Δ(a→)P(\overrightarrow w ,\overrightarrow z | \overrightarrow \alpha ,\overrightarrow \beta)=\prod_{k=1}^K\frac{\Delta(\overrightarrow n_k + \overrightarrow \beta)}{\Delta(\overrightarrow \beta)}\prod_{m=1}^M \frac{\Delta(\overrightarrow n_m+\overrightarrow a)}{\Delta(\overrightarrow a)}P(w,z∣α,β​)=k=1∏K​Δ(β​)Δ(nk​+β​)​m=1∏M​Δ(a)Δ(nm​+a)​

  • 使用Gibbs Sampling法求解P(z→∣w→)P(\overrightarrow z| \overrightarrow w)P(z∣w)

    Gibbs采样需要进行用到P(zi=k,wi=t∣z→−i,w→−i)P(z_i=k,w_i=t|\overrightarrow z_{-i},\overrightarrow w_{-i})P(zi​=k,wi​=t∣z−i​,w−i​),因此需要以下推导:

    有了联合分布p(w→,z→)p(\overrightarrow w, \overrightarrow z)p(w,z),则Gibbs Sampling就可以发挥作用了,语料库z→\overrightarrow zz中的第i个词对应的topic我们记为ziz_izi​,其中i=(m,n)i=(m,n)i=(m,n)表示第m个文本的第n个词,其采样的分布如下:
    P(zi=k,wi=t∣z→−i,w→−i)P(z_i=k,w_i=t|\overrightarrow z_{-i},\overrightarrow w_{-i})P(zi​=k,wi​=t∣z−i​,w−i​)
    由于zi=k,wi=tz_i =k,w_i=tzi​=k,wi​=t只涉及到第m篇文档第k个topic,所以只会涉及到两个Dirichlet-Multinomial共轭结构:

    1. a→→θ→m→z→m\overrightarrow a \rightarrow \overrightarrow \theta_m \rightarrow \overrightarrow z_ma→θm​→zm​
    2. β→→φ→k→w→(k)\overrightarrow \beta \rightarrow \overrightarrow \varphi_k \rightarrow \overrightarrow w_{(k)}β​→φ​k​→w(k)​
  • 减少了词的后验分布变为如下公式:

P(θ→m∣z→−i,w→−i)=Dir(θ→m∣n→m,−i+α→)P(\overrightarrow \theta_m|\overrightarrow z_{-i},\overrightarrow w_{-i}) = Dir(\overrightarrow \theta_m | \overrightarrow n_{m,-i}+\overrightarrow \alpha)P(θm​∣z−i​,w−i​)=Dir(θm​∣nm,−i​+α)
P(φ→k∣z→−i,w→−i)=Dir(φ→k∣n→k,−i+β→)P(\overrightarrow \varphi_k|\overrightarrow z_{-i},\overrightarrow w_{-i}) = Dir(\overrightarrow \varphi_k | \overrightarrow n_{k,-i}+\overrightarrow \beta)P(φ​k​∣z−i​,w−i​)=Dir(φ​k​∣nk,−i​+β​)

  • 则可以推导出:
    P(zi=k∣z→−i,w→)∝∫p(zi=k,wi=t,θ→m,φ→k∣z→−i,w→−i)dθ→mdφ→k=nm,−ik+ak∑k=1K(nm,−ik+ak)nk,−it+βt∑t−1V(nk,−it+βt)P(z_i=k|\overrightarrow z_{-i},\overrightarrow w)\propto \int p(z_i=k,w_i=t,\overrightarrow \theta_m,\overrightarrow \varphi_k| \overrightarrow z_{-i},\overrightarrow w_{-i})d_{\overrightarrow \theta_m} d_{\overrightarrow \varphi_k}=\frac{n_{m,-i}^k+a_k}{\sum_{k=1}^K(n_{m,-i}^k+a_k)} \frac{n_{k,-i}^t+\beta_t}{\sum_{t-1}^V(n_{k,-i}^t+\beta_t)}P(zi​=k∣z−i​,w)∝∫p(zi​=k,wi​=t,θm​,φ​k​∣z−i​,w−i​)dθm​​dφ​k​​=∑k=1K​(nm,−ik​+ak​)nm,−ik​+ak​​∑t−1V​(nk,−it​+βt​)nk,−it​+βt​​

  • 采样过程

    我们的目标如下:

    1. 估计模型中的参数φ→1,⋯&ThinSpace;,φ→K\overrightarrow \varphi_1,\cdots,\overrightarrow \varphi_Kφ​1​,⋯,φ​K​和θ→1,⋯&ThinSpace;,θ→M\overrightarrow \theta_1,\cdots,\overrightarrow \theta_Mθ1​,⋯,θM​
    2. 对于新来的一篇文档d_{new},我们能够计算这篇文档的topic分布θ→new\overrightarrow \theta_{new}θnew​
  • 第一步需要训练LDA以估计参数φ→1,⋯&ThinSpace;,φ→K\overrightarrow \varphi_1,\cdots,\overrightarrow \varphi_Kφ​1​,⋯,φ​K​和θ→1,⋯&ThinSpace;,θ→M\overrightarrow \theta_1,\cdots,\overrightarrow \theta_Mθ1​,⋯,θM​

    1. 随机初始化:对语料中每篇文档中的每个词www,随机的赋一个topci编号为zzz
    2. 重新扫描语料库,对每个词w,按照Gibbs Sampling公式重新采样它的topic,在语料库中重新更新;
    3. 重复以上语料库的重新采样过程直到Gibbs Sampling收敛
    4. 统计语料库的topic-word共现频率矩阵,该矩阵就是LDA的模型了
  • 第二步为估计新文档的topic分布,此时我们认为Gibbs Sampling公式中的φ^kt\hat \varphi_{kt}φ^​kt​部分时稳定不变的,是由训练语料得到的模型提供的,所以采样过程中我们只需要估计该文档的topic部分的θ→new\overrightarrow \theta_{new}θnew​

    1. 随机初始化:对当前文档中的每个词w,随机的赋值一个topic编号z
    2. 重新扫描当前文档,按照Gibbs Sampling公式,对每个词w,重新采样它的topic
    3. 重复以上过程直到Gibbs Sampling收敛
    4. 统计文档中的topic分布,该分配就是θ→new\overrightarrow \theta_{new}θnew​
  • 使用sklearn实现一个LDA算法

  1. 获取数据

     from sklearn.datasets import fetch_20newsgroupsdataset = fetch_20newsgroups(shuffle=True,random_state=1,remove=('headers','footers','quotes'))n_samples = 2000data_samples = dataset.data[:n_samples]
    
  2. 文本处理

     import nltkimport stringfrom nltk.corpus import stopwordsfrom nltk.stem.porter import PorterStemmerdef textPrecessing(text):#小写text = text.lower()#去除特殊标点for c in string.punctuation:text = text.replace(c,' ')#分词wordList = nltk.word_tokenize(text)#去除停用词filtered = [w for w in wordList if w not in stopwords.words('english')]#保留名词与特定POSrefiltered = nltk.pos_tag(filtered)filtered = [w for w,pos in refiltered if pos.startswith('NN')]#词干化ps = PorterStemmer()filtered = [ps.stem(w) for w in filtered]return ' '.join(filtered)docLst = []for desc in data_samples:docLst.append(textPrecessing(desc))
    
  3. 将数据存入文档

     with open('./data.txt','w') as f:for line in docLst:f.write(line+'\n')
    
  4. 词频统计

     from sklearn.feature_extraction.text import CountVectorizerfrom sklearn.externals import joblibtf_vectorizer = CountVectorizer(max_df=0.95,min_df=2,max_features=500,stop_words='english')tf = tf_vectorizer.fit_transform(docLst)joblib.dump(tf_vectorizer,'.\model.pck')
    
  5. LDA训练

     from sklearn.decomposition import LatentDirichletAllocationn_topics = 30lda = LatentDirichletAllocation(n_topics=n_topics,max_iter=50,learning_method='batch')lda.fit(tf)
    
  6. 结果展示

    def print_top_words(model,feature_names,n_top_words):for topic_idx,topic in enumerate(model.components_):print('Topic #%d'%topic_idx)print(' '.join([feature_names[i] for i in topic.argsort()[: -n_top_words -1:-1]]))print(model.components_)n_top_words=20
    tf_feature_names = tf_vectorizer.get_feature_names()
    print_top_words(lda,tf_feature_names,n_top_words)
    

狄利克雷分布、采样方法、主题模型相关推荐

  1. 【LDA】LDA主题模型笔记—主要是狄利克雷

    d表示文章,z表示主题,w表示单词 这里意思是,狄利克雷先验分布 产生 一组 多项式分布集合 也就是说 狄利克雷分布 产生 主题分布 (也就是doc-topic分布)(超参数 α \alpha α情况 ...

  2. 主题模型综述:短文本、细粒度、加入先验知识、作者写作偏好、主题内涵随时间的变迁、融入词嵌入特性、语言模型加持

    原文链接:https://www.zhihu.com/question/34801598/answer/765580727 主题模型当然有用咯,谁用谁知道!这次我来展示下它的7个"变种&qu ...

  3. 图示LDA主题模型(酒店评论数据演示)

    LDA(Latent Dirichlet Allocation)主题建模是NLP确定文档主题方法,为无监督学习方法,当面对多个文档,能挖掘潜在的主题,类似于聚类方法,但又何聚类实质不一样,LDA从概率 ...

  4. 主题模型TopicModel:隐含狄利克雷分布LDA

    http://blog.csdn.net/pipisorry/article/details/42649657 主题模型LDA简介 隐含狄利克雷分布简称LDA(Latent Dirichlet all ...

  5. 狄利克雷分布主题模型LDA

    狄利克雷分布主题模型LDA 文章目录 狄利克雷分布主题模型LDA 1.整体把握LDA 2.前提知识 2.1 gamma函数 2.2 四个分布 2.2.1 二项分布 2.2.2 多项分布 2.2.3 B ...

  6. 无监督-主题模型(TM)/隐语义模型(LFM)(四):LDA(隐狄利克雷分布)【 数据(似然)(多项分布)+先验分布(狄雷分布)-> 后验分布(狄雷分布),后验分布作为下一轮的先验分布】【广泛使用】

    一.LDA简介 1.概述01 LDA(Latent Dirichlet Allocation)模型是一种引入全概率模型的文本主题表示方法,其核心是:根据文本主题分布和主题词语分布的狄利克雷先验假设,结 ...

  7. 主题模型——隐含狄利克雷分布总结

    LDA 1.主题模型LDA简介 2.基础知识 2.1贝叶公式 2.2 Gamma函数 2.3 四个分布 2.3.1 二项分布 2.3.2 多项分布 2.3.3 beta分布 2.3.4 Dirichl ...

  8. 自然语言处理之LDA:文本主题模型之隐含狄利克雷分布(LDA)

    自然语言处理之LDA:文本主题模型之隐含狄利克雷分布(LDA) 一.朴素贝叶斯分析 二.PLSA模型 三. 基本函数知识 3.1 词袋模型 3.2 二项分布 3.3 多项分布 3.4 Gamma函数 ...

  9. 主题模型 LDA,Dirichlet分布 和朴素贝叶斯算法

    主题模型 主题模型(topic model)是以非监督学习的方式对文集的隐含语义结构(latent semantic structure)进行聚类(clustering)的统计模型. 主题模型主要被用 ...

最新文章

  1. Unity Pro builder创建模块化仓库建筑学习教程
  2. 为什么使用单页应用_为什么我讨厌您的单页应用
  3. 学历高和学历低的眼界差距有多大?
  4. [中英对照]How PCI Works | PCI工作原理
  5. NGUI 3.5教程(二)Label 标签 (Hello world)、多行文本
  6. office word 开发
  7. 看懂堆排序——堆与堆排序(三)
  8. 实用程序类的OOP替代
  9. 高级程序员如何面对职场压力?(2)--受伤的总是我
  10. DDD领域模型自动生成?
  11. POJ-2456.Aggressivecows.(二分求解最大化最小值)
  12. Yii --Command 任务处理
  13. 8.5 输入输出重定向
  14. IDEA Tomcat控制台中文乱码
  15. C#控制台应用程序执行结果一闪而过的解决方法
  16. linux安装eclipse教程,Linux下的Eclipse安装
  17. 苹果公司发布iPhone 5s和iPhone 5c
  18. Android 9.0 蓝牙电话BluetoothHeadsetClient
  19. 什么是根服务器?我国的根服务器发展如何?
  20. 判断是否为Debug模式

热门文章

  1. 控件注册失败解决方案
  2. 俞敏洪:给参与新东方年会上diss老板节目的员工奖励12万
  3. web程序员的正确表白方式 制作粉色少女系列 生日快乐祝福网页(HTML+CSS+JS)
  4. Windows 2012 Server VMtools安装过程
  5. 操作系统的分类(科普)
  6. linux下 文件排序,如何在Linux中对文件进行排序 (GUI和Shell)
  7. 解决 element ui 本地使用 引入 图标不显示 .ttf和.woff 报错问题
  8. 自动化测试脚本的编写规范
  9. 网络层 ARP地址解析协议
  10. TC8:IPv4_FRAGMENTS_01-05