主题模型--频率派与贝叶斯学派之争始末

一、词袋模型/N-gram模型的明显缺陷    

这两个模型最大的缺陷就是无法识别出两个不同的词或词组具有相同的主题,造成这个缺陷的可能原因:

-- N-gram模型是基于马尔科夫网络
-- 中心词只和前N个词或者后N个词有关系
-- 中心词是具体的词,因此两个不同的中心词就是不同的团,自然就认为是两个不同的主题


二、PLSA    

1、一个用生成模型来建模文章的生成过程,具体文本生成过程如下:

-- 假设有K个主题,M篇文章
-- 对语料库中的任意文章d,假设该文章有N个词
-- 则对于其中的每一个词
   -- 我们首先选择一个主题z,然后在当前主题的基础上生成一个词w
   -- 生成主题z和词w的过程遵照一个确定的概率分布
   -- 设在文章d中生成主题z的 概率为p(z|d),在选定主题的条件下生成词w的概率为p(w|z),则给定文章d,生成词 w的概率可以写成:
    
2、给上式子做一个简化,假设给定主题z的条件下,生成词w的概率是与特定的文章无关的,则公式可以简化为:    

也即是,我们预估了两种分布:定义在文章上的主题分布p(zk|dm)和定义在主题上的词分布p(wn|zk),把这两种分布作为待估计的参数
-- 我们需要找到最优的参数,使得整个语料库的Log似然 函数最大化。由于参数中包含的zk是隐含变量(即无法直接观测到的变量)
   -- 将zk作为隐变量,词wn是观测变量
-- 因此 无法用最大似然估计直接求解,可以利用最大期望算法来解决

三、LDA    

1、其文本生成过程与pLSA基本相同

-- 不同的是为主题分布和词分布分别加了两个狄利克雷(Dirichlet)先验
   -- 加入狄利克雷先验的作用
   -- 这就要从频率学派和贝叶斯学派的区别说起
      -- pLSA采用的是频率派思想,将每篇文章对应的主题分布p(zk|dm)和每个主题对应的词分布p(wn|zk)看成确定的未知常数,并可以求解出来;
      -- LDA采用的是贝叶斯学派的思想,认为待估计的参数(主题分布和词分布)不再是一个固定的常数,而是服从一定分布的随机变量。
      -- 这个分布符合一定的先验概率分布(即狄利克雷分布,具体理解参考文章:https://www.zhihu.com/question/26751755)
      -- 并且在观察到样本信息之后,可以对先验分布进行修正,从而得到后验分布
      -- 这种观测到样本信息之后,修正先验分布得到后验分布的方法,类似于聚类、高斯分布修正先验的θ、高斯概率模型,得到后验分布的情况
         -- 所谓先验分布,即是预先设置一个先验的概率分布模型
         -- 所谓后验分布,即是通过观测到的实际样本信息,修改先验模型后得到的模型"    

2、LDA之所以选择狄利克雷分布作为先验分布的原因

-- 比如为什么不选择正太分布
   -- 因为它为多项式分布的共轭先验概率分布,后验概率依然服从狄利克雷分布,这样做可以为计算带来便利

四、LDA模型详解    

1、评价LDA模型主题K值是否合适,可以使用困惑度(perplexity)这个指标

-- 即是得到文章中的主题分布核主题中词分布,具体使用困惑度确定主题个数K的步骤如下:

具体生成步骤如下:

第一步:进行主题聚类,设定生成k个类簇,然后选择各个主题类簇中的权重前m高的单词,来作为此主题的描述
-- lda = LDA(k=2, maxIter=20)
-- model = lda.fit(dataset)
-- k:表示要生成几个主题
-- maxiter:表示要迭代几次
-- model.describeTopics(m):如m=4,4表示用几个单词来表示主题
-- model.describeTopics()的输出是:第k个主题 | [4个单词] | [四个单词各自在主题类簇中的权重]

第二步:用训练完成的主体聚类模型,来进行,用第一步得到的主题,描述文档的训练,最终得到,每个主题,对每篇文档,的可描述可能性,具体得到的形式是(两个主题的情况下):文档label | 文档特征的稀疏矩阵 | [能用第1个主题描述这篇文章的概率,能用第2个主题描述这篇文章的概率]
-- transformed = model.transform(dataset)
-- model:是训练完的主题聚类模型
-- model.transform(dataset):将主题聚类模型应用于17篇文档的数据集中
-- model.transform(dataset)的输出是:文档label | 文档特征的稀疏矩阵 | [能用第1个主题描述这篇文章的概率,能用第2个主题描述这篇文章的概率]

2、使用非参数主题模型

好处是:

-- 在LDA基础之上融入分层狄利克雷过程(Hierarchical Dirichlet Process,HDP),构成一种非参数主题模型HDP-LDA    
-- 不需要预先指定主题的个数,模型可以随着文档数目的变化而自动对主题个数进行调整;

缺点是:

-- 在LDA基础上融入HDP之后使得整个概率图模型更加复杂,训练速度也更加缓慢,因此在实际应用中还是经常采用第一种方法确定合适的主题数目。"    

五、如何为推荐系统解决冷启动问题

1、冷启动问题一般分为用户冷启动、物品冷启动和系统冷启动三大类

-- 用户冷启动是指对一个之前没有行为或行为极少的新用 户进行推荐;
-- 物品冷启动是指为一个新上市的商品或电影(这时没有与之相关的 评分或用户行为数据)寻找到具有潜在兴趣的用户;
-- 系统冷启动是指如何为一个 新开发的网站设计个性化推荐系统。"    

2、解决系统冷启动的方法

-- 首先设定一个先验分布,然后根据实际线上数据,更新这个先验分布,得到一个后验分布:
-- 首先可以得到每个用户和电影对应的主题向量,除此之外,还需要知道用户主题和电影主题之间的偏好程度,也就是哪些主题的用户可能喜欢哪些主题的电影
-- 当系统中没有任何数据时,我们需要一些先验知识来指定,并且由于主题的数目通常比较小,随着系统的上线,收集到少量的数据之后我们就可以对主题之间的偏好程度得到一个比较准确的估计。"    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值