工业级知识图谱:方法与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 行业知识建模

2.2.1 基于专家的知识建模

知识图谱存储了结构化知识,其中的实体、属性和关系等是重要的数据组成部分,知识体系的构建是对概念(分类)、概念属性以及概念之间关系的定义。因其具有很高的抽象性和概括性,目前高质量的知识体系多由专家构建而成。在早期,专家们是比较直接的人工构建知识体系。但随着知识需求在不同领域、不同行业的增长,需要建模复杂且关联多事实的组合信息等,人们逐步构建出能够描述时空、事件等信息的知识框架。因此,人工构建知识体系的模式也逐渐成熟,一般人工构建知识体系的过程可以分为如下六个主要阶段:确定领域及任务、知识体系复用、明确概念要素、确定分类体系、定义属性及关系和定义约束。上述阶段在实践中并非严格的线性关系,有时需要回退到更早的阶段。下面分别对上述各个步骤及其做法进行详细的介绍[9]

1.确定领域及任务

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

2.知识体系复用

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

1)领域词典:例如医学领域的CancerOntology、文化领域的艺术与建筑词典AAT和地理学领域的地理名称字典TGN。

2)语言学资源:在自然语言处理领域,有很多语言资源可用于帮助构建知识体系,例如WordNet、FrameNet等。

3)开源知识图谱:现有的大规模开源知识图谱主要有DBpedia、YAGO、Freebase、OpenCyc等,以及中文领域的OpenKG系列等。这些知识图谱的知识体系都是由专家人工制定的,具有较高的质量,并且涵盖的领域非常广泛,对于制定新的知识体系具有很高的参考价值。

4)网络百科:网络百科是成千上万的网络用户共同编辑得到的,其包含的知识范围非常广泛。由于百科知识是开发编辑的,因此知识的更新和新知识的添加都比较及时。网络百科也是一个很好的参考资源,典型的有百度百科、互动百科和Wikipedia等。

3.明确概念要素

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

4.确定分类体系

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

5.定义属性及关系

上一步定义了知识图谱的分类体系,需要为其中的每个类别定义属性及关系。属性用于描述概念的内在特征,例如人的姓名、出生日期等;关系则用于刻画不同概念之间的关系,例如朋友关系。属性的定义需要受分类体系的约束,下层类别必须继承所有上层类别的属性。例如,所有歌手都应该具有娱乐人物具有的所有属性。这一步和上一步交叉进行,因为在定义属性的过程中可能会发现原有分类体系的不足,需要对其修正。

6.定义约束

不同的属性和关系具有不同的定义域和值域,例如性别和爱好等属性只能用来描述人物相关的概念,并且年龄对应的值应该是正整数,并且不应该大于150(假设人的寿命上限是150岁),这些约束可以保证属性的一致性,避免异常值的出现。

2.2.2 基于机器学习的知识建模

人工知识建模的方式是一个耗时耗力、高要求和高成本的过程,通常由专家依赖领域经验构建而成,过程烦琐、枯燥且容易出错,维护成本高,最终知识体系的完备性和准确性与专家对领域的认知程度息息相关。因此,如何自动地从领域知识中学习构建知识体系,提高人工知识建模的效率,保证知识体系的覆盖率和适用性具有重要意义。

本体可以组织成以下子任务:术语、同义词、概念、概念层次结构、关系和规则[13]。因此,知识建模的过程不是单一任务而是各层中组织的子任务集[10-12]。WONG提出将本体学习技术分为基于统计的技术、基于语言学的技术和基于逻辑的技术[10]。基于统计的技术主要依赖于聚类、潜在语义分析、共现分析、对比分析和关联规则挖掘等。基于语言学的技术几乎适用于知识建模的所有任务,并且主要依赖于自然语言处理工具:词性标记、句子解析、句法结构分析、依存关系分析、语义词典、词汇句法模式、语义模板、子分类框架和种子词[14-16]等。基于逻辑的技术主要涉及关系和公理等更复杂的任务[10]。这些与知识表示、推理及机器学习的进步有关,包括归纳逻辑编程和逻辑推理动作。此外,可以根据不同数据类型(结构化数据、半结构化数据和非结构化数据)进行分类。非结构化数据类型是最常见的数据形式,通常利用浅层文本处理和统计分析[17]、基于规则的解析器识别自然语言单词之间的依存关系[18]、词性标注器、模式匹配以及具有基本语言处理的机器学习方法[18-20]。在从半结构数据构建本体的过程中,同时使用传统的数据挖掘和Web内容挖掘技术[2122]。接下来详细介绍不同数据类型的知识建模方式。

1.基于非结构化数据的知识建模

非结构化数据是指没有固定模式或没有预定义方式组织的数据,通常指的文本数据,不适用数据库二维表表示。绝大多数的行业数据是以文本为主要载体的非结构化数据。2012年的RMIT大学WILSON WONG教授等人发表的综述文章[4]Ontology Learning from Text:A Look Back and into the Future对基于文本数据构建知识体系进行了较为详细的介绍,分为以下三个主要步骤:领域概念抽取、分类体系构建和概念属性抽取。

(1)领域概念抽取。构建知识体系需要的关键元素包括领域概念、概念属性及概念之间的关系,这些关键元素称为领域术语[56],术语是理解领域知识的核心。因此概念抽取的第一步是术语抽取,然后过滤低质量的术语,最后得到构建知识体系所需的概念集合。

1)候选术语抽取

首先是利用自然语言处理工具对文本数据进行分词、词性标注和句法分析等预处理,然后利用语言学规则或模板在文本中抽取特定的短语,构建领域的候选术语集。无论是数据预处理还是模板抽取短语,难免会存在错误,因此上述方式得到的候选术语一定会存在很多的噪声,但该步骤的目的是抽取更多、更全的术语,对抽取术语的质量没有严格的要求。

2)术语过滤

在得到候选术语集合后,如何准确地度量术语可靠性,过滤低质量的术语是该步骤的主要目的[7]。领域术语与普通词汇往往具有不同的特征。因此,可以采用统计信息和语义信息过滤术语噪声,例如互信息(Mutual Information,MI)、词频逆文档频率(TF-TDF)、术语相关频率(RTF)等方法定量刻画统计特征;用词向量的方式捕捉术语之间的语义相关度来刻画语义特征,并基于这些值过滤掉低质量的候选术语。

3)概念抽取

术语并不同于概念,概念是认知层面的处理单位,而术语是语言层面的单位[8]。因此需要对上一步挖掘的术语进行概念层面的识别,即将候选术语中表达相同语义的术语聚合在一起,最具代表性的方法是基于词典的方法和基于统计的方法。基于词典的方法是利用现有的词典资源识别同义关系,常用资源有WordNet、HowNet和同义词词林等。基于统计的方法是假设相同词义的词汇具有相似的统计特征,常用的有基于字符串编辑距离挖掘词汇的文本特征、基于协同过滤发现词汇的共现特征、基于词汇的语义向量计算相似度以及基于词汇表示对词汇聚类的方式等。

(2)分类体系构建。分类体系构建实际上是要获取不同概念之间的层次关系,构建合理的层次化的概念分类体系,语言学上称为上下位关系[9]。识别上下位关系的方法常用的有基于模板的方法[10]、基于词典的方法和基于统计的方法。基于词典的方法常用的资源有COW、百度百科和NLTK库等;基于统计的方法常用的有基于层次聚类的方法,将聚类结果中不同层级类别内的术语构成了上下位关系;基于模板的方法识别词对是否为上下位关系,转化成二分类任务等。

(3)概念属性抽取。除了概念间的层次关系,概念的属性描述也是构建知识体系的重要元素。例如“酒”是一个概念,产地、酒精度和净含量是其属性,用来更准确、更清晰地描述概念。常用的概念的候选属性抽取主要包括以下方法。

1)基于规则的属性抽取:通过语言规则抽取属性,如“xy”的形式就表示y有可能是x的属性。

2)基于百科统计的属性抽取:以在线百科知识库和开放式目录搜索系统(Open Directory Project)为代表的知识共享平台,在构建知识库与开放共享方面具有独特优势和影响力。基于百科统计的属性抽取是从预处理的关键词、领域词表和概念集出发,通过关键词查询、回溯归纳等过程,得到百科知识库中相关的分类和词条,继而使用词条的信息框、统计分类和词条下的高频属性作为候选。

3)基于依存分析的属性抽取:与基于百科统计的属性抽取相比,基于依存分析的方法能够有效地利用原始的文本数据。在依存语法中将句子中词语间存在的支配和被支配关系称为依存关系。这种支配关系既可能是词之间的句法关系,也可能是语义关系。这里重点关注语义关系,结合层次概念体系,选出语义依存树中与之对应的关系,得到候选属性。

通过以上方法可以得到候选属性集,再利用统计方法评估候选属性的置信度,类似概念抽取任务,过滤低置信度的属性,得到合理的概念属性集。

2.基于结构化数据的知识建模

结构化数据是指以固定模式存储的数据,也称作行数据,是由二维表结构逻辑表达和实现的数据,严格地遵循数据格式与长度规范,常见的有存储于关系数据库的数据和面向对象数据库中的数据。

结构化数据因为模型结构固定且便于理解,其知识建模的方式更简单。无论是领域概念抽取还是概念属性抽取,首先需要识别数据库中哪些项描述实体、哪些项描述实体间关系,在进行信息抽取的时候,可以从描述实体的表中抽取出实体的概念及概念的属性,从描述关系的表中抽取出概念间的关系。因此,基于以上获取的概念和属性集合,采用面向非结构化的分类体系构建方式构建一个初步的知识体系,并不断地评估和修正,生成最终的知识体系。

3.基于半结构化数据的知识建模

半结构化数据是一种自描述的结构,它不符合结构化的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层,例如XML文档、JSON文档和日志文档等。由于这类数据是介于结构化数据和非结构化数据之间的一类数据,因此上述两类方法都能应用。首先采用规则映射的方法,使用结构化数据向本体数据转换工具,自动地将XML或HTML的标签转化为概念、属性等,然后采用面向非结构化数据的方法构建知识体系。