知识体系构建

知识体系主要包括三个方面的核心内容:对概念的分类、概念属性的描述、以及概念之间相互关系的定义。知识体系的基本形态包括词汇(Terms)、概念(Concepts)、分类体系(Taxonomic Relations)、非分类关系(Non-Taxonomic Relations)和公理(Axioms)这五个不同层次。完全自动地构建知识体系,虽然是人们的终极目标,但是实践证明目前还难以达到,特别是最后两个层次的知识体系。

1. 人工构建方法

人工构建知识体系的过程可以分为如下六个主要阶段:确定领域及任务、体系复用、罗列要素、确定分类体系、定义属性及关系、定义约束。上述阶段在实践中并非严格的线性关系,有时需要回退到更早的阶段。下面分别对上述各个步骤及其做法进行详细介绍。

1.1 确定领域及任务

知识图谱作为人工智能应用的基础设施,其构建过程不能不了解具体的应用任务;也不能抛开领域建立一个高大全的、无法被广泛使用的产品。实际上,知识体系与具体的领域密切相关,例如金融领域和医疗领域涉及的概念完全不同。因此在创建知识体系之前,首先应该确定知识图谱面向的领域。确定了领域也只是限定了知识体系应该包含的知识范围,在领域内还是可以构建出各种各样的知识体系。

想要构建更为适合的体系,还需要回答如下问题:我们为什么要使用这个知识体系?这种知识体系能够帮助回答哪些类型的问题?谁会使用并维护这个知识体系?这些问题应该贯穿于知识体系构建的每个阶段,并且随着体系构建的推进,我们可能会对上述问题有更加深入的认知,原来的答案可能会被推翻,此时需要重新思考这些问题,并根据新的想法修正已经构建的知识体系。

1.2 体系复用

知识体系具有很强的抽象性和概括性,从零开始构建不仅成本高昂,而且质量难以保证。实际上可以先构建一个轻量级的知识体系,然后尽可能基于它们进行扩展。因此,真正进行构建之前,应该广泛调研现有的第三方知识体系(如Schema.org)或与之相关的资源,尽可能多地参考前人的已有成果。这些资源主要包括以下几种。

  • 领域词典:一些领域的专家会编撰领域内的词典,这些词典在构建限定领域的知识体系时具有重要的参考价值。例如,医学领域的CancerOntology、文化领域的艺术与建筑词典AAT、地理学领域的地理名称词典TGN。
  • 语言学资源:在自然语言处理领域,有很多语言学资源可以用于帮助知识体系构建。例如WordNet包含了11万个概念的定义,并定义了概念之间的上下位关系;FrameNet则定义了1000多个框架、10000多个词法单元,并定义了框架之间的关系。
  • 开源知识图谱:现有的大规模开源知识图谱主要有DBpedia、YAGO、Freebase、OpenCyc等。这些知识图谱的知识体系都是由专家人工制定的,具有较高的质量,并且涵盖的领域非常广泛,对于制定新的知识体系具有很高的参考价值。
  • 网络百科:网络百科是成千上万的网络用户共同编辑得到的,其包含的知识范围非常广泛。由于百科知识是开发编辑的,因此知识的更新和新知识的添加都比较及时。

1.3 罗列要素

根据确定的领域,罗列期望在知识图谱中出现的要素列表,主要包括概念、属性以及关系。这一步实际上是为后续步骤准备“原材料”,因此不需要对上述概念进行清晰的分类,只需要尽可能多地罗列出期望的元素即可。

1.4 确定分类体系

确定了相关要素之后,需要将其中表示概念的要素组织成层级结构的分类体系。构建过程中有两种方式可供选择,它们分别是自顶向下的方法和自底向上的方法。前者从最抽象的概念开始,逐层添加更为具体的概念;后者则相反,先从最具体的概念开始,逐层进行抽象。在构建的分类体系中,必须保证上层类别所表示的概念完全包含下层类别所表示的概念,也就是说所有下层类别的实例也必须是上层类别的实例。

1.5 定义属性及关系

上一步定义了知识图谱的分类体系,需要为其中的每个类别定义属性及关系。属性用于描述概念的内在特征,例如人的姓名、出生日期等;关系则用于刻画不同概念之间的关系,例如夫妻关系、朋友关系等。属性的定义需要受分类体系的约束,下层类别必须继承所有上层类别的属性。

1.6 定义约束

不同的属性和关系具有不同的定义域和值域。

2. 自动构建方法

2.1 基于非结构化数据的知识体系学习

基于文本数据构建知识体系也称为基于文本的本体学习(ontology learning from text),这类方法的基本思想是:首先利用自然语言处理工具对文本进行分词、句法分析、命名实体识别等预处理操作,然后利用模板匹配、统计学习等手段从文本中抽取重要信息,主要包括领域概念、实例以及概念之间的关系。2012年的RMIT大学Wilson WONG教授等人的综述文章“Ontology Learning from Text: A Look Back and into the Future”对该任务进行了比较详细的介绍。概括来说,基于非结构化文本的知识体系学习方法主要包括以下三个主要步骤:领域概念抽取、分类体系构建、概念属性及关系抽取。

(1) 领域概念抽取

领域概念抽取的目标是从文本数据中抽取出构建知识体系所需的关键元素,包括实体类型名、属性名、关系名等,这些关键元素称为该领域的术语。术语的抽取主要分为如下三步:

  • 抽取候选术语:利用自然语言处理工具对文本进行词法、句法分析,然后利用语言学规则或者模板在文本中抽取特定的字符串,并将这些字符串当做领域术语的候选。该步骤的目的是尽可能多地将真正的术语包括进来,因此对抽取术语的质量没有严格的要求,但要尽量保证抽取术语的高覆盖度。
  • 术语过滤:上一步获得的候选术语噪声比较大,准确率不高,因此需要进一步过滤掉其中低质量的术语。领域术语与普通词汇在语料中往往具有不同的统计特征,例如普通词汇无论在领域内还是领域外一般具有相似的分布,而领域术语在领域内外的分布会有显著的区别(领域术语在领域内出现的频率会显著高于在领域外出现的频率)。在实际操作中,可以利用互信息(MI)、TF-IDF、术语相关频率(RTF)等方法来定量刻画候选术语的统计特性,并基于这些值过滤掉低质量的候选术语。
  • 术语合并:术语并不等同于概念,概念是认知层面的处理单位,而术语是语言层面的单位。例如,上一步可能从文本中抽取出了“电脑”和“计算机”这两个术语,但是它表示的是相同的概念,语言学上称之为同义词。知识体系是对概念及其关系的描述,因此需要将上一步获得的术语转换为概念。具体的做法是将候选术语中表达相同概念的术语聚合到一起,转换的过程就是识别同义词的过程。同义词识别是自然语言处理领域中一个传统的研究任务,有很多比较成熟的解决方法。其中最具代表性的方法有基于词典的方法和基于统计的方法。居于词典的方法利用现有的词典资源获取词汇的同义词情况,典型的资源有WordNet、HowNet、同义词词林等。基于统计的方法则假设相同词义的词汇具有相似的上下文,基于该假设在大规模语料上进行词汇表示学习,并基于词汇的表示对词汇进行聚类,聚类的结果就是同义词识别的结果。

(2) 分类体系构建

构建分类体系实际上是要获取不同概念之间的继承关系,语言学上称之为上下位关系。下位词是上位词概念的具体化,例如“犬科动物”是“哺乳动物”的下位词。和同义词识别任务类似,基于词典的方法和基于统计的方法同样是解决上下位关系识别的主要方法。基于词典的方法通过查询现有的词典资源获取不同词汇的上下文关系,典型的资源有WordNet等。基于统计的方法通过词的上下文对当前词进行表示,并基于该表示对得到的领域术语进行层次聚类。聚类结果中,不同层次类别内的术语构成了上下位关系。

(3) 概念属性及关系抽取

以上步骤获得了知识体系涉及的概念及概念之间的分类关系,还需要为概念定义属性及关系。在实践中,一般将关系也视作概念的属性,采用统一的过程对它们进行抽取。属性和关系也可以看做是一种概念,因此属性及关系的抽取过程和概念的抽取过程类似。首先利用词法、句法分析等工具对文本进行预处理,并通过规则或模板的方法为给定的概念获取候选的属性集合。然后利用统计方法定量地评估每个候选属性的置信度,过滤掉低质量的属性。和概念抽取的任务类似,上一步获得的属性集合中同样存在同义词的情况,例如“出生地”和“故乡”表达相同的含义,因此需要在候选属性集中进行同义词识别。

2.2 基于结构化数据的知识体系学习

结构化数据是指具有严格定义模式的数据,主要是指存储于关系数据库中的数据。关系数据库采用关系模型对现实世界中的信息进行建模,这种模型具有两个明显的有点:(1) 首先是关系模型的结构简单,便于理解。所有的对象在关系数据库中都通过二维表格进行表示及存储。(2) 关系模型具有很强的理论基础,关系代数强有力地支持了关系模型,使得关系数据库能够得到广泛的应用。

基于结构化数据的知识体系学习的主要任务是分析关系模型中蕴含的语义信息,并将其映射到知识体系的相应部分。在关系数据库中,实体及其关系都以二维表的形式进行表示和存储。因此无论是概念的抽取还是概念间关系的抽取,首先需要识别出数据库中哪些项描述实体,哪些项描述实体间关系。可以通过分析数据表的字段内容、主键、外键等信息实现上述目标。在进行关键信息的抽取时,可以从描述实体的表中抽取出实体的概念(即本体类型)及实体的属性,从描述关系的表中抽取出概念间的关系。基于以上获得的信息能够构建一个初步的知识体系,然后需要进一步对该知识体系进行评估和修正,生成最终的知识体系。

2.3 基于半结构化数据的知识体系学习

半结构化数据和非结构化数据相比具有一定的模式,但这种模式并不严格,典型的半结构化数据有XML格式的数据、HTML格式的网页数据以及它们遵循的文档类型定义(XML schema或DTD)等。由于这类数据是介于结构化数据和非结构化数据之间的一类数据,因此上述两类方法也能够应用于该类数据。例如,对于XML、HTML等格式的网页中的文本,可以采用面向非结构化数据的知识体系学习方法。另外,机器可读的知识词典也是一种特殊的半结构化数据。由于词典是一种专家通过人工方式构建并组织起来的领域知识资源,是一种非常好的知识体系学习资源。基于模板的方法是一种从词典中获取知识体系的有效方法。这种方法首先需要根据词典的特点设计一组词典语法模板,然后利用模板从词典中获取所需信息,例如词与词的上下位关系信息。

3. 典型知识体系(本体)

SUMO(Suggested Upper Merged Ontology)及其包含的各领域本体是当今存在的最大公共本体,它们被用于搜索、语言学和推理的研究与应用中。SUMO与WordNet词典进行了映射,它由IEEE拥有,但是可以免费下载和使用。高层的知识本体定义了概念,它们可以在各个领域进行共享,因此,SUMO可以作为其他知识体系的基础本体。SUMO希望通过提供最高层次的知识本体,鼓励其他特定领域构建出以它们为基础的衍生知识本体,为更多领域的应用提供可复用和可共享的术语平台。SUMO由SUO-KIF语言编写,目前包括约25000个项(Term)和8000个原语(Axiom)。SUMO主要应用于学术领域。

Schema.org是一个完全由企业推动的共享本体项目。为了支持对网页创建通用结构化数据标签集,2011年6月,Bing、Google和Yahoo三大搜索引擎公司联合发起了Schema.org项目;同年11月,俄罗斯搜索巨头Yandex也加入了该项目。Schema.org的知识体系就是具有层次结构的类别系统,每个类型有若干个属性。Schema.org的核心词汇表包括597个类型(开放集合)、867个属性和144个枚举类型(封闭集合)。

Freebase是谷歌知识图谱的重要组成部分,也是一种大众编辑的协同知识图谱。Freebase用领域(domain)组织概念。每个概念有其特有的一些属性。Freebase对每个类型定义了若干关系,并制定关系的值域(range)约束其取值。Freebase定义了2000多个概念类型和近4万个属性。Freebase的一大特色就是使用组合数据类型(Compound Value Types,CVT)的方式表示事件等N—Triple事实。

最后,作为一个目前使用最广泛的跨平台开源本体编辑器,Protege常被用于构建、编辑和管理知识框架。