机器学习

01 主题模型 - 大纲

2018-12-19  本文已影响144人  白尔摩斯

一、大纲

主题模型是机器语言在自然语言处理中的一个应用,主要做的是无监督的任务。

一般情况下,如果我们拿到一篇文章,这篇文章是无标记的文章。我希望通过机器学习的相关算法,帮助我们得到文章的分类结果。这是我们的初衷。

之前提到过,在传统的聚类算法中,当我们的数据量足够大、特征非常多的时候, 我们的距离度量公式就相对得失去了某种意义。即高维的数据会面临维度爆炸的问题,高维空间里边边角角里的数据之间的距离就没有什么意思了。如果距离的度量失效,那么聚类算法的结果就会非常差。

因此,传统的无监督的算法在处理文本分类的时候就起不到很好的作用了。因为文本分类在特征处理的时候我们会使用词袋法和TF-IDF,这些方法基于我们的语料库生成一个当前文章的词向量,即根据单词在文章中出现的频率/频数,来决定词向量中每一个元素的大小。

相对而来,生成的词向量是比较稀疏的,因为一篇文章中不太可能包含语料库中的所有词组。这种情况下怎么办呢?我们引入了主题模型来解决这种距离度量失效的情况。相对来说,这个结果可能会稍微的好一些。

但目前业界中,对主题模型的争议也比较大。很多人也认为主题模型的效果不太好。或者可以这么理解:模型再好,不如语料好。即,优质的语料可以帮助提高文章分类的效果,不管你用的是什么模型。


主题模型的内容

1、LSA模型

根据LSA模型,引申出了一个基于概率的模型PLSA,PLSA模型本质上是一个生成式模型。

2、LDA模型

之前在聊统计学的时候,我们认为统计学是分两个学派的:
1、传统统计学的频率派;
2、贝叶斯学派。
实际上频率派在传统统计学中,我们认为其少了一个先验条件。
贝叶斯认为世界上任何一件事情的发生都是由之前的某些事情来决定的。
所以贝叶斯要考虑很多先验条件。即 P(A|B) = P(A)×P(B|A)/P(B); 贝叶斯考虑A事件发生概率前,先要考虑其后验条件B;

LDA模型 是基于PLSA这个模型,在加入了一些先验的条件后得到的一个主题模型。


二、主题模型

传统判断两个文档相似性的方法是通过查看两个文档共同出现的单词的多少,如TF-IDF等,这种方法没有考虑到文字背后的语义关联,可能在两个文档共同出现的单词很少甚至没有,但两个文档是相似的。

举个例子,有两个句子分别如下:
“乔布斯离我们而去了。”
“苹果价格会不会降?

实际上有生活常识的人都知道,一个公司的创始人去世后,意味着股价肯定会跌。所以上面两句话本质上在说苹果公司的事情,但这两句话中没有任何一个词是一样的。如果我们用传统的词袋法去分析,我们会发现两篇文章的相似度是0。这种情况下我们得考虑主题模型。

\color{red}{在文章中可以被直接观测的,只有词向量。}
\color{red}{主题无法被直接观测,所以是一个隐含变量。}
\color{red}{人类可以根据自己的主观认知理解文章中的隐含意义,而机器本身不行。}
\color{red}{让机器拥有这种理解隐含变量的能力,就是我们想达到的目的。}

主题模型(Topic Model)是用来在一系列文档中发现抽象主题的一种统计模型。直观来讲,如果一篇文章有一个中心思想,那么一定存在一些特定词语会出现的比较频繁。比方说,如果现在一篇文章是在讲苹果公司的,那么“乔布斯”和“IPhone”等词语出现的频率会更高一些;如果现在一篇文章是在描述微软公司的,那么“Windows”和“Microsoft”等词语出现的频率会更高一些;但真实情况下,一篇文章中通常包含多种主题,而且每个主题所占的比例各不相同,比如一篇文章中10%和苹果公司有关,90%和微软公司有关,那么和微软有关的关键字出现的次数应该是苹果关键字出现次数的9倍。

主题模型就是一种自动分析每个文档,统计文档内词语,根据统计的信息判断当前文档包含哪些主题以及各个主题所占比例各为多少。

主题模型是对文本中隐含主题的一种建模方法,每个主题其实是词表上单词的概率分布;

主题模型是一种生成模型,一篇文章中每个词都是通过“以一定概率选择某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到的;


模拟一个自由撰稿人的写作思路:

1、作者为写一篇文章构思了很多主题→以72%的概率选中了“苹果公司”为主题写文章→以0.23%的概率以“篮球”这个词开头写这篇文章。→以87%的概率以“Iphone”这个词为第二段的开头。

2、作者为写一篇文章构思了很多主题→以5%的概率选中了“篮球”为主题写文章→以90%的概率以“某个球星”这个词开头写这篇文章。→以0.035%的概率以“Iphone”这个词为第二段的开头。

分析 以我们对社会的认知,我们知道当以苹果公司为主题时写的文章,Iphone这个词出现的概率,会比以篮球为主题写文章时出现的概率高很多。反之在以篮球为主题写文章时,Iphone这个词可能就压根不会出现。

我们想对当前文章生成一个主题的时候,我们会从文章库中进行寻找。比如现在是NBA的休赛期,我们认为在新闻发布的文章库中,NBA的新闻出现的比较少。而当苹果开新的发布会时,我们认为新闻文章库中,苹果公司主题的文章会变多。

本质上我们刚刚构建的两个 自由撰稿人的写作思路 是一个贝叶斯网络。


结合上述这些基本概念我们来看下面的公式:

分析公式:
首先思考:P(词组,主题,文章) = P(w,t,d) 的联合概率如何求?

文章→主题→词组:给定主题后,文档和词组是条件独立的。p(w|t.d) = p(w|t);

主题模型 克服了传统信息检索中文档相似度计算方法的缺点,并且能够在海量的数据中找出文字间的语义主题。主题模型在自然语言和给予文本的搜索上起到了重要的作用。

怎样才能生成主题?对文章的主题应该怎么分析?这是主题模型要解决的问题。

02 主题模型 - SVD矩阵分解、LSA模型

上一篇下一篇

猜你喜欢

热点阅读