Text mining and analytics第三周学习笔记
指导性问题:
(1)什么是混合模型?一般来说,如何计算从混合模型中观察特定单词的概率?这个概率表达式的一般形式是什么?
(2)混合模型的分量词分布的最大似然估计是什么样的?他们在什么意义上“协作”和/或“竞争”?为什么我们可以使用固定的背景词分布来强制发现的主题词分布,以减少它在常见的(通常是非内容的)词上的概率?
(3)EM算法的基本思想是什么? E步骤通常会做什么? M-step通常会做什么?在两个步骤中,我们通常应用贝叶斯规则?新兴经济体是否收敛到全球最大值?
(4)什么是PLSA?一个PLSA模型有多少个参数?这个数字是如何受到我们开采数据集大小的影响?我们如何调整标准的PLSA,将主题词分布上的优先考虑?
(5)LDA与PLSA有什么不同?两种模式共享什么?
关键短语和概念
在完成阅读和与讲座互动时,请注意以下关键术语或短语。 这些主题将帮助您更好地理解本模块中的内容。
关键术语:
(1)混合模型
(2)组件模型
(3)限制概率
(4)概率潜在语义分析(PLSA)
(5)期望最大化(EM)算法
(6)E步骤和M步骤
(7)隐藏的变量
(8)爬山
(9)本地最大值
(10)潜在狄利克雷分配(LDA)
一、概率主题模型之混合一元语言模型
1.概述
作用:去除背景词(功能词汇)
第一种情况是使用主题作为发行版来生成单词;
第二部分从背景上解释了这个词的不同用法。
在每一种情况下,它都是一个概率的乘积,选择一个特定的单词的概率乘以从这个分布中观察单词的概率。
混合模型中的一个词的概率是一个不同的单词生成方式的总和。选择该组件模型的概率的乘积乘以实际从模型的该部分观察数据点的概率。
混合模型:
混合模型的基本思想就是将这两个分布作为一个模型来检索。
提出问题:那我们如何解决参数呢
两种参数:一个是两个措辞的发行版,它们产生主题,另一个是每个主题的覆盖范围。
分析可能性函数:
将它退化到只有一个分布的特殊情况。可以很容易地验证,假设这两个中的一个是1.0,另一个是零。
混合模型比以前的模型更普遍,之前的模型只有一个分布。
小结:
1)数据只是一份文档;
2)两种Unigram语言模型的混合:
这个模型是一个混合模型,包含两个分量,两个单列LM模型,特别是
3)这些参数可以统称为Lambda,还具有混合权重。
4)似然函数:它覆盖了文档中所有的单词,和以前完全一样。唯一的区别是,现在这里是一个和,而不是一个。
由于混合模型的存在,我们还必须引入一个概率来选择特定的分布分量。即用一个产品代替我们词汇中所有独特的单词,而不是让这个产品凌驾于文档中的所有位置。这种形式不同在于将唯一的词的一个交换律用于计算以后的最大似然估计。和往常一样,最大似然估计量只是为了找到最大似然函数的参数。
两种限制:1)主题概率和为1;2)模型选择和为1.
2.估计模型参数
回顾使用混合模型的原因:使用高频词公式筛掉背景词。
思路:假设背景词的
观察混合模型的行为:
1)行为一:不同分布的竞争行为
由于两个限制,所以当背景词的
(即当某一分布给某一词越高的概率,那么另一分布给这个词的概率越低。)
2)行为二:数据频率的响应——高频率词有高P(“w”|θd)
首先观察两个文本单词的概率:一个概率为0.9,另一个概率为0.1。
接下来,开始向文档中添加更多的单词。那么只需将似然函数乘以附加项,就可以解释附加项。
当增加背景词的数量时,会使得
P("背景词"|θd )变大。而P("功能词"|θd )变小。
- 然后,我们该思考如何改变
P(“???”|θd) 的值,哪个词可以降低概率,哪个词应该有更大的概率。
高频率词有高
P(“w”|θd)
- 再然后,考虑如果增加
P(θB) 那会有什么变化呢?(即不是两个分布均为0.5的概率,且P(θB)>P(θd) )
当背景的分布概率
P(θB) 从0.5变越大,那么当增加背景词的个数,P(“背景词”|θd) 增大的越不明显。
小结:
1)首先为了合作最大化可能性,每个组件模型都试图将高概率分配给数据中的高频率词。
2)第二,为了避免竞争或浪费概率,不同的组件模型倾向于在不同的单词上竞争高概率。
这将使他们能够更有效地合作,以最大限度地提高可能性。
每个组件的概率决定了组件模型之间的协作和竞争。它将允许一些组件模型更多地响应数据中θ点的频率变化。
二、概率主题模型之期望最大化算法(EM算法)
第一部分:
1)假设我们知道那个单词属于哪个分布,来计算参数。
2)知道参数,确定词属于哪个分布
根据词在哪个分布的频率高判断词属于那个分布,即比较
同时结合前条件即
第二部分
隐藏值Z:Z=1则为背景词,Z=0则为功能词。
步骤:
1)给每一个
2)迭代式的计算每个词的分布情况
迭代式步骤:首先E-step来猜测Z的值,然后M-step利用Z值将相同分布的词分到一组,重新得到
P(P(“w”|θd) 值,重复之前步骤。
例子:
将Z=0词取出来,假设话题分布均为0.5,且
最后一列是话题分布;当概率在0-1之间时,似然值为负数。
图解原理:
E-step用来计算下限线,M-step用来将E-step计算出来的下限中的最大值对应到原始曲线上,使得比上一次的值大。
小结:
EM算法:计算最大概率预测的算法。
爬坡算法:只趋近于局域最大,并且取决于起点。
三、概率性和潜在语义分析(PLSA)
第一部分:
用于:多主题分布 例如:
与混合模型相似,但不同的是有更多的主题。那么,我们将背景分布的系数设为
词W的概率等于词W在所有分布的概率的和
参数
两种未知参数:
1)覆盖率
2)是单词分布
思考有多少个参数:(M+k)个
两种约束条件:
1)主题的单词分布。每个主题单词的概率必须和是1。
2)主题覆盖范围分布。文档必须精确地涵盖这些k个主题,因此覆盖所有的主题的概率和1。
第二部分:
通过EM算法计算最大似然值。
1.E-Step
每个文档的
利用贝叶斯计算文档d中主题j的单词w的概率,和文档d中背景主题的单词w的概率。
2.M-Step
目的:提高参数
1)重新估计参数
2)一个主题的单词重新估计概率
细节:
1)初始化所有未知参数
2)E-Step
3)M-Step
4)重复2,3,知道参数不再改变停止重复,得到结果
需要归一化(所有主题概率,
pi ,主题的所有单词概率)
小结
PLSA模型:这是一种混合模型,有k个语言模型,代表k个主题。
我们还增加了一个预先确定的背景语言模型来帮助发现有区别的话题,因为这个背景语言模型可以帮助吸引公共术语。
我们选择的最大估计是我们无法从文本数据中发现局部知识。
PLSA能做的两件事:
1)k字的分布,每一种表示一个主题,
2)每个文档中每个主题的比例。这样详细的描述文档中主题的描述可以使大量的照片分析。
例如:
我们可以在特定的时间段内汇总文档,以评估某个时间段内某个特定主题的覆盖率。这样我们就可以生成主题的时间链。我们还可以聚合与特定作者相关的文档中包含的主题,然后我们可以对该作者所写的主题进行分类,除此之外,我们还可以对术语和集群文档进行分组。
事实上,每个主题都可以看作是一个集群。所以我们已经有了术语群。在较高的概率中,单词可以被认为属于由主题所代表的一个集群。同样,文档也可以以相同的方式聚集在一起。我们可以将文档分配给在文档中包含最多的主题集群。
pi表示文档中每个主题包含的范围,我们可以将文档分配给具有最高pi的主题集群。
四、潜在狄利克雷分配(LDA)
重点:
1)用先验的知识扩展PLSA,这将使我们在某种意义上拥有一个用户控制的PLSA,所以它不仅适用于他们只听的数据,还会倾听我们的需求。
2)将PLSA扩展为一个完全生成模型。这导致了潜在狄利克雷分配(LDA)的发展。
1.先验知识拓展PLSA
当我们应用PLSA分析文本数据时,我们可能有更多的知识需要注入来指导分析。
由于:标准的plsa将使用最大似然来盲目地听数据。将尽可能多地拟合数据,并获得一些关于数据的洞察力。
但有时用户可能对要分析的主题有一些期望。(例如,我们可能期望将检索模型作为信息检索中的一个主题,我们也可能对某些方面感兴趣,例如电池和内存。)
用户也可能要了解主题覆盖,可能知道哪个主题肯定没有覆盖哪个文档或正在覆盖该文档。(例如,我们可能已经看到那些标记,主题标记分配给文档。)
问题在于我们如何将这些知识纳入公共科学和社会保障局。
贝叶斯推断-最大后验估计(MAP)
MAP:先验知识和数据的结合。
1)先验被表示为
- 可以用它来编码对主题有精确背景的需求。
可以将其编码为先验,因为如果参数包含一个与背景语言模型等价的主题,则参数的先验值仅为非零。
换句话说,在其他情况下,如果不是这样的话,我们会说,先前的人说这是不可能的。所以,根据我们的先验,这种模型的概率是零。
- 利用先验,强制特定的主题选择
可以强迫文档D选择概率为一半的主题,或者可以防止主题被用于生成文档。因此,第三个主题不应该用于生成文件D,将该主题PI设置为零。 - 使用先验来支持一组参数,其中的主题为某些特定的单词分配了很高的概率。
在这种情况下,我们不会说这是不可能的,但是我们可以强烈地支持某些类型的发行版
2)MAP可以使用类似的EM算法来计算,就像最大似然估计所用的算法一样。
只要做一些修改,大多数参数都会反映先验偏好,若使用一种特殊形式的先验码或共轭先验,则先验的函数形式将与数据相似。
因为这两种函数形式是相同的,我们可以将两者结合起来,结果可以将先验推理转换为有附加伪数据的推理。因此,效果就好像有更多的数据,这是很方便的计算。这并不意味着共轭先验是定义先验的最好方法。
2.将PLSA扩展为一个完全生成模型
例子:
1.假设用户对笔记本电脑的电池寿命特别感兴趣,分析评论。
总体目的:分配应该包含一个分配,给电池和生命分配高概率,有分布是集中在电池寿命上的。
方法一:用共轭先验的MAP估计值。
- 基于有偏好的原始分布,当重新估计单词的分布时,将增加更多的计数来反映先验。
伪计数是根据前面的单词的概率来定义的。所以很明显,电池会有高的伪计数,同样的生命也会有高的假计数。所有其他单词都有零的伪计数,因为它们的概率在先验中是零,也是由一个参数μ控制的。当我们重新估计这个词的分布时,我们要用W的概率把μ加到连通的帐户上。
唯一改变的步骤:
把从这个主题中产生的单词的计数连接起来之前,要通过将Prior中的单词添加到伪计数中来增加这些单词的概率。所以实际上人为地夸大了它们的概率。 - 为了实现这个分布,还需要将伪计数μ加到分母上。
这是所有的伪计数的总和加了所有的单词这将使它成为一个伽玛分布。
这是一种直观的很合理的修改方法,从理论上讲,这是可行的,它可以计算出MAP的估计值。考虑μ的两个极端情况是很有用的。
- 如果把μ设为0会发生什么?
这实际上就是要移除这个先验。所以从某种意义上说,μ表示之前的优势。- 现在如果把它设为正无穷会怎样?
这就是说,之前的数据是如此之强以至于根本不会去听数据。
- 最后,将这个分布固定在先验上。
你知道为什么要把将这个分布固定在先验上吗?
当μ不定式时,基本上占主导。事实上,要把它设为精确的这个分布。这就是为什么背景语言模型实际上是一种强加先验的方法因为它会迫使一个分布和我们给出的完全一样,那就是背景分布。
因此,在这种情况下,我们甚至可以强制分配完全专注于电池寿命。但是这并不会奏效,因为它不能吸引其他单词。它会影响计算电池寿命的准确性。所以在实践中,μ是介于两者之间的。所以这是一种施加先验的方法。
- 我们还可以施加一些其他的约束条件。例如,
1)设置任何参数,这些参数将在需要时不断地包含0。
2)将Pi的值设为零,这意味着我们不允许该主题参与生成该文档。这是合理的当然,当我们有之前的类比强烈地暗示了这一点。
第二部分
PLSA的一些不足之处:
1)不是生成模型(因为我们可以计算一个新文档的概率。因为需要pis来生成文档,但是pis与我们在培训数据中拥有的文档绑定在一起。因此,我们无法计算未来文档的pis。)
2)有很多参数,复杂,容易过拟合(很难同时找到一个好的局部最大值。)
3)如果我们训练我们感兴趣的文档时,没有太大问题,但当训练大数据时,会导致过拟合。
LDA改进
1)将PLSA作为一个生成模型,在模型参数的基础上增加一个狄利克雷(Dirichlet)
从这个意义上说,LDA只是PLSA的一个贝叶斯版本,现在参数变得更加正则化了
2)它可以像PLSA那样计算最高覆盖范围和主题词分布,但没有PLAS那么多参数。
LDA的介绍
1)所有这些参数都是可以自由改变的,而且我们不会强加任何先验。
词的分布现在被表示为θ向量,在θ中,每个主题都有一个向量。
一组参数是pis也表示成一个向量
LDA和PLSA的区别:LDA不允许释放链。将迫使从两个Dirichlet分布中提取。有四个特定的向量选择的概率,例如Pis。
- Dirichlet分布
阿尔法参数矢量控制Dirichlet分布,Dirichlet分布告诉我们pi的哪个向量更有可能(Dirichlet分布是向量上的分布)
根据alpha的不同,我们可以用不同的方式来描述这种分布,但是有了充分的选择,pis比其他的更有可能。 - 主题或单词分布是从另一个带有β参数的Dirichlet分布中提取的。
- 从Dirichlet分布的联合pis开始,这个pi将告诉我们这些概率。将使用p(theta)来进一步选择要使用的主题,这当然非常类似于PLSA模型。
alpha有k个参数,对应于我们对文档pis的k值的推断。
β有n个值对应于控制我们词汇表中的m个单词。
比较PLSA 与LDA的不同
1)PLSA更为复杂
2)第一个方程一样(产生一个单词的所有可能性的总和,是我们从混合模型中得到一个单词的概率。)
这个方程是所有主题模型的核心假设。
求和部分:选择主题的概率乘以从这个主题观察单词的概率的乘积。
3)第二个公式
在LDA公式中有一个PLSA分量,但是LDA公式会在这里添加一个和积分。所以LDA的pis不是固定的,它们是从原始分布中提取出来的,如图所示。
这就是为什么我们必须取一个积分,来考虑我们可能从这个Dirichlet分布中得到的所有可能的pis。
4)第三个方程
在整个集合的可能性中,添加了更多的组件。
方程二、三: 在这个区域里,我们只是加入积分来考虑不确定性,当然,我们增加了Dirichlet分布,包括参数的选择,pis和θ
LDA的参数估计和推理
参数:alpha、betas。
方法选择过程:
最大似然函数太过复杂,我们感兴趣的参数不再是LDA中的参数。用基于参数的基本推理后验推理又很难,所以用近似推理。
总结:
1)基本任务设置:将测试数据作为输入,然后输出k主题。(每个主题的特点是词的分布。还将输出每个文档中涉及的这些主题的比例)
2)PLSA是最基本的主题模型。
3)通过施加先验,LDA比PLSA提高了。(这导致了理论上更有吸引力的模型。然而,在实践中,LDA和PLSA往往提供类似的性能,因此在实践中,PLSA和LDA在大多数任务中都能同样良好地工作。
)
第一部分是对概率主题模型一个回顾
第二部分如何自动标注主题模型
第三部分比较LDA和PLSA在不同人物下的经验,结论是他们表现相似。