由于毕设需要,上学期对LDA进行过一段时间的学习,近来,博客开启,也想把LDA的学习心得写一写,一方面与方便与大家探讨,同时也算是复习下吧,毕竟也要开始科研了,老板要催科研进度了嘛。
首先,我想讲讲我对LDA的总体想法,这也是本篇博文的内容。之后,我会介绍学习LDA的数学基础。然后,讲讲LDA的细节,特别是吉布斯采样环节,这也是难点(鄙人这样认为,至少我还没怎么搞懂,希望在接下来的日子一起学习)。
LDA起源于自然语言处理领域,提出时旨在解决主题发现、文本分类问题,之后得到广泛推广,现在应用于各大领域,本人做的是LBSN中的社区发现,也有一席之地。我要说的有如下几点:
第一,LDA是干嘛的?作为一个学数学、计算机的学生,看到一个新的算法或者方法,我首先想知道的就是这个东西的输入、输出是什么。这里只是讲解其在文本处理方面的输入输出,这也是最原始的功能。既然是处理文本的,那么其输入就是:大量的文档集合(Documents)。由于LDA基于词包的假设,即各个单词之间是完全无序的,不考虑其出现的先后顺序(exchangeability),因此输入可以看作是:一包词项(可重复);输出为:这些单词以一定概率属于不同的类别,也叫主题,主题的个数需要事先制定。其实质就是一个分类问题。得到每个单词属于不同主题的概率,那么自然就可以得出每篇文章属于不同主题的概率了。因此LDA称为是主题模型技术(Topic Model)。
第二,LDA的优势在哪?为何这样一个模型得到如此广泛的研究,也称为隐语义处理技术,因为它能发现单词之间的语义关联性,例如,乔布斯与苹果,这两个单词计算机看来完全是不相关的,但是通过LDA发现它们之间有很强的的关联性,属于同一主题的概率很大,这给搜索就带了便利。
第三,为何说LDA is a simplest method?LDA源于PLSA等模型,但是加入了先验分布,这在数学角度是贝叶斯学派唱上了主角。自此以后,一发不可收拾,各个研究都想借用LDA的思想,将其模型扩展、演变,推广到各行各业,因此回头来看,LDA可称为鼻祖级别了,所有就说它最简单了。
第四,LDA的思想精髓是什么?这个比较高大上,鄙人只是讲解下自己的想法,若喷,请慢喷。其实质是构建一个事件的贝叶斯网络结构图(因果关系图),然后搞清楚各个元素的先验分布。构建因果关系图是关键,这就是用模型去刻画一个现实世界的过程。例如,在文本主题发现问题中,构建模型的关键就是如何刻画人们在写成一篇文档,用那些单词的过程。在写一篇文章时候,首先是想这段话我要写什么中心思想,然后围绕着这个中心思想,我会用哪些词语,哪些词语概率高,哪些低。因此LDA认为单词的出现是先以一定概率出现一个主题,然后在特定主题下,以一定概率出现某个单词。那么输入是整个词包,所有单词的出现情况是已知的,要求的是每个主题出现的概率以及在每个主题下每个单词出现的概率。这就是LDA中的参数估计问题,也就是吉布斯采样、变分推理等所要解决的问题。
好了,今天就先写到这了,等下开始回顾论文之后,再开始写后面的内容。