上周我们留了一个问题:在使用最大似然法时如何去掉那些并不重要但实际上出现次数又很多的单词呢?
这周就以这个问题开始进一步的学习概率主题模型吧。
一元语言混合模型
怎么能避免那些并不重要但实际上出现次数又很多的单词对结果的影响呢?我们很自然的就会想到将a,the这类单词和其他的单词分开,也就是需要两个或多个分布来表示一个模型。
正如下图所展示的一样,我们用了两个分布来生成一个文本挖掘的文档,选择将 θB θ B 作为主题背景, θd θ d 作为主题。
此时假如文本中有一个单词‘the’,那么这个the的概率应该怎么算呢?
P("the")=P(θd)∗P("the"|θd)+P(θB)∗P("the"|θB)=0.5∗0.000001+0.5∗0.03 P ( " t h e " ) = P ( θ d ) ∗ P ( " t h e " | θ d ) + P ( θ B ) ∗ P ( " t h e " | θ B ) = 0.5 ∗ 0.000001 + 0.5 ∗ 0.03
回顾一下,我们改变了原本使用一个词分布的模型,换为使用两个词分布的混合模型,以此来避免a,the这类单词的干扰
混合模型的评价
我们评价这个模型的效果的方法基本类似:
- 两个主题(主题,主题背景)
- 主题覆盖率
考虑一下极端情况,其中一个模型的占比为0,即 P(θB) P ( θ B ) 为0时,也就变回了我们之前的一元语言统计模型。
计算方法
- 数据:文本d
- 混合模型:参数 Λ=(p(w|θB),p(w|θd),P(θB),P(θd)) Λ = ( p ( w | θ B ) , p ( w | θ d ) , P ( θ B ) , P ( θ d ) )
- 两个一元模型: θB θ B (主题背景), θd θ d (主题)
- 混合的权重(模型选择): P