LDA主题模型学习笔记

时间:2024-03-19 18:07:42

(1)LDA的基本介绍(wiki)

 LDA是一种典型的词袋模型,即它认为一篇文档是由一组词构成的一个集合,词与词之间没有顺序以及先后的关系。一篇文档可以包含多个主题,文档中每一个词都由其中的一个主题生成。它以概率分布的形式揭示每个文档的主题,以便在分析一些文档以提取其主题分布后,可以根据主题分布进行主题聚类或使用文本分类。每个主题都用一个词分布表示。
 通俗说就是:你计算机给我推测分析网络上各篇文章分别都写了些啥主题,且各篇文章中各个主题出现的概率大小(主题分布)是啥。其中有四个分布:
①Beta分布是二项式分布的共轭先验概率分布
②狄利克雷分布(Dirichlet分布)是多项式分布的共轭先验概率分布
③每一篇文档的主题分布满足多项分布,并且每一个文档的主题分布都是从 α \alpha α这个狄利克雷分布取样而来。
在这里插入图片描述

(2)贝叶斯学派和频率学派

①频率学派:频率学派相信概率是一个确定的值,讨论概率的分布没有意义。在机器学习中的体现就是优化似然函数单纯从自然观测
②贝叶斯学派:概率表示的是客观上事实的可信程度,也可以说成是主观上主体对事件的信任程度,它是建立在对事件的已有认识基础上的
贝叶斯学派强调了先验知识的重要性。所以贝叶斯学派的思考方法如下:先验分布 π ( θ ) \pi(\theta) π(θ)指的是人们先前对事物的看法
在这里插入图片描述

  说白了频率派认为参数是客观存在,不会改变,虽然未知,但却是固定值;贝叶斯派则认为参数是随机值,因为没有观察到,那么和是一个随机数也没有什么区别,因此参数也可以有分布,

(3)LDA模型的“历史演化”(个人理解)

①LSA
(1)单词向量空间+内积计算两个文本之间的相似度,具体来说就是通过统计一个文本里面的单词词频来进行表示。这样会容易忽略单词的多义性
(2)话题向量空间+内积计算文本之间的相似度。这种特征提取方法可以对文本进行比较好的表征。其中文本在话题空间的表示为 [ a 1 , a 2 . . . . . a n ] [a_1,a_2.....a_n] [a1a2.....an],其中 a i a_i ai表示文本属于话题i的概率
(3)所以利用LSA的方法只要进行文本-单词矩阵的矩阵分解分解成文本-话题话题-单词矩阵就可以

②PLSA
PLSA又称为概率潜在语义分析,是一种利用概率生成模型正在加上上述LSA的思想对文本集合进行话题分析的无监督学习方法。该模型最大的特点是加入了主题这一隐变量,文本生成主题,主题生成单词,从而得到单词-文本共现矩阵。图如下:
在这里插入图片描述
其中:
(1)文本i的文本-话题矩阵的分布是满足一个多项分布 [ t o p i c 1 , t o p i c 2 . . . . . t o p i c n ] [topic_1,topic_2.....topic_n] [topic1topic2.....topicn]
也就是说这篇文章i是 话题 1 话题1 话题1的概率是 t o p i c 1 topic_1 topic1,其中topic的个数由自己给出。
(2)话题j的话题-单词矩阵的分布是满足一个多项分布 [ b 1 , b 2 . . . . . b m ] [b_1,b_2.....b_m] [b1b2.....bm]
也就是说这篇话题j里面单词m所占的份额是是 b m b_m bm,其中m实施语料库里面出现的不同单词个数
(3)按照这样的生成模型的逻辑,再现给出的文本-单词矩阵的概率计算方法为:
∏ P ( w , d ) n ( w , d ) ,( w , d )表示文本 w 和单词 d 成对出现 \prod P(w,d)^{n(w,d)},(w,d)表示文本w和单词d成对出现 P(w,d)n(w,d),(wd)表示文本w和单词d成对出现
其中计算 P ( w , d ) = P ( d ) ∗ P ( w ∣ d ) P(w,d)=P(d)*P(w|d) P(w,d)=P(d)Pwd,并且可以用可以用贝叶斯公式计算 P ( w ∣ d ) P(w|d) Pwd),具体的如下:
P ( w , d ) = P ( d ) ∗ ∑ i = 1 n P ( w ∣ t o p i c s i ) ∗ P ( t o p i c s i ∣ d ) P(w,d)=P(d)*\sum_{i=1}^nP(w|topics_i)*P(topics_i|d) P(w,d)=P(d)i=1nP(wtopicsi)P(topicsid)
其中 P ( d ) P(d) P(d)表示选中文档d的概率, P ( w ∣ t o p i c s i ) P(w∣topics_i ) P(wtopicsi)表示在 t o p i c s i topics_i topicsi里面选中词语w的概率, P ( t o p i c s i ∣ d ) P(topics_i|d) P(topicsid)表示在d里面选择 t o p i c s i topics_i topicsi的概率。
  可以得到优化模型的似然函数,具体的求解可以用EM算法来求解。

③LDA(时间原因没有做完完整分析,只说个大概,以后弄懂了来补充)
  LDA简单来说就是上述PLSA+贝叶斯方法,具体表现就是
  ①认为每个文档的文档-话题分布都满足参数为 α \alpha α的先验狄利克雷分布
  ②认为每个话题的话题-单词分布都满足参数为 β \beta β的先验狄利克雷分布
  ③EM算法(极大似然估计思想)求解出了两个未知但固定的参数的值,因此LDA真的只是pLSA的贝叶斯版本,文档生成后,两者都要根据文档去推断其主题分布和词语分布,只是用的参数推断方法不同,LDA可以采用吉布斯采样的方法去做。这样做的好处是可以防止过拟合