主题发现技术方法研究,本文主要内容关键词为:发现论文,方法论文,主题论文,技术论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
当前,面对海量的、异构的信息,用户往往难以全面地了解、准确地定位。针对这一问题,人们开展了诸多研究,提出了种种解决方案,主题发现(Topic Discovery)就是其中之一。主题发现的目的是处理和分析大规模信息并且使用户以快速有效的方式了解信息内容,发现信息中的主题,进而快速准确地定位所要获取的信息。
1 主题发现的定义
主题发现也被称为主题抽取或主题识别,目的是处理和分析大规模信息并且使用户以最快速有效的方式了解信息内容,发现信息中的主题。目前对于主题发现并没有一个明确定义,只是作为从复杂大规模信息源中获取主题并进行表现的一系列技术方法的总称。但是通过调研一系列相关项目和论文,笔者认为,主题发现可以分为广义和狭义的两种。
广义的主题发现的信息源可以包括文本、图片、声音、影像,等等。而发现主题的方式也较为灵活,只要是可以发现代表性信息的方法都可以列入其中。例如,针对文本的主题发现就可以有:从高频被引论文中抽取高频词来代表主题领域、基于语义局部性思想来界定主题领域、以词频变化率处于突发状态的主题词作为主题领域等多种方式[1]。
狭义的主题发现特指从大规模文本中发现主题的方法。目标在于在已经确定了文档集中的若干术语或概念的基础上进行主题聚类,发现文档中的核心主题,并选择适当方式呈现,这也是目前主流的主题发现方法研究模式。本文主要论述的就是这种狭义的主题发现方法。
主题发现的目标是利用一系列语义理解方法,从文本中自动抽取关键词或术语,并在此基础上加以聚类从而发现主题,以适当的方式呈现出来,其核心在于利用语料自身的组织和结构来发现语义信息,包括语料中的主题、主题的描述信息、主题的实例以及主题之间的关系等。这种方式克服了一般的信息抽取系统需要经过大量训练来适应语义环境的缺点,具有灵活的适应性。而采用聚类方法的优势在于,传统的基于词的匹配来发现语料中的信息,并没有考虑到语料本身的结构在理解语料时可以发挥的作用。因此,准确地说主题发现并不是某一项特定的技术,而是很多方面技术的整合应用。
2 主题发现主要过程
主题发现主要过程可以概括为:在已经确定了文档集中的若干术语或概念的基础上进行主题聚类,发现文档中的核心主题和子主题,并通过一定的结构化方法(如Ontology)保存。同时,在聚类的基础上,用户往往需要一个直观的总结,以判断某个主题是否是他们感兴趣的。因此,为了使主题更明确和更易理解,一般的主题发现任务还包括主题描述构建以及主题可视化两部分工作,见图l。
2.1 主题聚类
主题聚类[2-3]的目标是,不依赖于任何背景信息的支持,直接从数据中发现特定主题领域,是主题发现的核心步骤。基本思路是,首先将文档中的术语表现为一个可计算的元素(如向量),进而判断术语之间的相似度,并通过选择适当的聚类算法进行聚类。
2.1.1 相似度计算 相似度计算是主题聚类形成的基本依据。一般来讲,术语聚类可按照术语的相似性将领域中的术语划分成多个类组,同一类中的两个术语之间相似性,应当大于不同的类之间的两个术语的相似性。Nenadic提出了语境、语法和词法相似性的计算方法[4]。
图1 主题发现主要过程
1)词法相似性计算。衡量术语相似性最直接的方法就是衡量术语构成词之间的相似性。提出的词法相似性是指有一个共同的主要词和不同修饰词组成的术语之间的相似性。
2)语法相似性计算。是在某些指示并行应用术语的词法—语法模式的基础之上展开的一种方法。提出的并行模式主要有以下几种:枚举表示、并列、等格以及首语重复。其主要思想是所有处于并行结构中的术语都在句子中有相同的语法(如宾语或主语),并且与同一个动词和介词一起应用。
3)语境相似性计算。语境模式包括了语法类型以及其他的语法和词法信息。语境会根据一个名为CP-value的值来进行排序,超过某个域值的语境将被认为是显著语境。一个术语因此将包括一系列的语境,术语之间的相似性,也就可以通过语境之间相似性加以计算。
2.1.2 主题聚类的主要方法 目前针对文本主题分析的聚类技术基本上可以分为两类[3]:划分聚类法(Partitional)和层次聚类法(Hierarchical)。
1)划分聚类法。给定一个包含n个术语或者关键词的文档集,并要生成k个主题簇。一个划分聚类方法则要形成k个划分(k≤n),其中每个划分代表一个簇。通常会采用一个基本的划分准则,例如基于距离的相似度计算等,以便在同一个簇中的概念是相似的,而不同簇中的概念是相异的。划分聚类法常见的算法有K-Means[5],K-Medoids[6],CLARA[7],CLARANS[8],CURE[9]等。
2)层次聚类法。将概念组成一棵聚类的树。根据层次分解是自底向上的,还是自顶向下形成,层次聚类方法可以进一步分为凝聚和分裂层次聚类[4]。凝聚聚类(Hierarchical Agglomerative Clustering,HAC)方法是首先形成一个将每一个概念视为一个小的主题聚类,然后逐渐收拢。而分裂聚类(Divisive Hierarchical Clustering,DHC)方法是将所有概念视为一个大的主题聚类,进而按照一定标准进行拆分。层次聚类法典型的算法有BIRCH[10],ROCK[11],Chameleon[12]等。
划分聚类法的优势是可以利用文档集全局的信息(如熵值、术语分布情况等)来进行聚类划分。而另一方面,凝聚聚类算法可以生成小的可理解的聚类,这是划分聚类法所无法实现的。但是凝聚聚类方法在聚类的初期易出现决策错误,加重计算负担。因此,在实际的主题发现应用中,可将层次聚类和划分聚类两种方法结合。A.Pons-Porrata就提到了这个思想[13]。利用一个分层求解(Multilayered Clustering)的方法来实现层次。在每一个层次上应用划分聚类方法,将前一个层次的主题聚类,形成上层主题。混合法的常见算法有Scatter/Gather[14]和限制凝聚算法(Constrained Agglomerative Algorithms)[15]等。欧洲的SEKT(Semantically Enabled Knowledge Technologies)项目中应用的Polysecting-Hierarchical-K-Means(PH K-Means)也利用了这种混合算法的思想[16-17]。
需要特别指出的是,对于主题发现来说,目标文档集往往不是固定不变的,尤其是对于主题探测与追踪(Topic Detection and Tracking,TDT)这样的任务,常常会有新的文档不断地加入到文档集当中。这种情况下,上述的一些聚类方法往往需要全局的重新计算,计算成本很大。因此,许多专家在划分聚类和层次聚类的基础上研究了一系列的增量算法,针对新加入的文档进行增量计算,把新发现的概念或者术语融入到现有的主题结构中。典型的算法有Suffix Tree[17],DC-Tree[18]等。
2.2 主题描述构建
在实现了主题聚类之后,需要对主题聚类进行适当的描述,以使用户可以迅速清晰地了解主题的内容,判断该主题是不是自己感兴趣的,决定是不是要进一步深入了解。构建主题描述的主要方法是在主题内的文档集中将与主题密切相关的词、语句甚至片段抽取出来,并合理组织。形成主题描述的典型技术之一是多文档自动文摘[19-20](Multidocument Summarization)。该技术通过相似度计算可以判断多文档集合中冗余信息的多少,在句子的抽取时根据句子的相似度抽取冗余性最小的句子组成文摘句集合,可以看到句子相似度的值将在多文档文摘各项技术中发挥作用。进而判断哪些句子可以纳入到概述当中,又如何组织成可理解的概述。模式识别领域的Testor Theory[21]算法可以用来实现概述,与其他的多文档自动文摘不同,对于句子是否出现的判断是基于各个聚类中出现的不同数据的频繁度而计算出的,这样计算的效率较高。SEKT的OntoGen[22]系统中也考虑到了生成主题背景信息对于用户发现主题的重要性。系统选择的方法是提供描述主题的关键词。为了得到这些关键词,采用了图心向量法(Centroid Vectos)、支持向量机[23](Support Vector Machine,SVM)两种方法。
2.3 主题可视化
可视化是发现文档中主题的有效方法,利用可视化图形可以迅速和清晰地获得文档集主题领域的概览,帮助用户短时间内了解文档集全貌。同时通过一系列可视化的交互操作,能有效地提高用户搜索的特定主题效率。由于文档主题多是以在高维空间内的向量来表示,因此降维是在这部分涉及的主要技术,可以将文档映射到平面上。代表性的算法有SOM[24](Self-Organizing Maps)、线性子空间法[25](Linear Subspace Methods)和多维排列法[26](Multidimensional Scaling),等等。
3 主题发现代表应用系统分析
主题发现的利用目前多应用在主题探测与识别(TDT)、本体自动构建等领域。典型系统包括SEKT项目的OntoGen[22,27]和组件Text Garden[22],以及美国马萨诸塞州大学的TDTLighthouse[28]和A.Pons-Porrata等人开发的JERARTOP系统[29]等。
3.1 利用主题发现实现本体构建——OntoGen
3.1.1 系统开发的背景和目标 欧洲的SEKT项目进行了一系列的研究和尝试,并逐渐形成了一条从大规模文本中发现信息的主要技术路线。根据这条基本的技术路线,SEKT项目的研究人员在不同处理阶段采用了多种技术进行尝试。相关内容对于在大规模文本中发现主题的研究,十分有借鉴意义。同时,SEKT在应用层面将这个抽取主题、可视化、半自动的构建主题本体的整个处理过程全部整合到了Text Garden文本挖掘程序库中,并在此基础上设计了一个半自动的本体构建工具OntoGen。
3.1.2 系统的总体技术框架 首先,语义发现的各种算法要求每一篇文档表现为向量。因此,在文档呈现部分就是SEKT利用了其常见的一种文档处理格式词袋(Bag-of-Words,BOW)法,同时辅以IDF权重来表现某一个词对文章主题表现的代表性程度。其次,就要利用相关的潜在语义发现方法来发现文章中的主题,这里有两种方法较为常见,分别是潜在语义标引(Latent Semantic Indexing,LSI)[30]和概率潜在分析法(Probabilistic Latent Semantic Analysis,PLSA)[31]。而后,要建立文档与文档之间的管理,就要对文档进行聚类,哪些主题是文档集中的核心主题,文档间因为这些主题产生了怎样的关联。SEKT在其研究主题发现的第一阶段采用了K-Means算法进行聚类;之后又对这部分加以优化选择了PH K-Mean这种无监督的层次聚类法。
聚类之后的任务就是要对形成的类建立关系,SEKT在这部分引入了机器学习的理念,使用了利用概念共现概览和动态学习的方法。而可视化表现是发现文档中主题的重要一步,涉及的可视化降维技术有两种:线性子空间法和多维排列法,这两种方法具有一定的互补性,相结合并选择一定的呈现方式,可以生成良好的可视化效果。最后SEKT项目将主题发现的技术应用在了本体构建上,建立了半自动的构建本体的用户接口。
图2 Text Garden流程图
3.1.3 系统的关键组件 SEKT开发了Text Garden这样一个组件集合,主要利用了KDD技术,尤其是以主题本体组织的大量网络文档集的文本挖掘技术。Text Garden程序库根据应用分成了不同的部分,数据准备部分包括了转换、爬行器和相似度比较等功能;数据建模包括各种不同的算法以实现监督或者半监督学习(如支持向量机、K-Means聚类等算法)。利用线性代数可以实现大规模数据集的操作。数据的可视化包含了一系列方法,可以与目前先进的文本可视化技术看齐。程序库同时还可以实现文本文档的索引和检索,并直接支持目前流行的特定数据集和服务如Google,Amazon,Reuters数据集。SEKT将抽取主题、可视化、半自动的构建主题本体的这个处理过程整合到了Text Garden文本挖掘程序库中,图2展示了Text Garden主题发现并可视化的整个流程[3]。
利用主题发现技术实现本体构建的其他相关的应用研究还包括,G.Bisson等探讨本体构建过程中,Mo'K工具利用聚类方法实现语义类抽取的实现方法。Brewster等首先通过对文档源数据的聚类形成一些主题,然后以一些术语标识本体中的概念,比较概念与主题之间的匹配度[32]。
3.2 利用主题发现实现主题追踪和探测——JERARTOP
3.2.1 系统开发的背景和目标 JERARTOP将其系统的任务分为了3个主要的子问题:①切分新闻成为故事;②探测新的事件;③根据故事集追踪事件的发展。JERARTOP认为这几个步骤中的关键一步是事件探测。在这一部分,系统要持续地从新闻流中发现新的事件,并判断该事件是一个全新的事件还是一个与先前事件相同的事件。这里的事件是指在特定的时间、特定的地点的事情。相关的一系列事件或者活动构成一个主题。JERARTOP系统的数据源是报纸中的新闻流,系统目标是在其中发现主题的变迁。无监督的增量聚类算法在系统中普遍应用,典型的有K-Means,Single-Pass,1-NN,等等。系统首先预设了一系列的主题,并附有主题概要,以此为基础建立了一个层级结构的主题——事件目录。
3.2.2 系统的总体技术框架 JERARTOP系统的整体技术框架如图3所示[5]。系统首先以持续的流的形式获取一部分报纸新闻文本,并根据其语义内容将其聚类呈现。这个步骤的前提是要对文档进行预处理,包括:将文档中的文本进行标识、还原缩写、识别特定的名称和短语、去除停用词、插入Part-of-speech标签、一些常用词替换为引用标识(Lemmas)。所有文本中标识出的元素在这里称为术语,他们将根据其在文本中的词频表示成向量。除此之外,系统还会抽取出一些有用的元数据,比如文本中的日期、常见地点,使系统可以在时间和地点属性上进行一系列分析。
图3 JERARTOP系统的整体技术框架
JERARTOP利用了IPTC的主题词表构建了一个个基础的主题框架。每一个事件都包括了标题、概要、主题等元素,同时指示了与该主题相关的文档。目前系统探测的准确率最高可以达到88%,取得了较好的效果。
4 结束语
目前,主题发现的研究和开发已经初见雏形,但是并不成熟,其研究仍有多个难点问题待于解决。包括:①在每一个模块都需要进一步的加强改进算法,取得更好的识别、发现、相似度比较方法。②结合用户的需求和语言环境的需要,加强学科领域的适应性。③进一步加强可视化展示和交互界面,将可视化分析和主题发现相结合可以有效实现快速、直观、准确、深层次地发现文档中的隐含语义信息。④亟待提出一个完善的主题发现技术框架,从而在理论上形成一个主题发现的理论体系,更好地理解各种方法是如何整合到一个系统之中的,而这些方法又是如何发挥作用的。