自然语言处理-LDA主题模型

图灵汇官网

LDA主题模型简介

LDA(Latent Dirichlet Allocation)即潜在狄利克雷分布,是一种文档生成模型,也是一种非监督机器学习技术。LDA认为文档是由多个主题组成的,而每个主题则由不同的词汇构成。生成文档的过程是这样的:首先,按照一定概率选择一个主题;然后,在选定的主题下,再以一定概率选择一个词汇。如此反复,最终生成整篇文档(这里假定词汇之间没有顺序,即将词汇无序地放入一个“词袋”中,这种方式可以使算法更为简化)。

学派分类

频率主义学派

频率主义学派认为每个事件都有一个确定的概率,我们可以通过实验获得频率,进而估计概率。例如,投掷硬币时,正面朝上的概率是确定的。假设投掷5000次,有2000次正面朝上,3000次背面朝上,那么正面朝上的概率就是2/3。这种学派对应于PLSA主题模型,其假设如下:

  1. 假设上帝有两种类型的骰子:一种是文档-主题骰子,每个骰子有K个面,每个面代表一个主题编号;另一种是主题-词汇骰子,每个骰子有V个面,每个面对应一个词汇。
  2. 假设有K个主题-词汇骰子,每个骰子有一个编号,编号从1到K。
  3. 每次生成文档前,上帝都会制造一个特定的文档-主题骰子,然后重复文档词汇生成过程:投掷这个文档-主题骰子,得到一个主题编号,再选择这个编号对应的主题-词汇骰子,投掷该骰子得到一个词汇。

贝叶斯学派

贝叶斯学派认为,如果某人只投掷一次硬币且结果是正面朝上,则该硬币正面朝上的概率为100%,这种结论显然是不合理的。对于此类问题,可以用二项分布来表示一系列的成功或失败情况。最好的方法是使用Beta分布来表示我们的先验信息(在统计学中称为先验信息)。Beta分布的定义域为(0,1),这与概率的范围一致。

Beta分布与二项分布的共轭先验性质

二项分布指的是重复n次独立的伯努利试验。每次试验只有两种可能的结果,且这两种结果互斥,独立,与其他各次试验结果无关,事件发生的概率在每次独立试验中保持不变。当试验次数为1时,二项分布服从0-1分布。

二项分布的似然函数:

LDA主题模型原理

LDA模型是在PLSA模型的基础上引入了参数的先验知识,即假设文档到主题的多项分布参数以及主题到词汇的多项分布参数均服从狄利克雷分布。

初始时,随机为文档中的每个词汇分配主题;然后统计每个主题下出现的词汇数量分布以及每个文档下主题的数量分布。接着,排除当前词汇的主题分配,根据其他所有词汇的主题分配估计当前词汇的主题;用相同的方法不断更新下一个词汇的主题,直到文档下主题的分布以及主题下词汇的分布收敛,算法停止。这里的关键是如何根据其他所有词汇的主题分配估计当前词汇的主题,也就是Gibbs采样公式。

对于文档d中的每个主题z,其在文档d中出现的概率θd:

其中pti表示文档d对应k个主题中第i个主题的概率,计算方法如下:

对于主题t中的每个词汇,生成不同词汇的概率向量ϕt:

其中pwi表示主题t生成V中第i个词汇的概率。计算方法如下:

根据枚举主题t,得到所有pj(wi|ds),其中j取值1到k。然后可以根据这些概率值为文档ds中的第i个词汇wi选择一个主题。最简单的想法是选取使pj(wi|ds)最大的主题tj(注意,这里的j是唯一的变量),即argmax[j]pj(wi|ds)。然后,如果文档ds中的第i个词汇wi选择了与原先不同的主题,将会影响θd和ϕt的值(根据前述计算公式很容易得出)。这些变化反过来又会影响p(w|d)的计算;对文档D中所有文档d中的所有词汇w进行一次p(w|d)的计算并重新选择主题视为一次迭代;如此进行n次迭代后,最终会收敛到LDA所需的结果。最后附上一张原理图,哈哈!

本文来源: 图灵汇 文章作者: 爱了信中国