概率潜在语义分析(PLSA)(probabilistic latent semantic analysis)

概率潜在语义分析,听名字里边的‘概率’一词,就知道这和一般的统计(频数统计/ tfidf 统计)不一样。我们知道LSA是对单词-文本矩阵(频数或tfidf组成的矩阵)进行奇异值分解,LSA的最重要的中心思想就是引入话题维度,将一个文本的单词向量降维转化为话题向量,一是解决了稀疏矩阵中很多 0 值带来的计算文本相似度不准确的问题,二是解决了单词的多词一义性和一词多义性的问题。LSA可以参考之前写过的一篇 :潜在语义分析(LSA)(latent semantic analysis)

那LSA的缺点是什么?在PLSA的论文中我们找到这样一段话:

论文中说LSA没有完整的严格的数学证明,为啥这样说呢?我们知道SVD的实质是平方损失的最优近似,LSA若用SVD作为LSA的具体解决方法(还有其他解决方法,这里不细说了),那LSA做的事情就和SVD一样,就是矩阵的最优近似,它只是对最优近似分解后的各个矩阵赋予了实际意义的解释罢了。所以PLSA提供了一种有完整的数学理论基础的方法~

接下来我就就开始来看PLSA是怎么一回事吧~

目录

二元数据(Dyadic Data)

潜在类(Latent Classes)(不可观察到)

潜在类模型(Latent Classes Model)

PLSA model (aspect model)

对称模型

非对称模型

对称模型和非对称模型的区别

PLSA与LSA的关系


二元数据(Dyadic Data)

二元数据是指数据对 (w,d)  , 其中 w 来自集合一个集合 \boldsymbol{W}= \{w_{1},w_{2},...,w_{M}\}d 来个另一个集合 \boldsymbol{D}= \{d_{1},d_{2},...,d_{N} \} 。二元数据有不止一种表现方式,例如 LSA 中将二元数据看作一个矩阵,矩阵中的每一个值表示w_{i} 在 d_{j} 中出现的频数/权值(假设 \boldsymbol{W}为单词集合,\boldsymbol{D}为文本集合)。PLSA 不会把二元数据当作矩阵,它就研究二元数据本身。

潜在类(Latent Classes)(不可观察到)

LSA 通过引入话题这一潜在类,解决了稀疏矩阵带来的问题,解决了单词一词多义多词一义的语义问题。PLSA也用与LSA相同的思想,引入话题这一潜在类。由于看待观测数据的方式不同(LSA视数据为矩阵,PLSA视数据为二元数据),导致两种方法不同。

引入潜在类以后,完全数据指 观测数据和潜在/隐数据。

潜在类模型(Latent Classes Model)

假设潜在类集合为 \boldsymbol{Z}= \{z_{1},z_{2},...,z_{K} \} ,观察到的二元数据的第一元的数据集合 \boldsymbol{W}= \{w_{1},w_{2},...,w_{M}\},观察到的二元数据的第二元的数据集合 \boldsymbol{D}= \{d_{1},d_{2},...,d_{N} \}。随机变量 \boldsymbol{z} 来自于集合 \boldsymbol{Z},随机变量 \boldsymbol{w} 来自于集合 \boldsymbol{W},随机变量 \boldsymbol{d} 来自于集合 \boldsymbol{D} 。所有的二元数据对集合为 \boldsymbol{S}=\{(w_{1},d_{1}),(w_{1},d_{2}),...(w_{2},d_{1}),(w_{2},d_{2}),...,(w_{M},d_{N}) \}=(w_{l},d_{l})_{1\leq l\leq L} where L=M\times N

PLSA 引入潜在类之后,对于二元数据来说,至少有三种不同的潜在类模型。以下一一介绍:

1、aspect model

任意一个观测到的二元数据 (w_{l},d_{l}) 被对应的随机变量 \boldsymbol{z} 的一个实例 z_{l} 划分到 K 类中的某一类。所有的二元数据 \boldsymbol{S} 被对应的随机变量 \boldsymbol{z} 的 L 个实例 z_{1},z_{2},...,z_{L} 划分为 K 类 。

2、one-side model  

任意一个观测到的 w_{m} 被对应的随机变量 \boldsymbol{z} 的一个实例 z_{m} 划分到 K 类中的某一类。所有的 \boldsymbol{W} 被对应的随机变量 \boldsymbol{z} 的 M 个实例 z_{1},z_{2},...,z_{M} 划分为 K 类 。若将 \boldsymbol{W} 和 \boldsymbol{D} 交换角色,会是一个不同的模型。

3、two-side model  

假设另外一个 潜在类集合为 \boldsymbol{T}= \{t_{1},t_{2},...,t_{T} \},  随机变量 \boldsymbol{t} 来自于集合 \boldsymbol{T}

任意一个观测到的 w_{m} 被对应的随机变量 \boldsymbol{z} 的一个实例 z_{m} 划分到 K 类中的某一类。所有的 \boldsymbol{W} 被对应的随机变量 \boldsymbol{z} 的 M 个实例 z_{1},z_{2},...,z_{M} 划分为 K 类 。

任意一个观测到的 d_{n} 被对应的随机变量 \boldsymbol{t} 的一个实例 t_{n} 划分到 T 类中的某一类。所有的 \boldsymbol{D} 被对应的随机变量 \boldsymbol{t} 的 N 个实例 t_{1},t_{2},...,t_{N} 划分为 T 类 。

PLSA model (aspect model)

我们先对上述集合做一个实际意义的描述便于理解: \boldsymbol{D}:文本集合;\boldsymbol{W}:单词集合;\boldsymbol{Z}:话题集合。

PLSA 使用的是 aspect model。aspect model 假设 \boldsymbol{S} 中的所有数据都是独立同分布的,并且 在 \boldsymbol{z} 给定的条件下,\boldsymbol{w} 和 \boldsymbol{d} 是条件独立的,即

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

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

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

观测数据的概率 P(w ,d) 的概率公式有两种表达形式,根据这两种不同的表达形式,aspect model可分为对称模型和非对称模型。

对称模型

观测数据的概率如下:

P(W,D)=\prod_{n=1}^{N}\prod_{m=1}^{M}P(w,d)^{n(w,d)} 其中:

P( w ,d )=\sum_{z\in \boldsymbol{Z}}^{} P( z ) P(w,d|z) = \sum_{z\in \boldsymbol{Z}}^{} P( z ) P(w|z) P(d|z)

n(w,d)为出现的次数。

 对应的完全数据的概率如下:

P(W,D,Z)=\prod_{l=1}^{L}P(w,d,z)  其中:

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

我们尝试看看利用P\(\boldsymbol{z} )P\(\boldsymbol{w} |\boldsymbol{z})P\(\boldsymbol{d} |\boldsymbol{z} ) 这些概率分布是否可以模拟生成观测到的数据:

随机数据生成过程可以描述为如下:

(1)、依据概率分布 P\(\boldsymbol{z} ) ,从潜在类集合中随机选出一个话题 z 

(2)、在z 给定条件下,依据概率分布P\(\boldsymbol{d} |\boldsymbol{z} ),从集合 \boldsymbol{D} 中随机选出一个文本 d 

(3)、在z 给定条件下,依据概率分布P\(\boldsymbol{w} |\boldsymbol{z}),从集合 \boldsymbol{W} 中随机选出一个单词 w

(4)、返回(3),重复 dl 次(3), dl 为d的文本长度

(5)、返回(2),重复 N 次(2)和(3)和(4),N为本文集合长度

(6)、?

写到第(6)步,我们发现就进行不下去了,所以对称模型是不可以将观察到的数据生成出来的。

非对称模型

为了对上述 aspect model 有更好的理解,我们将观测数据的概率 P(w,d) 的表达式改变一种写法:

 观测数据的概率如下:

P(W,D)=\prod_{n=1}^{N}\prod_{m=1}^{M}P(w,d)^{n(w,d)} 其中:

P( w ,d )=P(d)P(w|d)=P(d) \sum_{z\in \boldsymbol{Z}}^{} P(w , z|d)=P(d)\sum_{z\in \boldsymbol{Z}}^{} P ( z | d) P( w|z)

 对应的完全数据的概率如下:

P(W,D,Z)=\prod_{l=1}^{L}P(w,d,z)  其中:

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

我们尝试看看利用P( \boldsymbol{d} )P(z|d)P ( w | z )这些概率分布是否可以模拟生成观测到的数据~

此时随机数据生成过程可以描述为如下:

(1)、依据概率分布 P( \boldsymbol{d} ) ,从 \boldsymbol{D} 中 选取一个文本 d

(2)、在  d 给定条件下,依据概率分布 P(z|d) ,从集合 \boldsymbol{Z} 中随机选取一个话题 z

(3)、在  z 给定条件下,依据概率分布 P ( w | z ),从集合\boldsymbol{W}中随机选取一个单词 w

(4)、返回(2),重复 dl 次(2)和(3),dl 为给定 d  条件下,d的文本长度

(5)、返回(1),重复 N 次(1)和(2)和(3)和(4),N为本文集合长度。

可以看到这个非对称模型是可以将检查到的数据生成出来的,故而也叫生成模型。

对称模型和非对称模型的区别

对称模型和非对称模型在概率公式意义上是等价的。

非对称模型可以刻画文本-单词数据生成的过程,而对称模型则做不到。

对称模型要学习的参数是 P\(\boldsymbol{z} )P\(\boldsymbol{w} |\boldsymbol{z})P\(\boldsymbol{d} |\boldsymbol{z} ) ,参数个数为 K + K \times N + K \times M,非对称模型要学习的参数是 P( \boldsymbol{d} )P(z|d)P ( w | z ) ,参数个数为 N + K \times N + K \times M。由于对称模型和非对称模型的概率表达式不同参数不同,所以学习方法也不同。非对称模型(生成模型)参数估计的EM算法可参考pLSA参数估计的EM算法推导

PLSA与LSA的关系

PLSA和LSA都引入的潜在话题类,带来的好处就是解决了稀疏矩阵0值多导致的文本计算相似度不准确的问题,并且解决了一词多义多词一义的语义问题。但是它两看到数据的方式不同,所以数据的表达方式就不同,LSA用矩阵表示数据,PLSA用概率表达式表示数据出现的概率,所以学习算法也不同。PLSA 比 LSA 拥有更强的数学基础解释,PLSA 的生成模型还描绘了数据是如何生成的。

PLSA的对称模型也可以在LSA模型的框架下描述。LSA对单词-文本矩阵进行奇异值分解得到 \boldsymbol{X} = \boldsymbol{U} \Sigma \boldsymbol{V}^{T},PLSA的对称模型也可以表示为三个矩阵的乘积,从式子P( w ,d )=\sum_{z\in \boldsymbol{Z}}^{} P( z ) P(w,d|z) = \sum_{z\in \boldsymbol{Z}}^{} P( z ) P(w|z) P(d|z)

可以推出:

\boldsymbol{X^{'}} = \boldsymbol{U^{'}} \Sigma^{'} \boldsymbol{V^{'}}^{T}

\boldsymbol{X}^{'}=[P(w ,d)]_{M\times N}

\boldsymbol{U}^{'}=[P(w |z)]_{M\times K}

\Sigma ^{'}=[P(z)]_{K\times K}

\boldsymbol{V}^{'}=[P(d | z)]_{N\times K}

PLSA的对称模型中的 \boldsymbol{U}^{'}\boldsymbol{V}^{'} 是非负的、规范化的、表示条件概率分布,而LSA中的\boldsymbol{U}\boldsymbol{V}是正交的、未必非负、并不表示概率分布。

有不对的地方欢迎各位大佬留言呀~

猜你喜欢

转载自blog.csdn.net/qq_32103261/article/details/120627606
今日推荐