一个语义挖掘的利器——主题模型(组图)
优采云 发布时间: 2021-07-17 00:07一个语义挖掘的利器——主题模型(组图)
来自:
总结:
两个文档是否相关,往往不仅取决于字面上的重复,还取决于文本背后的语义联系。语义关联的挖掘可以使我们的搜索更加智能。本文重点介绍一个强大的语义挖掘工具:主题模型。主题模型是一种对文本隐含主题进行建模的方法。它克服了传统信息检索中文档相似度计算方法的不足,能够在海量互联网数据中自动找到文本之间的语义主题。近年来,各大互联网公司都开始了这方面的探索和尝试。让我们看看会发生什么。
关键词:主题模型
技术领域:搜索技术、自然语言处理
假设有两个句子,我们想知道它们是否相关:
第一个是:“工作没了。”
第二个是:“苹果会降价吗?”
如果是人来判断的话,我们一看就知道,这两个句子虽然没有共同的词,但还是很有关联的。这是因为,虽然第二句中的“apple”可能指的是我们吃的苹果,但因为第一句中有“Jobs”,我们自然会将“apple”解释为苹果产品。事实上,这种文本句子之间的相关性和相似性在搜索引擎算法中经常遇到。例如,如果用户输入一个查询,我们需要从海量的网页库中找到最相关的结果。下面是如何衡量查询和网页之间的相似度。对于此类问题,人们可以根据上下文进行判断。但是机器还好吗?
在传统信息检索领域,测量文档相似度的方法其实有很多,比如经典的VSM模型。但是,这些方法通常基于一个基本假设:文档之间重复的单词越多,它们相似的可能性就越大。这在实践中并不总是正确的。在很多情况下,相关程度取决于背后的语义联系,而不是表面的单词重复。
那么,这种语义关系应该如何衡量呢?事实上,在自然语言处理领域,已经有很多方法可以从单词、短语、句子和文本的角度来衡量。本文将介绍语义挖掘的强大工具之一:主题模型。
什么是主题模型?
主题模型,顾名思义,就是对文本中隐藏主题的一种建模方法。还是在上面的例子中,单词“apple”同时收录了Apple的主题和fruit的主题。对比第一句,苹果的主题与“乔布斯”所代表的主题相匹配,所以我们认为它们是相关的。
在这里,让我们先定义一下主题是什么。主题是一个概念,一个方面。它表现为一系列相关的词。例如,如果文章与“百度”主题相关,“中文搜索”、“李彦宏”等词出现的频率会更高,如果涉及“IBM”主题,则“笔记本”等会很频繁地出现。如果用数学来描述的话,题目就是单词在词汇表上的条件概率分布。词的相关性越近,其条件概率越大,反之亦然。
例如:
通俗地说,一个话题就像一个“桶”,里面收录了一些出现概率较高的词。这些词与主题有很强的相关性,或者正是这些词共同定义了主题。对于一个段落,有些词可能来自这个“桶”,有些可能来自那个“桶”,而一个文本往往是几个主题的混合体。举个简单的例子,见下图。
以上内容摘自网络新闻。我们划分了4个桶(主题),百度(红色),微软(紫色),谷歌(蓝色)和市场(绿色)。段落中收录的每个主题的单词都用颜色标记。从颜色分布我们可以看出,文中的主要思想是谈论百度和市场发展。在这方面,谷歌和微软的两个主题也出现了,但不是主要的语义。值得注意的是,像“搜索引擎”这样的词极有可能出现在百度、微软、谷歌这三个主题上。可以认为一个词被放入多个“桶”中。当它出现在文本中时,这三个主题在一定程度上得到了体现。
有了主题的概念,我们不禁要问,这些主题是怎么得到的?如何分析文章中的话题?这正是主题模型想要解决的问题。让我简单介绍一下主题模型的工作原理。
主题模型的工作原理
首先,我们从生成模型的角度来看文档和主题这两个东西。所谓生成模型,是指我们认为一个文章中的每个词都是通过“以一定概率选择某个主题,并以一定概率从该主题中选择某个词”的过程获得的。那么,如果我们要生成一个文档,其中每个词出现的概率为:
上式可以用矩阵乘法表示,如下图所示:
左
矩阵表示每个词在每个文章中的概率;中间的Φ矩阵代表每个话题中每个词的概率
,即每个“桶
表示每个文档中每个主题的概率
,可以理解为每个主题在一个段落中所占的比例。
如果我们有很多文档,比如很多网页,我们首先将所有文档进行分割,得到一个词汇表。这样,每个文档都可以表示为一个词的集合。对于每个单词,我们可以用它在文档中出现的次数除以文档中的单词数作为它在文档中出现的概率
。这样,对于任何文档,
左边
矩阵已知,右边两个矩阵未知。主题模型是使用大量已知的“words-documents”
Matrix,通过一系列的训练,推断出右边的“word-topic”矩阵Φ和“主题文档”矩阵Θ。
主题模型训练和推理主要有两种方法,一种是pLSA(Probabilistic Latent Semantic Analysis),另一种是LDA(Latent Dirichlet Allocation)。 pLSA主要使用EM(Expectation Maximization)算法; LDA 使用 Gibbs 采样方法。由于它们比较复杂,篇幅有限,这里只简单介绍一下pLSA的思想,其他具体的方法和公式,读者可以参考相关资料。
pLSA采用的方法称为EM(Expectation Maximization)算法,它由两个不断迭代的过程组成:E(期望)过程和M(最大化)过程。举个形象例子:假设食堂的厨师炸一道菜,需要分成两个人吃。显然,没有必要使用天平来准确称重。最简单的方法是先将菜品随机分成两个碗,然后观察数量是否相同,取较多的部分放入另一个碗中。重复这个过程,直到大家都看不到两个碗里的菜。到目前为止有何不同。
对于主题模型训练,“计算每个主题的词分布”和“计算训练文档中的主题分布”就像两个人分享食物。在E过程中,我们可以使用贝叶斯公式从“word-topic”矩阵中计算出“topic-document”矩阵。在M过程中,我们使用“topic-document”矩阵重新计算“term-topic”矩阵。这个过程一直是这样迭代的。 EM 算法的神奇之处在于它可以保证这个迭代过程是收敛的。也就是说,经过反复迭代,我们肯定可以得到趋于真实值的Φ和Θ。
如何使用主题模型?
有了主题模型,我们如何使用它?它的优点是什么?我总结了以下几点:
1) 可以衡量文档之间的语义相似度。对于一个文档,我们找到的主题分布可以看作是它的一个抽象表示。对于概率分布,我们可以使用一些距离公式(如KL距离)来计算两个文档的语义距离,从而得到它们之间的相似度。
2)可以解决多义词的问题。回想第一个例子,“Apple”可能是水果,也可能指苹果。通过我们得到的“word-topic”的概率分布,我们可以知道“apple”属于哪个主题,然后我们可以通过主题的匹配来计算它与其他文本的相似度。
3) 可以消除文档中噪声的影响。一般来说,文档中的杂音往往出现在次要主题中,我们可以忽略它们,只保留文档中的主题。
4) 它是无人监督且完全自动化的。我们只需要提供训练文档,它就可以自动训练各种概率,无需任何人工标注过程。
5) 与语言无关。只要任何语言都可以对其进行分割,就可以训练得到它的主题分布。
综上所述,主题模型是一个强大的工具,可以挖掘语言背后的隐藏信息。近年来,各大搜索引擎公司开始重视这方面的研发。语义分析技术正逐渐渗透到搜索领域的各种产品中。在不久的将来,我们的搜索将变得更加智能,让我们拭目以待。
纺纱世界