概率潜在语义分析

probabilistic latent semantic analysis ,PLSA

概率潜在语义分析是一种基于概率生成模型的对文本集合进行话题分析的无监督学习方法

在前面文章EM算法中举的例子就是PLSA问题,实际上PLSA就是运用EM算法来求解的

PLSA模型

文本集合$D$,单词集合$W$,话题集合$Z$,有$M$个单词,$N$个文本,$K$个话题

$d∈D$表示文档,$w∈W$表示词语,$z∈Z$表示隐含的主题。

$z$就是隐变量

于是文本-单词共现数据$T$的生成概率所有单词-文本对$(w,d)$的生成概率的乘积

其中$n(w,d)$表示$(w,d)$同时出现的次数(注意理解此式的写法,这个乘积,所谓的共现数据$T$的生成概率,实际意义上就是一篇文章

对于单词文本对$P(w,d)$,可以描述为生成模型或共现模型

(注意理解,有$M$个单词,所以就有$M$个单词文本对)

生成模型

解释为首【先有文本的概率分布$P(d)$】,每个文本有自己的话题概率分布,每个话题有自己的单词概率分布,也就是说一个文本的内容由其相关话题决定,一个话题的内容由其相关单词决定,刻画了文本-单词共现数据的生成过程:【$d\to z\to w$】

在这种模型下,记$P(d)$表示生成文本$d$的概率,$P(z|d)$表示文本$d$生成话题$z$的概率,$P(w|z)$表示话题$z$生成单词$w$的概率,则有【每个】单词-文本对共现概率

$P(w,d)=P(w|d)P(d)$

$=P(d)\sum_zP(w,z|d)$ (逆边缘化$z$)

$=P(d)\sum_zP(w|z)P(z|d)$

(假定条件独立:$P(w,z|d)=P(w|z)P(z|d)$)

共现模型

解释为首【先有话题的概率分布$P(z)$】,然后在话题分布的条件下有文本的概率分布和单词的概率分布,文本和单词同时出现,刻画了文本-单词共现数据拥有的模式:【$z\to d;z\to w;d,w$共现】

在这种模型下,记$P(z)$表示话题$z$的概率,$P(d|z)$表示话题$z$下生成文本$d$的概率,$P(w|z)$表示话题$z$生成单词$w$的概率,则有【每个】单词-文本对共现概率

$P(w,d)=\sum_{z∈Z}P(z)P(w|z)P(d|z)$

(假定条件独立:$P(w,d|z)=P(w|z)P(d|z)$)

根据公式可以推得生成模型和共现模型是等价的

性质

  1. 通过PLSA模型,模型的参数由直接定义的单词文本共现概率$P(w,d)$的参数$O(M·N)$个变为$O(M·K+N·K)$,其中$K$是话题数,现实中$K<<M$,PLSA通过使用话题,对数据进行了更简洁的表示,模型参数的减少使得不容易过拟合,并且能完成其目的:分析文章潜在的主题

  2. 模型中的概率分布$P(w|d)$可以由参数空间中的单纯形表示。$M$维参数空间中,单词单纯形表示所有可能的文本分布,在其中的话题单纯形表示在$K$个话题定义下的所有可能的文本分布。话题单纯形是单词单纯形的子集,表示潜在语义空间

  3. PLSA也可以对应于LSA的奇异值分解矩阵形式,对于共现模型表示为矩阵乘积形式:

    $X’=U’\Sigma’V’^T,X’=[P(w,d)]_{M×N},U’=[P(w|z)]_{M×K},\Sigma’=[P(z)]_{K×K},V’=[P(d|z)]_{N×K}$

【注】

  1. 概率分布$P(d|z),P(w|z),P(z|d)$都是多项分布,理解一下这个分布在PLSA的含义。

    以主题-单词多项分布$P(w|z)$举例,这个分布就表示对于给定的主题$z$,不同的单词有不同的概率,比如:

    $P(只狼|GOTY)=0.3,P(死亡搁浅|GOTY)=0.3,P(大乱斗|GOTY)=0.3,P(控制|GOTY)=0.1$

    表示GOTY主题下所有可能出现的单词各自的概率

    文本-主题同理

  2. 概率计算:在已知参数的情况下生成文本的概率

    一个单词文本对$P(w_i,d_j)$代表文本中的一个单词为$w_i$的概率。我们要求得到一个文本的概率分布,也就是生成一个单词序列的概率,那么就是所有单词文本对概率的积组成的分布

    至于如何求得每个单词的单词文本对$P(w_i,d_j)$概率,那才是生成模型和共现模型有不同的方案

  3. 学习算法:在已知文本的情况下求参数(话题-文本分布和话题-单词分布)

    也就是在一堆文本中分析潜在的话题,单词分布

    这就是下面的参数求解算法

PLSA学习算法——EM算法

学习算法就是求解话题-文本分布和话题-单词分布的参数

一个单词文本对$P(w_i,d_j)$代表文本中的一个单词为$w_i$的概率。我们要在已知数据下求最可能的概率分布参数(也就是模型参数),就是要求已有文本概率的极大似然,也就是使得所有已有单词文本对概率的积的最大值下的模型参数(就朴素的MLE求参数估计原理啦)

EM算法在前面文章EM算法中写的很详细,在HMM算法的求解过程中也应用过推导出了HMM的参数时估计算法,见前文

我们对目标函数(文本-单词共现数据$T$的生成概率)求极大似然:

对于生成模型,代入$P(w_i,d_j)$则为:

(这里代入后由于$P(d_j)$可以直接求出来为常数,所以省略掉了)

由于概率模型中含有隐变量(话题:$z$),我们无法直接求解MLE,所以必须使用EM算法,将$L(\theta)$带入公式计算

注意生成模型中的关系:$d\to z\to w$ (别和共现模型的搞反啦)

E步:计算$Q$函数

注意后验概率用贝叶斯公式将其转变为先验概率(待求导变量):

$P(B_i|A)=\frac{P(A,B_i)}{P(A)}=\frac{P(B_i)P(A|B_i)}{\sum_{j=1}^nP(B_j)P(A|B_j)}$,则$P(z_k|w_i,d_j)=\frac{P(z_k,w_i,d_j)}{P(w_i,d_j)}=\frac{P(w_i|z_k)P(z_k|d_j)}{\sum_{k=1}^KP(w_i|z_k)P(z_k|d_j)}$

M步:极大化$Q$函数(使用拉格朗日法引入乘子,并分离变量为子式,运用同时求和回代消乘子技巧,再对不同子式变量求0导。变量即为$P(w_i|z_k),P(z_k|d_j)$)

具体推导略

算法:设置参数$P(w_i|z_k),P(z_k|d_j)$的初始值,作为EM算法开始迭代的初始分布

②迭代计算$E步:P(z_k|w_i,d_j),M步:P(w_i|z_k),P(z_k|d_j)$

求得模型参数

【注】PLSA属于频率学派思想,在数据量较小的时候容易过拟合