本文记录在B站学习LDA主题模型时看的两个视频的笔记(讲的通俗易懂,很推荐)
B站链接:
什么是LDA?(Part 1 of 2)
吉布斯采样训练LDA(Part 2 of 2)
什么是LDA模型?
问题提出
希望有一个算法可以将以上文档分成主题
假设现在我们有 4 个文档,每篇文档有 5 个单词(且简单起见,总共只有 4 个单词:ball、planet、galaxy、referendum)。那么现在我们有 3 个主题(Science、Politics、Sports),你会考虑将这些文档分为什么主题?(人为划分)
但是以上的结果是我们人类知道单词是什么意思,但是计算并不知道,计算机只知道单词之间相同/不相同,或这些词是否会出现在同一个文档中,所以这就有了LDA,也是LDA起作用的地方。
LDA
几何学方法
构建了一个三角形,每个角上是主题,然后将所有文档扔到三角形中,使文档靠近它们所属的主题:
可以看到每篇文档有了它们对应的主题,且一篇文档可能有多个主题。
那么如何将这些文档以最完美的形式放入这个三角形中?——这就是LDA发挥作用的地方。
产生文档的机器(类比 举例)
以上这个机器用来产生文档,很小的概率会生成原始的文档。
比如现在我们有两个机器去生成文档,分别产生一篇假的文档,我们去比较这两篇假文档与真实文档的区别,发现第一个机器产生的文档更像原始文档,表明第一个机器的“设置”更好。
多个机器产生文档,去找到最好的“设置”——>主题
LDA框架
LDA公式表示
什么是狄利克雷分布
举例
那么会发生什么?
黄点会移动到角落
若换成这三种东西,又会发生什么?
以上都是狄利克雷分布的例子
概率密度函数
概率密度函数表示:
其他
假设角落是主题,黄点是文章,你认为哪一个是 主题-文档 的狄利克雷分布?
显然是中间那个:
将狄利克雷分布想象成分布的分布:
更多的主题,更多的维度?(狄利克雷分布可以存在于任何维度)
主题-单词
总结
如何产生文档
通过狄利克雷分布和多项式分布生成文档
生成与原始文档相同的文档的概率是非常低的
两个不同设置,上面一个生成与原始文档相同的文档的概率更高
总结
机器只能给出主题1、主题2、主题3…(分为多少个主题,是需要设置的超参数)以及各自最可能的单词,但是并不知道这些主题是什么,所以还需要认为命名。
生成语料库中的大量文档,之后与原始文档进行比较,找出狄利克雷分布中点的最佳排布方式(最好的“设置”),从而最大化概率(训练目标)
如何训练LDA——>Gibbs Sampling
训练目标
机器只能给出主题1、主题2、主题3…(分为多少个主题,是需要设置的超参数)以及各自最可能的单词
特点一
文章尽可能是一个主题(一个颜色)
特点二
所有文档中相同的词应该尽可能是单色的
对于停用词,可以采用一些NLP技术进行处理,去除不重要的词
所以训练目标是:
1)每篇文章尽可能是一个主题
2)每个词尽可能是一个主题
那么采用什么方法呢?
Gibbs Sampling
举例
只知道相对位置,不知道具体位置
…经过多次排列
但也许这不是最完美的方式
文档-单词
对于绿色的ball:
先看成除三种主题颜色之外的颜色:
只看文档一中的所有词:
看所有文档中单词为 ball 的颜色:
上面一行的含义:如果从文档一中选择一个词,它是topic1/2/3的概率是多少?
下面一行的含义:如果从所有文档中相同的词随机选一个,它是topic1/2/3的概率是多少?
将以上的值进行相乘,作为概率:(加一个α,防止为0)
显然,Topic3的概率更大
采用矩形(古典概型)表示
以上是对一个这么处理,然后依次对每个词处理(在一个语料库中循环多次)。最终结果:
总结
计算机要做的事:为文档中所有的词着色,得到主题分布
我们要做的事:根据着色结果,命名主题,做后续分析
吉布斯采样要做的事:最大化概率!!!
两个视频的联系
第一个视频解释了什么是LDA和狄利克雷分布,使用以上机器生成文档,并且当这些文档具有很好的主题分布的时候,这个机器的设置是最佳的,并且发现当最大化获得与原始文档概率的时候,我们就有这个最佳设置(主题分布);而第二个视频就是阐述通过什么方法(Gibbs Sampling)来最大化这个概率(训练目标——>使文章更单色;使单词更单色)。