开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践:pLSA 原理下】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1067/detail/15531
pLSA 原理下
q(Z)是关于自己的任意一个分布。
这个不等式都是成立的。它是它叫变分分布。这个不等式对这个q(Z)并没有什么约束,实际上q(Z)是一个可分解的形式。q(Z)相当于一个序列。比如说Z1选择是第一个主题Z2选择第三个主题,Z3选择第五个主题,那就变成一三五这样一串数。就每个数都是在1到K之间的这串树,每一个这样的一串树都有一定的概率,这个概率的意思是说这串数比较可能或者不太可能。
举例子:
同一个词它一个文档里头给同样的那个主题标号,这样的话概率就会大一些,给不同的词分的主题标号或给一个词分的主题标号不同那他的概率就会小一些。这个文档有多少多长Z就有多少位。每一个Zi不是二元的,它是从一到K之间的。如果Z未知的话,但Z未它是服从某些规律的,我同样可以给它指定一个概率
要找一个怎样的q(Z)会比较合理,合理的意思就是能够最大化这个文档的概率。由式1我们可以证明如果q(Z)等于p(Z|d,θ),式1的等式符号是成立的。式1右边这个值就越大又越接近左边。我们是希望这个右边尽可能接近左边,因为我们在右边是可以计算的。
换句话说Jensen不等式他提供了,把它记成Ḷ(q,θ),这个叫做自然下界,这个自然下界是一个容易计算的下界。Jensen不等式提供这样一个下界,我们就在下界上左右化。固定θ优化q(Z),让下界尽可能Ḷ(q,θ)大。下一步是固定q(Z)优化θ,让Ḷ(q,θ)尽可能大,不断反复的重复这个过程这个模型的参数就会越来越合理,q(Z)是对于Z的后面概率的一个估计。因为Z它是未知的,所以我们不得不用一个概率来刻画的,然后他后面概率就是我们已知道的参数,已知道观测的文档去估计哪一取值可能性比较大,哪一取值可能性不那么大,q(Z)就是尽量去逼近这个后面概率。
固定θ优化q(Z)的是叫E-step,固定q(Z)优化θ的是叫M-step。
pLSA模型——E-step。
相当于每一个q(Z)关于Z的值它都有一个概率,比如说Z1,它等于1的概率是0.2,Z1等于2的概率是0.1。对于每个zi它都是一个K别向量,所以说现在有S个K向量。
q(Z)刚才说变分分布,不是二维的,也可以理解成二维,就以为是zi I从1到S,然后另外一维是1到K。
这个求和的公式就可以应用了求和的分解公式。 所以q(Z)我们就定义是这样的:
他是定义成可分解的形式,对于每个zi它的概率联乘起来,实际上它的后延概率是比较复杂,因为不同的Z I它那个概率是有相关性的,他们都和当前文档的到topic分布是相关的,所以说他们也只彼此之间有相关性。假设它们没有相关,因为这个相关性比较弱,可以忽略掉,然后对于每个去q(Zi)v向量来刻画它,就是每一位代表他取某个值的某个topic。它是属于某个topic的概率。这个这个是后面概率,这跟刚才的P的那个是概率不一样。然后当然这个需要满足规划,就是它的k加起来等于1.
然后我们想找最优的q(Zi),想找一组最优的Ḷ(q,θ)参数,能够让这个自然下界最大。好在这个下界它是凸个函数,所以我们只需要给他求导,取倒数为零的点。我们得到了一组最优的这个方案。
M-step相对要简单一些,因为一样的这个虽然下界,它是个凸函数,我们对他求导,然后去取零的点。这个φ的含义是什么因为我们假设这个这这个分布是可以分解的,然后对于每个Zi来说,它这个分布它是一个K选一的一个离散分布。所以我就用一组参数来表达来定义这个分布。
举例子:台湾旅游的例子:这个假设我已经知道台湾它的概率是这些旅游美食每个主题概率是这样,然后我知道当前的词是卤肉饭,那我来推测他属于台湾这个主题概率多大,美食概率多大,这个怎么算的?假设把卤肉饭归到台湾这个主题了,我可以算这台湾这个主题里头卤肉饭的概率是多大,然后美食这个主题卤肉饭的概率做大,然后当前文档它每个主题不同的概率,基本这两个概率乘起来就相当于这个卤肉饭这个词假设属于台湾这个主题它的概率是多大,属于美食这个主题概率有多大,但这个是还没有规划的,咱们规划之后就得到后面概率,也就是说卤肉饭属于台湾的概率多大,属于美食的概率多大。
这样的话肯定会算出来它属于美食的概率比较大,首先这个这个文章美食这个主题的概率就很大,然后卤饭呢在美食这个主题里头又是一个高频词,所以说它很可能就属于美食这个主题。这个主题比如美食,然后乘以个P(美食),改变这个文档D,它是个相成的关系。