浅谈pLSA主题模型

pLSA 原理

pLSA 和 LDA 一样都是主题模型,主要区别在于 pLSA 采用的是频率学派的思想,而 LDA 采用的是贝叶斯学派的思想。

假设有 M 篇文档(文档集合用 \(\mathbb{D}\) 表示),有 N 个词(词集合用 \(\mathbb{W}\) 表示),文档和词都是可观察的,pLSA 基于文档-词共现矩阵(不考虑词序)通过引入了主题(topic) \(z\) 这个隐变量去关联文档和词,假设有 K 个主题(主题集合用 \(\mathbb{Z}\) 表示)

pLSA 中一篇文档是怎么生成的呢? 它的生成过程可描述如下:

  • 首先我们要以概率 \(p(d_{m})\) 去选择一篇文档
  • 每篇文档都隐含有主题,在文档 \(d_{m}\) 中主题 \(z_{k}\) 发生的概率为 \(p(z_{k}|d_{m})\)
  • 而主题会包含主题词,在主题 \(z_{k}\) 中主题词是 \(w_{n}\) 的概率为 \(p(w_{n}|z_{k})\)

假设每个词之间相互独立,在没有引入隐变量前对于一篇文档我们可以得到

\[p(\overrightarrow{w} | dm) = \prod_{n=1}^{N}p(w_{n}|d_{m}) \tag{1}\]

现在引入主题这个隐变量则有

\[p(w_{n}|d_{m}) = \sum_{k=1}^{K} p(z_{k}|d_{m})p(w_{n}|z_{k}, d_{m}) \tag{2}\]

\(z\) 已知时 pLSA 假设 \(d\)\(w\) 独立,也就是说 \(w\) 不直接受 \(d\) 影响而是直接受 \(z\) 影响,此时有

\[p(w_{n}|d_{m}) = \sum_{k=1}^{K} p(z_{k}|d_{m})p(w_{n}|z_{k}) \tag{3}\]

因此可得到联合分布表达式为

\[p(d_{m}, w_{n}) = p(d_{m}) \sum_{k=1}^{K} p(z_{k}|d_{m})p(w_{n}|z_{k}) \tag{4}\]

pLSA 的概率图模型是:

似然估计

似然估计是频率学派用得较多的估计方法,似然估计对参数 \(\theta\) 的常见形式是:

\[L(\theta) = p(x|\theta)\]

但是实际建模中我们往往需要计算一些经验值(如词频)等,所以对于一些任务我们可以用似然估计的一般形式:

\[L_{\bar{p}} = \prod_{x} p(x)^{\bar{p}(x)}\]

其中 \(p(x)\) 为对模型参数进行估计的概率分布,\(\bar{p}(x)\) 为实验得到的经验概率分布

在此使用一般形式的似然估计,假设 \(n(d_{m}, w_{n})\) 代表词 \(w_{n}\)\(d_{m}\) 中的词频,此时似然函数为

\[\begin{align*} L(\theta) & = log \prod_{m=1}^{M} \prod_{n=1}^{N} p(d_{m}, w_{n})^{n(d_{m}, w_{n})} \\\\ & = \sum_{m=1}^{M} \sum_{n=1}^{N} n(d_{m}, w_{n}) log\ p(d_{m}, w_{n}) \\\\ & = \sum_{m=1}^{M} \sum_{n=1}^{N} n(d_{m}, w_{n})(log\ p(d_{m}) + log\ p(w_{n}|d_{m})) \\\\ & = \sum_{m=1}^{M} \sum_{n=1}^{N} n(d_{m}, w_{n}) log\ p(d_{m}) + \sum_{m=1}^{M} \sum_{n=1}^{N} n(d_{m}, w_{n}) log\ p(w_{n}|d_{m}) \\\\ & \Rightarrow \sum_{m=1}^{M} \sum_{n=1}^{N} n(d_{m}, w_{n}) log\ p(w_{n}|d_{m}) \tag{5} \end{align*}\]

\((3)\) 代入 \((5)\) 式最终可得

\[\begin{align*} L(\theta) & = \sum_{m=1}^{M} \sum_{n=1}^{N} n(d_{m}, w_{n}) log\ p(w_{n}|d_{m}) \\\\ & = \sum_{m=1}^{M} \sum_{n=1}^{N} n(d_{m}, w_{n}) log[\sum_{k=1}^{K} p(z_{k}|d_{m})p(w_{n}|z_{k})] \end{align*} \tag{6}\]

对于 \((6)\) 式的求解一般用 EM 算法,在此不做叙述.

sean lee wechat
欢迎关注我的公众号!
感谢支持!