pLSA 可参考 概率潜在语义分析(PLSA)(probabilistic latent semantic analysis)
EM算法可参考 EM(期望最大)算法推导以及实例计算
拉格朗日乘子法可参考 如何理解拉格朗日乘子法?
好啦,下面开始做一个简单的推导。
首先我们先回顾一个 pLSA,以生成模型为例。
生成模型假设在话题 给定条件下,单词 和文本 条件独立,即:
设单词集合为 ,文本集合为 ,话题集合为。给定单词-文本共现数据 , , 。 为单词 在文本 中出现的次数。
我们先求 pLSA 场景下的 Q 函数,然后极大化 Q 函数得到目前迭代的参数最优解。Q 函数如下:
E步
E步:我们可以将 Q 函数先简单推导下:下述公式里的 指的是所有的单词-文本对,即。
Q函数中的 可以根据贝叶斯公式计算:
其中 和 由上一步迭代得到。所以我们可以把当作一个常数。
可以从数据中直接统计得出 的估计, 由于我们只考虑 和 估计,Q 函数的第二项和参数估计无关,将第一项记做 ,那么:
M步
M步:极大化Q函数,即极大化 函数
通过约束最优化求解 函数的极大值。这时 和 是变量。因为变量 和 形成概率分布,满足约束条件:
应用拉格朗日法,引入拉格朗日乘子 和 ,定义拉格朗日函数 :
将拉格朗日函数 分别对 和 和 和 求偏导数,并令其为0,得到下面的方程组:
对 求偏导得到:
对求偏导得到:
对 和 的偏导数为0 就是:
我们把四个式子放在一起联立起来:
可以解得:
(其中 表示文本 中的单词个数。)
总结
我们总结一下 pLSA 参数估计的EM算法。
(1)设置参数 和 的初始值。
(2)迭代执行以下E步,M步,直到收敛为止。
E步:
M步:
好啦,到这儿就结束啦,如有不正确的地方欢迎留言吖~