对于一篇文章来说,分析它的主题能够达到理解文本的效果。主题建模就是通过在文档集合里面学习、识别和提取主题的过程。对于一篇文章 或者说一个文档来说,它包含着多个主题,而如何去区分不同的主题,是通过主题下面包含的多个单词来进行分析,我们能够将文档转化为一个数值向量,每一个维度对应一个主题。

作用

  • 分类文档 (比如说不同领域的新闻:科技、金融、体育新闻。通过对新闻的主题建模,能够将文本按照主题来归类)
  • 检索(当用户输入关键字的时候,就能够确认检索的文本的主题,从而在数据库进行匹配,最终返回相符的文本)

文本模型的可交换性

目前,大多数文本模型都基于“bag-of-words”的假设,即

  • 1.一篇文档内N个词之间的顺序可以随意互换,不影响建模过程
  • 2.一个语料库内M个文档可以随意互换顺序,哪个文档在前哪个文档在后都无所谓。这两个性质合称为文本模型的可交换性

四种流行的用于主题建模的算法

1.LSA(Latent semantic analysis)

LSA的核心思想就是将我们所拥有的文档-术语矩阵分解成相互独立的文档-主题矩阵和主题-术语矩阵。词和文档是用向量来表示的,通过向量之间的关系,来判断词与词之间 或者文档与文档之间的关系。

2.pLSA

pLSA,即概率潜在语义分析,采取概率方法替代 SVD 以解决问题。其核心思想是找到一个潜在主题的概率模型,该模型可以生成我们在文档-术语矩阵中观察到的数据。

3.LDA

将狄利克雷视为「分布的分布」。本质上,它回答了这样一个问题:「给定某种分布,我看到的实际概率分布可能是什么样子?」

一篇文档,可以看成是一组有序的词的序列。从统计学角度来看,文档的生成可以看成是上帝抛掷骰子生成的结果,每一次抛掷骰子都生成一个词汇,抛掷N词生成一篇文档。在统计文本建模中,我们希望猜测出上帝是如何玩这个游戏的,这会涉及到两个最核心的问题:上帝都有什么样的骰子;上帝是如何抛掷这些骰子的;第一个问题就是表示模型中都有哪些参数,骰子的每一个面的概率都对应于模型中的参数;第二个问题就表示游戏规则是什么,上帝可能有各种不同类型的骰子,上帝可以按照一定的规则抛掷这些骰子从而产生词序列。

4.lda2vec

社交媒体如微博、脸书上也会有大量值得研究的文本,这些文本规模大、更新速度更快而且语义信息不丰富、噪声高。传统的pLSA和LDA模型泛化能力弱、主题词可解释性差、分类准确性低。

文档向量表示随着word2vec模型的提出和深度学习的发展,近年来出现了很多相关研究成果。以LDA为代表的主题模型认为文档的生成是不同主题混合的结果;神经网络模型习惯于将文档表示为稠密向量。如果结合前者覆盖范围广和后者维度低的特点生成新的模型,可以做到快速检测,同对隐含语义的解释也会更好。lda2vec模型就是基于这一思想提出的。