第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > PLSA概率潜在语义分析数学推导

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

时间:2022-01-30 00:13:41

相关推荐

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

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

两次变换见下式:

L=log⁡∏i=1M∏j=1Np(di,wj)n(di,wj)=∑i=1M∑j=1Nn(di,wj)log⁡p(di,wj)=∑i=1M∑j=1Nn(di,wj)log⁡p(di)∑k=1Kp(wj∣zk)p(zk∣di)\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=log∏i=1M​∏j=1N​p(di​,wj​)n(di​,wj​)=∑i=1M​∑j=1N​n(di​,wj​)logp(di​,wj​)=∑i=1M​∑j=1N​n(di​,wj​)logp(di​)∑k=1K​p(wj​∣zk​)p(zk​∣di​)​

上式看起来可以直接通过求p(zk∣di)p\left(z_{k} \mid d_{i}\right)p(zk​∣di​)和p(wj∣zk)p\left(w_{j} \mid z_{k}\right)p(wj​∣zk​)的偏导来使L最大化,而且这两个概率式子都有求和为1的约束,引入拉格朗日乘子法求对偶问题是很自然的。

but wait!

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

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

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

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

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

L=∑i=1M∑j=1Nn(di,wj)log⁡p(di)+∑i=1M∑j=1Nn(di,wj)log⁡∑k=1Kp(wj∣zk)p(zk∣di)\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=1M​∑j=1N​n(di​,wj​)logp(di​)+∑i=1M​∑j=1N​n(di​,wj​)log∑k=1K​p(wj​∣zk​)p(zk​∣di​)​

加号的前半部分一定为正,所以上式一定大于下式。得到:

上式≥∑i=1M∑j=1Nn(di,wj)log⁡∑k=1Kp(wj∣zk)p(zk∣di)上式\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=1∑M​j=1∑N​n(di​,wj​)logk=1∑K​p(wj​∣zk​)p(zk​∣di​)

引入一个概率分式p(zk∣di,wj)p\left(z_{k} \mid d_{i}, w_{j}\right)p(zk​∣di​,wj​),上式等价于:

L=∑i=1M∑j=1Nn(di,wj)log⁡∑k=1Kp(zk∣di,wj)p(wj∣zk)p(zk∣di)p(zk∣di,wj)\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=1∑M​j=1∑N​n(di​,wj​)logk=1∑K​p(zk​∣di​,wj​)p(zk​∣di​,wj​)p(wj​∣zk​)p(zk​∣di​)​

把log函数内部的公式可以看做一个求均值的函数,而log函数是一个凹函数,利凸函数的特性即均值的函数大于函数的均值,可以得到以下公式:(具体证明为Jensen不等式)。

在这儿提供另一种理解。把 p(wj∣zk)p(zk∣di)p(zk∣di,wj)\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(zk​∣di​,wj​)p(wj​∣zk​)p(zk​∣di​)​ 理解为一个自变量X, 那么X前面的p(zk∣di,wj)p\left(z_{k} \mid d_{i}, w_{j}\right)p(zk​∣di​,wj​)和求和符号组合作用即为求X的均值。又因为对数函数是凹函数,均值的函数大于函数的均值,所以log(average(X))>=average(log(X))

上式≥∑i=1M∑j=1Nn(di,wj)∑k=1Kp(zk∣di,wj)log⁡p(wj∣zk)p(zk∣di)p(zk∣di,wj)上式\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=1∑M​j=1∑N​n(di​,wj​)k=1∑K​p(zk​∣di​,wj​)logp(zk​∣di​,wj​)p(wj​∣zk​)p(zk​∣di​)​

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

利用对数性质对上式进行拆分,即log(A/B) = log(A)-log(B)可得

后半部分形式上类似H(x)=p(x)log(p(x)),即信息熵的定义,因此形式可以转化为:

后办部分一定为正,省去可得:

长征终于要到头了,经过无数变换,我们拿到了p(wj∣zk)p(zk∣di)p\left(w_{j} \mid z_{k}\right) p\left(z_{k} \mid d_{i}\right)p(wj​∣zk​)p(zk​∣di​),而且对数函数求导终于不再包含难以处理的求和运算了。

此时利用以下约束

引入拉格朗日乘子法

求偏导后可以得到:

类似的,可以得到另一个偏导:

带入约束的等式中:

可得:

将βi与αk带入上式的p(zk∣di)p\left(z_{k} \mid d_{i}\right)p(zk​∣di​)和p(wj∣zk)p\left(w_{j} \mid z_{k}\right)p(wj​∣zk​)

得到三个要估计的参数:

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

EM算法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。