【知识图谱】如何构建知识体系:知识图谱搭建的第一步
互联网时代,人类在与自然和社会的交互中生产了异常庞大的数据,这些数据中包含了大量描述自然界和人类社会客观规律有用信息。如何将这些信息有效组织起来,进行结构化的存储,就是知识图谱的内容。
知识图谱的难点在于知识图谱的搭建,如何高效、高质量、快速的搭建知识图谱是知识图谱工程的核心。今天我们介绍知识图谱搭建的第一步,知识体系的构建。
作者&编辑 | 小Dream哥
1 什么是知识体系
从直觉上看,知识图谱里包含了很多现实世界的知识。例如,知识图谱里有“腾讯”相关的信息,说明了它是中国的一家互联网公司,主要做社交媒体和游戏,创始人是马化腾。实际上,具体的实例知识只是知识图谱一个层面的内容,知识图谱中还包括了对知识数据的描述和定义,这部分对数据进行描述和定义的“元”数据被称为知识体系(schema)或者本体(ontology)。
那么,怎么理解对知识数据的描述和定义呢?简单的理解,就是对所需要构建的知识领域的高度概括和抽象,我们举一个例子来说明这个问题。如下图所示,是知识图谱中保存的关于周杰伦的实例,记录了周杰伦是一个音乐人,它签约了哪家音乐公司,身高体重等信息。
如下图所示,是关于音乐人的schema的一部分:
我们定义了“音乐人”是“人”的一个子类;它和“唱片公司”是一种“签约”的关系;“音乐人”也会“创作和表演”歌曲,同时,它也继承了“人”这个概念的一些属性,包括“身高”,“体重”和“婚姻关系”等。上述“周杰伦”,是“音乐人”这个概念在图谱中的一个实例。
通过这个例子,读者应该能够对知识体系有个比较深入的理解了。其实,也可以用面向对象编程的思想来理解知识体系和实例之间的关系。编程中的类可以“类”比知识体系中的“概念”,编程中“类的属性”可以类比知识体系中“概念的属性”,“类之间的关系”可以类比知识体系中“概念之间的关系”。类和对象之间的关系就好比知识体系中概念和其实例之间的关系。
这里总结一下,所谓的知识体系,其实就是描述我们所要构建的知识图谱所在领域的知识,这种描述是一种概括和抽象,通常用概念,概念属性以及概念之间的关系来描述。
2 知识体系的构建
上一篇文章中我们介绍了知识表示,业内通常都是采用基于三元组的形式来表示知识,这方面无需太多的考虑,所以搭建知识图谱的第一步便是构建相应的知识体系。
介绍知识体系构建的手段之前,我想先说明一下知识体系构建必要性。知识图谱的搭建,简单来看,就是从大量的结构化或者非结构化数据中,抽取实体以及实体之间的关系。那么,所要抽取的实体有哪些类别呢?所要抽取的关系有哪些种类呢?如果是非结构化数据,怎么给语料标注呢?要回答这些问题,都需要构建一个知识体系。
1)人工构建法
目前来看,基本高质量的知识体系都只能通过人工构建。那么,怎么通过人工手动构建知识体系呢?通常,手动构建知识体系应该精通该领域的业务专家来主导,知识工程师协助完成。一般如下几个步骤构成:
1.确定领域
有读者认为知识图谱难以落地,没有应用场景。其实不然,目前的NLP任务通常都是基于某一个特定的业务场景,一个高质量的基于该领域的图谱,能够给下游的NLP任务非常大的加成。目前,比较活跃的也都是领域知识图谱。所以,通常构建知识体系的第一件事就是确定领域,以限定知识体系的知识范围。确定领域,了解业务场景,思考知识体系能够解决哪些业务问题,是第一件要做的事情。
2.借鉴
领域知识体系的构建是一个高度业务相关、极其复杂的工作。如果有可以第三方的知识体系可以借鉴是一个非常好的事情,尽可能的参考前人的工作成果,站在巨人的肩膀上,是一个比较好的策略。假如没有可以借鉴的第三方工作,比较好的策略是先构建一个轻量级的知识体系,然后在此基础上进行扩展。
3.罗列概念、属性以及关系
根据确定的领域,罗列出来在知识图谱中可能出现的概念、属性以及关系列表。实际上这是一个和业务高度相关的工作,要罗列出来这份列表,需要对知识图谱要解决哪些问题、如何使用这个知识图谱有明确的认识。
4.确定知识体系结构
当罗列出来了所有的概念、属性以及关系列表之后,需要对概念进行层次结构的分类。确定分类层级通常由两种方法:自顶向下和自底向上。自顶向下就是从最抽象的概念开始,逐层扩展添加各层概念。自底向上则是相反的过程。
5.定义属性及关系
定义好了概念之间的层次关系之后,就需要定义概念的属性以及概念之间的关系了。做到这一步,知识体系就基本构建完成了。
6.定义约束
概念的属性会有一些约束条件,需要定义好。例如,人的性别只能是“男”或者“女”,年龄应该是0-200之间的数值。
2)自动构建法
知识体系的自动构建,在面对结构化知识和非结构化知识时所采用的策略时不同的。
1.结构化知识的知识体系构建
面对结构化的知识,知识体系构建的任务其实就是提炼出来结构化语料中蕴含的概念以及概念之间的关系。结构化数据通常存储在关系型数据库中,上述任务通常就变成了分析数据表中的字段内容、主键以及外键之间的关系。
2.非结构化知识的知识体系构建
面对非结构化的知识,要自动化构建知识体系是一件难度非常大的事情。首先,要基于语料进行领域内概念的抽取。然后,基于上述过程抽取到的概念进行概念体系的构建以及概念属性关系的抽取。
上述两个过程要实现自动化,需要用大量的无监督学习算法,例如聚类,词向量表征等。
总结
知识图谱是人工智能技术最重要的基础设施,是计算机能够实现推理、预测等类似人类思考能力的关键。在知识图谱中,知识体系赋予知识图谱明确的语义信息,即概念的分类,概念的属性以及概念之间的关系等。通常,这些概念是后续知识抽取的前提,也是知识图谱进行知识推理的基础。虽然,知识体系个构建分为自动化和人工构建两种,目前比较有效的手段还是人工构建。