PLSA概率潜在语义分析数学推导

为什么要研究PLSA模型

PLSA模型是LDA模型先前的一个工作,理解PLSA模型有助于我们对LDA模型的理解。
在这里插入图片描述
每个生成过程都拥有一个固定概率。

特别感谢

本文是在上过张家俊老师的《文本数据挖掘》后有感所写,特别感谢老师的讲授。

PLSA的数学推导

一句话概括:

我们希望把文档集或单篇文章的生成概率表示出来,在分解得到对应的两个概率:主题生成文章、词生成主题。选择概率的前n个即可完成对文章的分解表示。

具体推导

由于已有很多的博客对PLSA和EM算法进行了充分介绍,因此本文主要对PLAS及其中使用的EM算法进行推导,不再做原理性上的解释。

我将根据自己的理解详细阐述每一步处理的motive
在这里插入图片描述
参数定义

  • d documents 文档集合
  • z 主题集合
  • w 词项空间
  • 𝑀 文档数
  • 𝑁 特征数
  • k 主题数

在这个模型中,篇章集合d与词项空间w已知的,而主题z是未知的。我们的假设是篇章以一定概率生成主题,而主题以一定概率生成词汇。

因此需要通过某种方法计算未知的主题z。

计算z的目的是对于给定的观测数据 (d, w),PLSA模型基于最大似然估计学习p(wj|zk)和p(zk|di) 的取值

如果能确定这两个概率的值,就能完成一篇文章乃至文档集的生成(PLSA假设概率是定值)

使用 n ( d i , w j ) {n\left(d_{i}, w_{j}\right)} n(di,wj)代表词wj在文档di中出现的次数。一篇文章单词的生成是独立的,做一个类别方便理解,类似于让大猩猩去敲键盘,那么恰好生成一部《莎士比亚》的概率就是每个词被凑巧打出来概率的连续相乘。取对数后表示为: log ⁡ ∏ i = 1 M ∏ j = 1 N p ( d i , w j ) n ( d i , w j ) \log \prod_{i=1}^{M} \prod_{j=1}^{N} p\left(d_{i}, w_{j}\right)^{n\left(d_{i}, w_{j}\right)} logi=1Mj=1Np(di,wj)n(di,wj)

如果我们用L表示生成文档集的概率,利用对数函数的特性将指数前移进行第一次变换。再将 log ⁡ p ( d i , w j ) \log p\left(d_{i}, w_{j}\right) logp(di,wj)进行“拆解”,可以用全概率公式来表示联合概率,具体来说拆解为 ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) \sum_{k=1}^{K} p\left(w_{j} \mid z_{k}\right) p\left(z_{k} \mid d_{i}\right) k=1Kp(wjzk)p(zkdi) 这作为第二次变换。

两次变换见下式:

L = log ⁡ ∏ i = 1 M ∏ j = 1 N p ( d i , w j ) n ( d i , w j ) = ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) log ⁡ p ( d i , w j ) = ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) log ⁡ p ( d i ) ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) \begin{array}{l}\mathcal{L}=\log \prod_{i=1}^{M} \prod_{j=1}^{N} p\left(d_{i}, w_{j}\right)^{n\left(d_{i}, w_{j}\right)}=\sum_{i=1}^{M} \sum_{j=1}^{N} n\left(d_{i}, w_{j}\right) \log p\left(d_{i}, w_{j}\right) \\=\sum_{i=1}^{M} \sum_{j=1}^{N} n\left(d_{i}, w_{j}\right) \log p\left(d_{i}\right) \sum_{k=1}^{K} p\left(w_{j} \mid z_{k}\right) p\left(z_{k} \mid d_{i}\right)\end{array} L=logi=1Mj=1Np(di,wj)n(di,wj)=i=1Mj=1Nn(di,wj)logp(di,wj)=i=1Mj=1Nn(di,wj)logp(di)k=1Kp(wjzk)p(zkdi)
上式看起来可以直接通过求 p ( z k ∣ d i ) p\left(z_{k} \mid d_{i}\right) p(zkdi) p ( w j ∣ z k ) p\left(w_{j} \mid z_{k}\right) p(wjzk)的偏导来使L最大化,而且这两个概率式子都有求和为1的约束,引入拉格朗日乘子法求对偶问题是很自然的。

but wait!
对数函数里面有求和操作,这可没法求偏导了呀,因此我们只能设计以下一系列变换,“扔掉”多余部分,最终使得对数函数里没有求和符号

但是如果直接求偏导,会发现由于上面的自变量包含在对数和中,求解后的结果难以计算,使得L最大化的计算成为不可能。

思考这个公式,使用极大似然估计时,我们通常运用拉格朗日乘子法,把约束化为目标函数的一部分,求偏导使其最大化。

因此,我们需要寻找一种替代方案,来使得L可计算

上式中的 l o g p ( d i ) log p\left(d_{i}\right) logp(di)是文档生成文档集的先验概率,所以在运算中可以去除,使用log对数的特性对函数进行变换得到以下结果(log(m*n)=log m+log n ):

L = ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) log ⁡ p ( d i ) + ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) log ⁡ ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) \begin{array}{l}\mathcal{L}=\sum_{i=1}^{M} \sum_{j=1}^{N} n\left(d_{i}, w_{j}\right) \log p\left(d_{i}\right)+\sum_{i=1}^{M} \sum_{j=1}^{N} n\left(d_{i}, w_{j}\right) \log \sum_{k=1}^{K} p\left(w_{j} \mid z_{k}\right) p\left(z_{k} \mid d_{i}\right)\end{array} L=i=1Mj=1Nn(di,wj)logp(di)+i=1Mj=1Nn(di,wj)logk=1Kp(wjzk)p(zkdi)
加号的前半部分一定为正,所以上式一定大于下式。得到:
上 式 ≥ ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) log ⁡ ∑ k = 1 K p ( w j ∣ z k ) p ( z k ∣ d i ) 上式\geq \sum_{i=1}^{M} \sum_{j=1}^{N} n\left(d_{i}, w_{j}\right) \log \sum_{k=1}^{K} p\left(w_{j} \mid z_{k}\right) p\left(z_{k} \mid d_{i}\right) i=1Mj=1Nn(di,wj)logk=1Kp(wjzk)p(zkdi)
引入一个概率分式 p ( z k ∣ d i , w j ) p\left(z_{k} \mid d_{i}, w_{j}\right) p(zkdi,wj),上式等价于:
L = ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) log ⁡ ∑ k = 1 K p ( z k ∣ d i , w j ) p ( w j ∣ z k ) p ( z k ∣ d i ) p ( z k ∣ d i , w j ) \mathcal{L}=\sum_{i=1}^{M} \sum_{j=1}^{N} n\left(d_{i}, w_{j}\right) \log \sum_{k=1}^{K} p\left(z_{k} \mid d_{i}, w_{j}\right) \frac{p\left(w_{j} \mid z_{k}\right) p\left(z_{k} \mid d_{i}\right)}{p\left(z_{k} \mid d_{i}, w_{j}\right)} L=i=1Mj=1Nn(di,wj)logk=1Kp(zkdi,wj)p(zkdi,wj)p(wjzk)p(zkdi)
把log函数内部的公式可以看做一个求均值的函数,而log函数是一个凹函数,利凸函数的特性即均值的函数大于函数的均值,可以得到以下公式:(具体证明为Jensen不等式)。

  • 在这儿提供另一种理解。把 p ( w j ∣ z k ) p ( z k ∣ d i ) p ( z k ∣ d i , w j ) \frac{p\left(w_{j} \mid z_{k}\right) p\left(z_{k} \mid d_{i}\right)}{p\left(z_{k} \mid d_{i}, w_{j}\right)} p(zkdi,wj)p(wjzk)p(zkdi) 理解为一个自变量X, 那么X前面的 p ( z k ∣ d i , w j ) p\left(z_{k} \mid d_{i}, w_{j}\right) p(zkdi,wj)和求和符号组合作用即为求X的均值。又因为对数函数是凹函数,均值的函数大于函数的均值,所以log(average(X))>=average(log(X))
    log函数图像

上 式 ≥ ∑ i = 1 M ∑ j = 1 N n ( d i , w j ) ∑ k = 1 K p ( z k ∣ d i , w j ) log ⁡ p ( w j ∣ z k ) p ( z k ∣ d i ) p ( z k ∣ d i , w j ) 上式\geq \sum_{i=1}^{M} \sum_{j=1}^{N} n\left(d_{i}, w_{j}\right) \sum_{k=1}^{K} p\left(z_{k} \mid d_{i}, w_{j}\right) \log \frac{p\left(w_{j} \mid z_{k}\right) p\left(z_{k} \mid d_{i}\right)}{p\left(z_{k} \mid d_{i}, w_{j}\right)} i=1Mj=1Nn(di,wj)k=1Kp(zkdi,wj)logp(zkdi,wj)p(wjzk)p(zkdi)

对数函数里没有求和符号了,似乎也可以直接求偏导,但有些联合概率分布中也包含了求偏导项,所以还需要进一步拆分

利用对数性质对上式进行拆分,即log(A/B) = log(A)-log(B)可得
在这里插入图片描述
后半部分形式上类似H(x)=p(x)log(p(x)),即信息熵的定义,因此形式可以转化为:
在这里插入图片描述

后办部分一定为正,省去可得:
在这里插入图片描述
长征终于要到头了,经过无数变换,我们拿到了 p ( w j ∣ z k ) p ( z k ∣ d i ) p\left(w_{j} \mid z_{k}\right) p\left(z_{k} \mid d_{i}\right) p(wjzk)p(zkdi),而且对数函数求导终于不再包含难以处理的求和运算了。
此时利用以下约束
在这里插入图片描述

引入拉格朗日乘子法
在这里插入图片描述

求偏导后可以得到:
在这里插入图片描述
类似的,可以得到另一个偏导:
在这里插入图片描述

带入约束的等式中:
在这里插入图片描述
可得:
在这里插入图片描述

将βi与αk带入上式的 p ( z k ∣ d i ) p\left(z_{k} \mid d_{i}\right) p(zkdi) p ( w j ∣ z k ) p\left(w_{j} \mid z_{k}\right) p(wjzk)
得到三个要估计的参数:
在这里插入图片描述

面临鸡生蛋蛋生鸡的难题,三个参数估计时互相依赖。因此使用EM算法,先随机初始化后验概率,再进行迭代。

EM算法

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值