topic数量是指什么_如何确定LDA的topic个数

以前一直是按经验设置topic个数,数据量小就少点,数据量大就多点,大概50-500吧。最近有同学跟我讨论,才想起来该找找相关文献,学习一下如何科学的确定topic个数。

1.用perplexity-topic number曲线

LDA有一个自己的评价标准叫Perplexity(困惑度),可以理解为,对于一篇文档d,我们的模型对文档d属于哪个topic有多不确定,这个不确定程度就是Perplexity。其他条件固定的情况下,topic越多,则Perplexity越小,但是容易过拟合。

测试文本集中有M篇文本,对词袋模型里的任意一个单词w,P(w)=∑z p(z|d)*p(w|z),即该词在所有主题分布值和该词所在文本的主题分布乘积。

模型的perplexity就是exp^{ - (∑log(p(w))) / (N) },∑log(p(w))是对所有单词取log(直接相乘一般都转化成指数和对数的计算形式),N的测试集的单词数量(不排重)

回到正题,知道了topic个数和perplexity的关系之后,我们可以画出如下图的曲线(摘自《Latent Dirichlet Allocation》Figure 9):

有了这张图,显而易见,我们就可以得出topic又少,Perplexity也少小的topic数量,图中即为50。

2.用topic_number-logP(w|T)曲线

画出topic_number-logP(w|T)曲线,然后找到曲线中的纵轴最高点便是topic数量的最佳值。

3.计算topic之间的相似度

来自论文《一种基于密度的自适应最优LDA模型选择方法》,其中第三节提出一个定理:当主题结构的平均相似度最小时,对应的模型最优。

4. 利用HDP(层次狄利克雷过程)

在《机器学习系统设计》的第4章主题模型的4.3节:选择主题个数 中,提到:

“有一个能够自动确定主题个数的方法叫做层次狄利克雷过程(HDP)”

“在该方法中,主题本身是由数据生成的,而不是预先将主体固定,然后通过对数据的反向工程把它们恢复出来。

在论文《Hierarchical Dirichlet Process》第6章中,如下图所示,HDP模型和LDA模型的Perplexity-topic number曲线:

通过分析该HDP中混合成分抽样直方图发现,最佳的混合成分数正好与LDA的最优主题数一致,从而解决LDA中最优topic个数的选择问题。

参考文献:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值