DPLSA模型中EM算法在MATLAB中的简化计算方法

1、DPLSA模型的简介

        PLSA,即概率潜在语义分析模型是从概率的角度对LSA进行新的诠释,使得LSA有了稳固的统计学基础。最早是由Hofmann在SIGIR'99上提出了基于概率统计的PLSA模型。通常是使用EM算法来来学习模型参数,具有线性收敛速度,可以在局部达到最优。在PLSA模型中,文档和单词共享同样的潜在变量Z,然而通常文档和单词展示出来的事不同的组织和结构,它们之间可能有不同类型的潜在变量。因此映入两个潜在变量Z和Y,分别代表文档主题和单词主题。本文将介绍的DPLSA是PLSA模型的一种改进,其概率图模型如下
图片

其中,D代表文档,Z代表隐含文档主题,Y代表隐含的单词主题。W为观察到的单词。P(d|z)表示给定文档主题z出现文档的概率,P(w|y)表示给定单词主题y出现单词w的概率,P(w,y)表示文档主题和单词主题的共生概率。我们可以观察到的数据就是(w,d)对,而z,y是隐含文档、单词主题。(w,d)的联合概率分布为

其中的参数P(w|y)、P(d|z)和P(y,z)都能够通过EM算法来得到,关于算法的介绍,可以参考 LSA和PLSA学习笔记概率语言模型及其变形系列(1)-PLSA及EM算法

2、EM算法简介

        关于EM算法的介绍,可以参考 极大似然 与 EM算法,这里不再做其他介绍。这里只是简单介绍一下DPLSA算法的求解过程。
似然函数:

E-Step:


M-Step:
M-Step

3、EM算法计算过程中的改进

       在MATLAB的编程过程中,我们一般是使用矩阵来进行数据的存储计算的。在上述EM算法的计算的E-Step中引入了中间参数P(y,z|w,d)。如果直接存储的话,是一个四维矩阵,这将导致算法的空间复杂度O(N*M*K*L)较高,如果我们不引入这个中间变量,直接求得我们需要的三个参数P(w|y)、P(d|z)和P(y,z)的一步迭代计算公式,这将大大减少算法的空间复杂度。并且由于改进后的计算过程中,都是用矩阵来直接计算的,符合MATLAB的向量化编程思想。三个参数的实际计算过程中,计算的矩阵B都是通用的,即每次迭代过程中都只用计算一次。从理论上分析,改进后的计算过程的时间复杂度和空间复杂度都优于原来的计算方法。Pwy代表P(w|y),Pdz代表P(d|z),以及Pyz代表P(y,z)。
图片
图片
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值