知识图谱的由来
谷歌在2012年提出了知识图谱的概念,当时目的在于优化搜索引擎的返回结构,为用户提供更精确的结果。
知识图谱的定义
为了理解知识图谱,我们首先要明白信息与知识的概念。首先,信息表示的是外部的客观事实,而知识是对外部客观事实的总结归纳。如下图所示:
左侧的图表示信息,右侧图表示知识,因此知识就是将信息进行抽象总结,建立联系。每一条知识形如一个SPO三元组(Subject-Predicate-Object)。简单的说就是Subject + 关系 + Object
知识图谱的架构
如下图所示,知识图谱的架构主要分为四个步骤,分别是数据获取,信息抽取,知识融合以及知识加工。
- 数据获取:数据获取主要分为三种,结构化数据,半结构化数据,以及非结构化数据,第一种数据是我们最希望得到的数据,因为我们不需要做任何处理就可以直接使用。而后两种数据需要经过第二步进行处理才能够真正应用,
- 信息抽取:信息抽取主要针对半结构化数据以及非结构化数据,因为这两种数据我们无法直接使用,换句话说可能一个句子非常复杂,并不满足我们前面说的SPO三元组,因此我们需要经过一系列的抽取操作,将他们转换为我们需要的SPO三元组。
- 知识融合:对于结构化数据我们可以直接进行融合,然而对于其他两种数据,我们还需要进行指代消解以及实体消歧两个操作,简单的说就是我们通过信息抽取得到的知识并不一定就是对的,因此还要进行处理。
- 知识加工:当我们完成对知识的全部处理后我们要对知识进行加工,将其加工成我们所需要的知识图谱,并且该知识图谱应该具有知识推理的功能。换句话说,知识推理就是我给出几个简单的词语以及关系,知识图谱根据这些关系给出相应的内容。
以上就是知识图谱的架构介绍。
知识图谱中知识的表示方式
为了构架知识图谱,我们需要把知识表示为统一的表示方式,目前常用的表示方式有属性图,RDF以及OWL。其中最常用的就是属性图的表示方式,因此这里主要介绍属性图的表示方式。
属性图
属性图可以为实体或关系添加属性(例如:35岁的张三在2023年3月3日向李四表白,这里35岁可以作为实体张三的属性进行添加,而2023年3月3日可以作为关系表白的属性),因此这种,表达方式非常灵活、非常便于表示多元关系,目前常用的图数据库就是Neo4j。
总结
目前知识图谱的应用非常广泛,将知识图谱与深度学习进行结合的应用也有很多,后续会继续介绍。