一、LDA能用来做什么?

LDA(Latent Dirichlet Allocation)是一种文档生成模型。它认为一篇文章是有多个主题的,而每个主题又对应着不同的词。一篇文章的构造过程,首先是以一定的概率选择某个主题,然后再在这个主题下以一定的概率选出某一个词,这样就生成了这篇文章的第一个词。不断重复这个过程,就生成了整片文章。当然这里假定词与词之间是没顺序的。

LDA的使用是上述文档生成的逆过程,它将根据一篇得到的文章,去寻找出这篇文章的主题,以及这些主题对应的词。

LDA是非监督的机器学习模型,并且使用了词袋模型。一篇文章将会用词袋模型构造成词向量。LDA需要我们手动确定要划分的主题的个数,超参数将会在后面讲述,一般超参数对结果无很大影响。

LDA之理论

二、LDA算法的实现

1、多项式分布

多项式分布(multinomial)是二项分布在两点分布上的延伸。在两点分布中,一次实验只有两种可能性,p以及 (1-p)。例如抛一枚硬币,不是正面就是反面。在多项式分布中,这种可能的情况得到了扩展。例如抛一个骰子,一共有6种可能,而不是2种。

设某随机实验如果有k个可能情况 A1、A2、…、Ak,分别将他们的出现次数记为随机变量X1、X2、…、Xk,它们的概率分布分别是p1,p2,…,pk,那么在n次采样的总结果中,A1出现n1次、A2出现n2次、…、Ak出现nk次的这种事件的出现概率P有下面公式:
LDA之理论
这里,p1,p2…pk都是参数

回到LDA身上,一篇文章的生成过程,每次生成一个词的时候,首先会以一定的概率选择一个主题。不同主题的概率是不一样的,在这里,假设这些文章-主题符合多项式分布。同理,主题-词也假定为多项式分布。所谓分布(概率),就是不同情况发生的可能性,它们符合一定的规律。

2、文章生成过程:上帝不断地掷骰子

那么一篇文章的生成过程可以表示为:

  1. 抛掷这个doc-topic骰子,得到主题编号z
  2. 选择编号为z的topic-word骰子,得到词w
  3. 不断重复步骤1以及步骤2 

 

3、参数估计

上面我们已经知道了主题分布和词分布都属于多项式分布,只是它们的参数究竟是什么值,我们还无从知晓。如果我们能估算出它们的参数,我们就能求得这些主题分布和词分布。LDA的主要目的就是求出主题分布和词分布,距离这个目的,我们近在咫尺。

LDA之理论

 

相关文章:

  • 2021-08-23
  • 2021-05-19
  • 2021-10-08
  • 2021-05-27
  • 2021-11-28
  • 2021-06-30
  • 2022-12-23
猜你喜欢
  • 2021-09-01
  • 2021-11-07
  • 2021-10-17
  • 2021-12-22
  • 2022-01-15
  • 2021-07-08
  • 2021-10-13
相关资源
相似解决方案