主题模型的发展及应用研究
2018-07-28马欣
马欣
摘要:主题模型是自然语言处理中的重要模型之一。随着科技的发展,主题模型也在不断完善。文章简要介绍了主题模型发展经历的几个阶段,其主要介绍了LDA模型。文章对主题模型确定主题数的方法进行了总结,并通过一个具体实例,来进一步了解LDA模型以及在应用中遇到的问题。这有助于更加深刻理解主题模型,特别是LDA模型。
关键词:主题模型发展;LDA 主题模型;主题数
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)15-0016-03
1 概述
主题模型是一种概率生成模型,主要包括概率潜在语义索引(pLSI)和潜在狄利克雷分(LDA)。主题模型的应用广泛,涉及很多方面,尤其是在自然语言处理中。
2 主题模型的发展
科技在飞速发展,数据量也越来越大。数据的形式不再仅限于数字形式,文字形式的数据同样是不可忽视的。文本数据隐藏着大量有价值的信息,需要我们去挖掘探索。想要快速了解大量的文本数据讲的是什么,主题模型随之产生。
2.1 向量空间模型
向量空间模型(VSM),它是将文本数据数字化,转化为文本空间中的数字向量。然后通过计算文本空间中向量之间的相似性来判断文档之间的相似性。
2.2 TF-IDF文本模型
TF-IDF文本模型是最早的文本模型之一。它是以信息论中TF-IDF公式为基础,模型的核心就是这个公式。公式包括词频和逆文档频率。词频是该词在文本中出現的次数除以文本中所有词的个数,而逆文档频率是总文本数与含该词的文本数的商的对数。最后两个值的乘积就是tf-idf值。所有词的tf-idf值组成一个矩阵。这个算法简单快速,结果也比较符合实际。但是算法仅以词频来判断词的重要性,是很片面的。
2.3 潜在语义索引
潜在语义索以(LSI)模型主要是对tf-idf矩阵进行奇异值分解[1],将文档向量与词向量映射到低维空间.LSI模型原理简单,通过一次奇异值分解就能获得主题,同时使词义问题得到解决。然而这个文本模型有缺点:奇异值分解十分耗时,尤其是对高维度矩阵。其次主题数的选择对实验的结果影响很大,并且缺乏统计基础,很难有一个直观的解释。
2.4 一元文本模型
一元文本模型是最简单的概率文本模型,文档中的每一个词都是从一个单独的多项分布中独立采样得到的。
2.5 混合一元文本模型
混合一元文本模型是在一元文本模型的基础上引入了一个离散分布的隐变量。文档的生成是先选择一个主题,再生成词。因此生成的每一篇文档都属于一个主题,而现实中的文档往往有多个主题。
2.6 概率潜在语义索引
由于混合一元模型每篇文档只能有一个主题,所以提出了概率潜在语义索引(pLSI)。它的结构中加入一层隐含主题层,为了跟各变量之间的语义关系产生一定关联同时降维。pLSI模型是以LSI模型为基础的概率生成模型。它的隐含主题是由词汇特征聚合而来的,从而降低了文档集的维度。由于LSI文本模型是以VSM模型为基础,所以它并不能很好的处理同义词或者一词多义的情况。然后pLSI模型恰恰可以解决这个问题,因为它的隐含主题是由单词按照一定概率生成的[2]。但是pLSI模型并不完美,随着文档和词的数量的增加,结构会变得越来越复杂,计算量也会增大。
2.7 LDA主题模型
LDA主题模型是一种能够从离散数据中提取其隐含语义主题的生成概率模型,它是包含文档、主题、词的三层贝叶斯结构。它是用概率分布来描述数据集,这个概率分布展现了数据集中频繁出现的内容,即主题。模型中文档生成过程:先从语料库中选一定数量的主题,然后为每个文档指定主题分布,文档主题间的分布是狄利克雷分布。也就是说每个文档可以有多个主题,只是每个主题在文档中出现的概率不一样。之后从主题分布中随机选择一个主题,根据该主题中词的分布,随机选取出一个词,词与主题之间的分布是多项分布。一直持续这个过程,直到文档生成。文本生成过程如图:
从上图中我们可以得出θ、w、z的联合分布的概率计算公式,图中M表示文档篇数,N表示一篇文档中词的个数,w表示单个单词。对公式进行调整,对θ积分,对z求和,就获得一个文档的生成概率。最后将所有文档的生成概率相乘,就获得所有文档的生成概率。到现在为止,我们已经对语料库建立了一个LDA主题模型。模型中有两个超参数α,β,还有两个隐变量θ,z。接下来就是除掉隐变量,求出超参数。公式中α,β是狄利克雷分布的超参数,θ表示一篇文档的主题分布,z是一篇文档的服从多项分布的某个主题。
LDA主题模型的参数求解方法,主要有期望最大化(EM)算法、马尔科夫链蒙特卡罗(MCMC)算法以及变分推理三种。EM算法是机器学习中的一种非监督聚类算法,当遇到参数特别多,一次性求解计算开销大的时候,EM算法有很大的优势。MCMC算法中的吉布斯采样使用较广泛。变分推理是一种贝叶斯近似推理方法,就是选择简单的概率函数来近似复杂函数,以此来简化计算。这种方法本身比较复杂,但是比其他两种方法速度要快。
2.8 主题模型的演变及应用领域
LDA主题模型基于袋装假设,没有考虑词与词和文档与文档之间的顺序,这就成为模型改进的线索。文献[5]中提到一篇文档中单词的主题与其周围的单词之间存在密切的关系,考虑到主题周围词的影响,提出了基于中心词的上下文主题模型。文献[6]提出细粒度的主题情感混合模型。将主题分为全局主题与局部主题,利用滑动窗口将词共现信息由文档集降到句子级,获得更加细粒度的主题。之后在LDA主题模型的结构中增加一层情感层,实现情感分析。
除了对主题模型进行改进外,主题模型也会结合一些算法。文献[7]中将主题模型与随机森林算法结合,主题模型对文本数据降维同时去除一定的文本噪声,加上随机森林算法特征选择方法,获得很好的分类效果。文献[8]中将主题模型与SVM算法结合,得到的分类精度较高。
为了应对当今海量的数据,主题模型随之改变。文献[9]中改进了并行主题模型算法AD-LDA算法,提出了基于spark的并行化LDA主题模型,进一步提升算法处理海量数据的能力。文献[10]中提出了基于时间和用户两个维度的LDA主题模型算法,并且将算法应用于Hadoop分布式框架中,得到很好的结果。
主题模型在推荐系统方面有一定的应用,例如文献[11]中建立一个基于主题模型的法院文本典型案例的推荐模型,结合了文本相似度的计算方法,获得比较好的推荐结果。文献[12]中考虑到正样本与负样本,再结合LDA主题模型算法来对物品进行综合评分,从而实现对用户更好的推荐。
主题模型在文本聚类、信息检索、语音识别、预测系统、过滤系统和图像处理等领域都有一定的应用。文献[13]中提出了一种基于LDA主题模型算法的一种广告点击率预测算法。文献[14]中将普通微博与广告微博分开,对这两种类型的数据分别使用LDA主题模型的算法,获得两类微博的特征,然后使用分类器算法,对广告进行过滤。
LDA主题模型在图像处理方面的应用主要有两个方面:场景分类与目标识别。场景分类简单来说就是对人类视觉的模拟,使用计算机来识别图像中隐藏的语义信息。目标检测就是用计算机实现人的视觉功能[15]。
3 主题模型的应用
这里我们以一个具体的实例来进一步理解主题模型。通过实验,明确在建模前、建模时、建模后的一些问题,以及了解使用主题模型进行文本挖掘的难点。
3.1 文本预处理
首先设置工作路径,对文本数据进行批量读取。接下来要提取出文本数据,去掉文本数据中一些与研究无关的东西,例如空格,英文字母等。然后要对文本数据进行分词、去停止词等操作。
3.2 删除低频词
首先这里我们可能需要进行数据表重塑,统计分词的词频,删除词频为0的词。之后将词语放入语料库,并将其转换为文档词条矩阵。对这个文档词条矩阵使用tf-idf算法。为了保留尽量多的词,设置tf-idf值的中位数作为阈值,tf-idf值大于这个阈值的词就保留下来。
3.3 LDA主题模型主题数的确定
文献[3]中提出绘制不同主题数下对应的复杂度曲线,复杂度最小的曲线对应的就是主题模型的主题数。但是此方法选出的主题数一般偏大,导致主题之间的相似度较大。文献[17]中用层次狄利克雷(HDP)来确定主题数。它可以自动确定主题数,但算法的时间复杂度较高。文献[18]中使用贝叶斯算法来确定主题数目,同时要采用Gibbs抽样的方法。文献[19]中指出KL散度[20]与文章主题相似度之间存在一定的关系,主题数随着KL散度的减小而越优。文献[21]通过实验证明主题数与语料库中文本数量和文本主题之间相似度有关。文献[22]中提出基于主题相似度和复杂度的方法来确定主题数目,此方法用于科技文献获得很好的效果,但是没有在其他文本数据上进行验证。文献[23]中将LDA主题模型与深度学习中的word2vec结合,使得主题词之间相似性关系的进一步加强,之后进行主题自适应聚类。这样模型可以自动计算出主题数。
还有就是使用复杂度和对数似然值,结合k折交叉验证来确定主题数。复杂度随着主题数量的增加递减,对数似然值随着主题数量的增加递增。当两者变化趋于平缓时的主题数就可以作为主题数量。但是进行一次比较来确定主题数,是不可行的。所以要进行K折交叉检验,这样获得K个模型和K个主题数。这K个主题数的均值作为最终的主题数。K折交叉验证可以有效避免模型过拟合、欠拟合,结果更加符合统计的思想。
3.4 基于吉布斯采樣建立主题模型
吉布斯采样要知道样本中一个属性在其他所有属性下的条件概率,然后通过这个条件概率来产生各个属性的样本值。吉布斯采样是MCMC算法中的一个采样算法。采样就是通过将一个不太好解决的问题转化为一个能够通过采样来解决的问题,但是采样方法不确定。吉布斯采样就是为了得到一个样本,没有计算概率但能够通过其他方法统计概率。
建模完成后就可以查看文档的话题词汇以及主题词汇概率,查看文档之间的对应关系可以通过绘图查看各个话题之间的关系。
4 结论
文章梳理了主题模型的发展过程,从最早的向量空间模型到LDA主题模型。模型的结构在不断地完善,功能也在一步一步地强大。主题模型的结构简单,但是结构还是存在缺陷,更多的研究者通过改进模型结构或者结合其他算法,使得主题模型应用更加广泛。今后,可以通过不断的优化算法,从更加细节方面改进模型来实现更加强大的功能,应用于更加广泛的领域。
参考文献:
[1] 孙海霞, 成颖. 潜在语义标引(LSI)研究综述[J]. 现代图书情报技术, 2007, 155(9).
[2] 李卫平, 杨杰, 王钢. 多变参pLSI文本敏感特征抽取算法[J]. 计算机应用研究, 2015, 32(9).
[3] Blei D M, Ng A Y, Jordan M I. Latent Dirichlet Allocation[J]. Journal of Machine Learning Research, 2003(3).
[4] 肖智博. 排序主题模型及应用研究(D). 大连: 大连海事大学, 2014.
[5] 常东亚, 严建峰, 杨璐. 基于中心词的的上下文主题模型[J]. 计算机应用研究, 2017, 35(4).
[6] 郑玉桂. 面向电商评论细粒度观点挖掘的拓展主题模型研究(D). 浙江: 浙江工商大学, 2017.
[7] 姚立, 张曦煌. 基于主题模型的改进随机森林算法在文本分类中的应用[J]. 计算机应用与软件, 2017, 34(8).
[8] 文聪聪, 彭玲, 杨丽娜, 池天河. 主题模型与SVM组合的小尺度街区用地分类方法[J]. 地球信息科学学报, 2018, 20(2).
[9] 肖建. 基于spark并行LDA主题模型的研究(D). 重庆: 重庆大学, 2016.
[10] 贾东风. 基于分布式MBUT-LDA的微博用户主题挖掘(D). 重庆: 重庆大学, 2014.
[11] 吕宾, 侯伟亮. 基于主题模型的法院文本典型案例推荐[J] , 微电子学与计算机, 2018, 35(2).
[12] 张航, 何灵敏. 一种负样本改进的LDA主题模型推荐算法[J]. 中国计量大学学报, 2018, 29(1).
[13] 朱志北, 李斌, 刘学军, 等. 基于LDA的互联网广告点击率预测研究[J]. 计算机应用研究, 2016, 33(9).
[14] 邢金彪, 崔超远, 孙丙宇, 等. 基于隐含狄列克雷分配分类特征扩展的微博广告过滤方法[J]. 计算机应用, 2016, 36(8).
[15] 何伟林, 谢红玲, 奉国和. 潜在狄利克雷分布模型研究综述[J]. 信息资源管理学报. 2018, 4(1).
[17] Ten Y, Jordan M, Beal M, et al. Hierarchical Dirichlet Processes[J]. Journal of the American Statistical Association , 2007, 101(476).
[18] Griffiths T L, Steyvers M. Finding Scientific Topics[J]. Proceedings of the National Academy of Sciences of the United States of America, 2004, 101(SI).
[19] Arun R, Suresh V, Veni Madhavan C E, et al. On Finding the Natural Number of Topics with Latent Dirichlet Allocation: Some Observations[A]. //Advances in Knowledge Discovery and Data Mining [M]. Springer Berlin Heidelberg, 2010.
[20] Duda R O, Hart P E, Stork D G. Pattern Classification[M]. John Wiley & Sons, 2012.
[21] 曹娟, 张勇东, 李锦涛, 等. 一种基于密度的自适应最优LDA模型选择方法[J]. 计算机学报, 2008, 31(10).
[22] 关鹏, 王宇. 科技情报分析中LDA主题模型最优主题数确定方法研究[J]. 现代图书情报技术, 2016, 274(9).
[23] 王婷婷, 韩满, 王宇. LDA模型的优化及其主题数量选择研究—以科技文献为例[J]. 數据分析与知识发现, 2018, 13(1).