当前位置: 首页 > 科技观察

如何找到好的主题模型量化评价指标?这是对流行方法的总结

时间:2023-03-14 20:57:42 科技观察

基于LDA(LatentDirichletAllocation)等统计主题模型,Biterm的应用使得对大量文本的信息汇总和提取成为可能。但是,对于提取的主题的质量以及如何进行定量分析和评价,目前还没有明确的标准。同时,随着神经网络的发展,编码-解码、GAN等无监督模型开始进入主题模型的应用,如何判断这些模型生成的主题的有效性就显得尤为重要。同时,这些神经网络本身也可以作为评估方法之一。本文对主题模型的评价指标进行了探讨,总结了目前流行的评价方法,展望了该领域未来可能的发展方向。1.主题模型从宏观上讲,主题模型是一种统计模型,用于发现一系列文档中的抽象主题。一般来说,这些话题都是用一组词来表示的。如果一篇文章有??一个中心思想,某些词会出现得更频繁。例如,如果一篇文章是关于狗的,那么像“狗”和“骨头”这样的词会出现得更频繁。如果一篇文章是关于猫的,那么“猫”和“鱼”等词出现的频率会更高。而一些诸如“this”、“and”之类的词在两篇文章中出现的频率大概是差不多的。如果一篇文章10%与猫相关,90%与狗相关,那么与狗相关的关键词出现频率将是与猫相关关键词的9倍左右。另一方面,主题模型使用数学框架来表示文档的这一特征。如图1所示,最左边是各种主题(事先确定好的),然后文字中不同的颜色对应不同的主题。比如黄色可能对应狗,那么文本中与狗相关的词就会被标记为黄色,这样最后就可以得到每个主题的一个可能的主题分布。图1:主题模型(来源:https://medium.com/@tengyuanchang/%E7%9B%B4%E8%A7%80%E7%90%86%E8%A7%A3-lda-latent-dirichlet-allocation-%E8%88%87%E6%96%87%E4%BB%B6%E4%B8%BB%E9%A1%8C%E6%A8%A1%E5%9E%8B-ab4f26c27184)本文主要是引入主题模型的量化评价指标,所以对主题模型不作过多解释。如果你对topic模型没有什么基础知识,可以看一下机器之心贴出的比较适合入门的教程,需要的可以自己拿。同时,除了教程中提到的概率模型,一些深度学习模型(GAN、Encoding-Decoding等)也开始进入这个领域,比如基于GAN的ATM(Adversarial-neuralTopic)型号)具有良好的性能。观察上面提到的主题模型,我们可以发现,无论是概率模型LDA,还是深度学习模型ATM,都面临一个问题,就是如何评价这些模型,这些模型抽取的主题是否真的有用?也就是说,这些模型提取出来的东西真的能表达一个主题吗?举个很简单的例子,主题模型抽取一个主题(很多词)的时候,如果模型好,那么这些词肯定能表达同一个主题,如果不好,那么这些词就是不相容的。一般来说,主题越多,我们得到的结果就越具有判别力,但相应地,主题越多,结果就越没有意义。有的题目只有几个字,字也不对。另外,经过一些专家的实验,发现主要有四种情况看起来很和谐:a.通过词对传递后联系在一起的主题。比如“糖”、“甘蔗”、“糖醋排骨”,糖是用甘蔗生产的(主题可以是“甜食”),糖醋排骨加糖(主题可以是被“做菜”)、糖醋排骨和甘蔗很难形成主题。但在关系传递中(由“糖”连接),这三个词被放在同一个主题中。b.不寻常的话。由于算法错误或其他原因,完全不相关的词出现在该主题中。C。未知关系。词与词之间没有明确的联系。d.不平衡。词与词之间的联系很明确,但是词义很宽泛,比如“主题”、“作业”,很难确定一个很明确的主题。本文其余部分首先介绍了两类评价模型,然后分析了这些评价模型的效果,最后对评价模型的发展进行了展望。2利用模型中的知识对主题模型进行评价目前的评价方法大多使用一些参数或词之间的关系来判断模型的好坏,很少直接使用模型中得到的东西来衡量主题模型。Xing[4]最近提出了几种基于吉布斯采样期间估计的分布的评估方法。2.1主题稳定性在LDA的GibbsSampling过程中,会产生(估计)两种分布——一种是给定文档时主题的分布,另一种是给定主题时词(Φ)的分布,而题目稳定性主要考虑的是二次分布。如公式所示,对于给定的主题k,需要计算所有GibbsSampler抽取的词分布的平均值与每个GibbsSampler抽取的词分布的相似度(原论文中使用余弦相似度[4]、欧几里德距离、KL-散度和Jaccard相似度来计算这个相似度),求和后得到这个话题的话题稳定性。从公式中可以清楚地看出,与之前的计算方法相比,主题稳定性不需要参数和冗余语料。但是,一些常用词词频较高,所以当它们出现在话题中时,话题稳定性会很高,但又与话题无关,导致出现一些话题稳定性高的较差话题。2.2Topicdispersion上一节提到,GibbsSampling产生了两个分布,topicstability用的是二次分布,就是从词的角度来判断话题的优劣。本节中的分散使用的是第一种分布,也就是说我们的注意力已经转向了文档层面。通常,此参数是通过对多个吉布斯采样器的结果进行平均而获得的。同时,从这些GibbsSampler的结果中,我们也可以得到它们的标准差(standarddeviation)。但是标准差过于敏感,所以为了得到更稳定的结果,我们还可以用均值除以差值得到变异系数(cv)。按照常识,均值和变异系数都可以用来区分一个主题的好坏。好的主题的均值和cv应该比较小,反之亦然。在NYT语料库的测试中,这三个评价标准的效果如下图所示。图2:pass获得的三个评价结果(来源:https://arxiv.org/abs/1909.03524)图2中,蓝色代表goodtopics(3.4分),橙色代表poortopics(1分),可以看到只有cv对两个科目的区分程度最大,而均值(mu)和标准差(sigma),蓝色和橙色的区别不大,也就是说很难区分好科目和差科目主题。因此,cv是表示主题分散度的最佳方式,因此计算某个主题k的主题分散度的公式可以表示为:D表示第D篇文章,k表示主题k。3.人工评估结果的模拟在第一节??中,提到了主题模型中经常出现的各种错误。基于这些错误,很多人提出了不同的方法。这些方法(包括本文后面提到的方法)都是为了解决上面的一种。或多个问题。目前,传统方法大多采用目测或先验知识,常用的方法也很多。最直观的方法是让人们判断提取出的题目好不好,但显然,这种方法需要耗费大量的人力、物力和时间。因此,人们开始探索如何用公式或算法来模拟和估计人的判断结果。人类判断的方法主要分为直接法和间接法(后面详述),所以那些模拟人类判断的算法大致可以分为这两类。当然,这些方法的分类有很多,但本节介绍的主要是模拟人工评价结果的部分,所以分类分为直接法和间接法。有些方法称为直接方法。这些方法主要是基于语言的内部特性。例如,Newman等人提出的TopicCoherence。(2010)利用PMI(PairwisePointwiseMutualInformation)分析了项间的相干性,其他人也改进了这种相干性的计算方法,但本质上还是计算相干性(后面会详细介绍之后);还有一些方法叫做间接方法,这些方法不是直接通过语言内部特征来判断的,而是使用了一些其他的方法,比如在下游任务中的表现,或者在测试集上的表现(confusion,perplexity).只是包括。本节的其余部分将详细介绍这些方法。3.1混淆(perplexity)简单来说,perplexity就是用概率来计算一个主题模型在测试集上的表现。困惑度越低,主题模型越好。具体来说,它计算给定主题分布的文档的对数似然。下式中,Phi表示给定的主题矩阵,α参数决定了主题的分布,w指的是我们要预测的文章(d,与训练得到的文章主题相同,α).得到log-likelihood后,perplexity就很容易计算了。公式如下(这里的分母一般是文章的字数):根据定义可以看出,对数似然(log-likelihood)越高,说明文章越好提取主题表达特定主题的能力,提取主题的质量越高,混淆程度越小。但是这里没有办法找到对数似然。Wallach09a(http://dirichlet.net/pdf/wallach09evaluation.pdf)提出了一些估计可能性的方法。有兴趣的可以自己看看,因为它的效果不是很好(下面会介绍原因),所以这里就不详细介绍它的计算方法了。但为了测试这种方法的有效性,有人在AmazonMechanicalTurk平台上进行了大规模的实验。他们根据每个主题的困惑度找出最有可能的5组词,然后随机添加第六组词,并要求参与者找出这组随机词。如果每个参与者都能识别出离群词,那么我们就可以认为提取的主题是优秀的,并描述一个特定的主题。但是,如果很多人将正常的5组词中的其中一组识别为异常,则意味着他们看不到这些词之间的联系有任何逻辑,我们也可以认为该主题不够好-因为该主题it描述不清楚。这个实验表明,混淆的结果与人类判断的结果相关性较小。3.2主题连贯(Coherence)由于混淆在很多场景下效果不佳,所以本节将着重介绍最后一种方法,即主题连贯。主题连贯性主要用于衡量主题内的词语是否连贯。那么这些词怎么能被认为是连贯的呢?如果这些词相互支持,那么这组词就是连贯的。换句话说,如果你把多个主题的词放在一起,用一个完美的聚类器对它们进行聚类,那么同一个主题的词应该属于同一个类别。根据定义,可以发现第一节提到的四个问题中的前三个可以通过主题连贯来解决。在纽曼等人之后。(2010)提出使用PMI来计算主题连贯性,Mimno等人。(2011)基于主题连贯性的概念,并使用基于条件概率的方法来计算连贯性,Musat等人。(2011)也提出利用WordNet的层级概念来获取同年主题之间的联系;随后,Aletras和Stevenson(2013a)也提出了一种基于分布相似性来寻找一致性的方法。目前常用的几种方法(整理于Roderetal.(2015),在Gensim中封装函数,可直接调用)如下(假设一个主题,包括{game,sport,ball,team}):PMI:为了理解其他几种方法的计算方法,首先要看一下PMI的计算方法(如下图所示)。在后两种方法中,epsilon越小,得到的结果就越小。这个公式可能看起来有点混乱,但没关系,你可以先放一放。后面看了例子,这个公式就很好理解了。C_uci:这种方法是由加州大学尔湾分校(UCI)的DavidNewman提出的,所以称为UCI方法。该方法的基本原理是基于滑动窗口计算给定主题词中所有词对(one-setsegmentation)的点双向互信息(PMI)。所以上面提到的例子主题{game,sport,ball,team}的UCIscore是:C_umass:这个方法是由HannaM.Wallach等人提出的。在马萨诸塞大学(UMASS),所以它被称为UMASS方法。该方法的基本原理是在文档并发计数的基础上,采用单前(每个词只与它前面的词形成一个词对)切分和对数条件概率来计算连贯性。所以刚才的exampletopic的UMassscore是:C_npmi:这个方法使用了normalizedpointmutualinformation(NPMI),和C_uci很像,只不过PMI换成了NPMI,NPMI是C_uci的增强版。具体来说,NPMI的计算方法如下图所示。C_v(Coefficientofvariance):该方法基于滑动窗口,对主题词进行one-set分割(比较一组中任意两个词形成词对),利用归一化点互信息(NPMI)和余弦相似度间接获得连贯性。C_p:这种方法也是基于滑动窗口,但是分词方法是单前的(每个词只和它前后的词组成词对),用Fitelson相关性来表示连贯性。3.3人工判别仿真结果3.3.1间接法如上所述,人工判别法也分为两类,一类是直接法,一类是间接法。人工判别的间接方法称为异常词检测,主要是在主题模型抽取的每个主题中加入一个异常词,然后让人找出异常词。为了模拟这种间接人工判别的结果,JeyHanLau(2014)从发送给人工判别的主题词中提取词与词之间的连接特征。提取方法如下:然后结合这些特征,使用RankingSVMRegression找出异常词。同时,Jey还使用NPMI提取词与词之间的连接特征。最终结果如下图所示:相关性对比结果(来源:https://www.aclweb.org/anthology/E14-1056.pdf)图中为Jey的方法(WI-Auto-PMI,WI-Auto-NPMI)和人工判别(WI-Human),可以看出这些方法和人工判别得到的结果是比较一致的。3.3.2直接法另一种人工方法称为直接法,比较简单粗暴,就是让人们对每个题目直接打分。对于这种直接的方法,Jey使用了以下4种方法对topic进行打分:OC(ObservedCoherence)-Auto-PMI:计算一个topic中单词的PMI,计算方式其实就是PMI,如下图:同上,Jey使用NPMI对主题进行打分,同时,他使用对数条件概率(LCP)进行计算:最后,Jey使用Aletras和Stevenson(2013a)中的分布相似性(DS)对主题进行打分。最终结果如下图所示:Correlationcomparisonresults(source:https://www.aclweb.org/anthology/E14-1056.pdf)从上图可以看出,这些方法和手册的结果discrimination在大部分结果上还是很一致的,只有部分结果(PMI等)还没有很好的一致。4.展望与结论本文主要介绍了主题模型中存在的一些问题和当前流行的主题模型评价方法,并对主流的主题模型评价方法进行了简要分类。对于未来,我有两个主要想法。一是适应时代的发展,就是如何更好的利用这些数据集,数据集越来越多,小数据集的学习模型也越来越多。或者如何找到合适的小数据集处理方法是一个很好的尝试方向,甚至可以直接使用监督模型来评估主题模型;二是永远记住本质问题,这也是为什么我要在文章的第一节中提出主题模型常见错误的原因。评价方法的本质就是发现这些错误。站在这些专家的肩膀上,我们可以分治这些常见的错误,用不同的模型来解决不同的错误,或者说如何找到这些错误的共同特征,从而完成一个更通用的建模,这些都是我们的方向可以在这个领域进行探索。当然,这个领域未来的发展方向还有很多,我这里只是抛砖引玉。希望你喜欢这次探索!