知识图谱技术综述

一.知识图谱技术综述

知识图谱技术是人工智能技术的组成部分,其强大的语义处理和互联组织能力,为智能化信息应用提供了基础。以下内容涵盖了基本定义与架构、代表性知识图谱库、构建技术、开源库和典型应用。

引言

随着互联网的发展,网络数据内容呈现爆炸式增长的态势。由于互联网内容的大规模、异质多元、组织结构松散的特点,给人们有效获取信息和知识提出了挑战。知识图谱(Knowledge Graph) 以其强大的语义处理能力和开放组织能力,为互联网时代的知识化组织和智能应用奠定了基础。最近,大规模知识图谱库的研究和应用在学术界和工业界引起了足够的注意力[1-5]。一个知识图谱旨在描述现实世界中存在的实体以及实体之间的关系。知识图谱于2012年5月17日由[Google]正式提出[6],其初衷是为了提高搜索引擎的能力,改善用户的搜索质量以及搜索体验。随着人工智能的技术发展和应用,知识图谱作为关键技术之一,已被广泛应用于智能搜索、智能问答、个性化推荐、内容分发等领域。

知识图谱的定义

在维基百科的官方词条中:知识图谱是Google用于增强其搜索引擎功能的知识库。本质上, 知识图谱旨在描述真实世界中存在的各种实体或概念及其关系,其构成一张巨大的语义网络图,节点表示实体或概念,边则由属性或关系构成。现在的知识图谱已被用来泛指各种大规模的知识库。 在具体介绍知识图谱的定义,我们先来看下知识类型的定义:

知识图谱中包含三种节点:

实体: 指的是具有可区别性且独立存在的某种事物。如某一个人、某一个城市、某一种植物等、某一种商品等等。世界万物有具体事物组成,此指实体。如图1的“中国”、“美国”、“日本”等。,实体是知识图谱中的最基本元素,不同的实体间存在不同的关系。

语义类(概念):具有同种特性的实体构成的集合,如国家、民族、书籍、电脑等。 概念主要指集合、类别、对象类型、事物的种类,例如人物、地理等。

内容: 通常作为实体和语义类的名字、描述、解释等,可以由文本、图像、音视频等来表达。

属性(值): 从一个实体指向它的属性值。不同的属性类型对应于不同类型属性的边。属性值主要指对象指定属性的值。如图1所示的“面积”、“人口”、“首都”是几种不同的属性。属性值主要指对象指定属性的值,例如960万平方公里等。

关系: 形式化为一个函数,它把kk个点映射到一个布尔值。在知识图谱上,关系则是一个把kk个图节点(实体、语义类、属性值)映射到布尔值的函数。

基于上述定义。基于三元组是知识图谱的一种通用表示方式,即,其中,是知识库中的实体集合,共包含|E|种不同实体; 是知识库中的关系集合,共包含|R|种不同关系;代表知识库中的三元组集合。三元组的基本形式主要包括(实体1-关系-实体2)和(实体-属性-属性值)等。每个实体(概念的外延)可用一个全局唯一确定的ID来标识,每个属性-属性值对(attribute-value pair,AVP)可用来刻画实体的内在特性,而关系可用来连接两个实体,刻画它们之间的关联。如下图1的知识图谱例子所示,中国是一个实体,北京是一个实体,中国-首都-北京 是一个(实体-关系-实体)的三元组样例北京是一个实体 ,人口是一种属性2069.3万是属性值。北京-人口-2069.3万构成一个(实体-属性-属性值)的三元组样例。

图1 知识图谱示例

知识图谱的架构

知识图谱的架构包括自身的逻辑结构以及构建知识图谱所采用的技术(体系)架构。

1) 知识图谱的逻辑结构

知识图谱在逻辑上可分为模式层与数据层两个层次,数据层主要是由一系列的事实组成,而知识将以事实为单位进行存储。如果用(实体1,关系,实体2)、(实体、属性,属性值)这样的三元组来表达事实,可选择图数据库作为存储介质,例如开源的Neo4j[7]、Twitter的FlockDB[8]、sones的GraphDB[9]等。模式层构建在数据层之上,是知识图谱的核心,通常采用本体库来管理知识图谱的模式层。本体是结构化知识库的概念模板,通过本体库而形成的知识库不仅层次结构较强,并且冗余程度较小。

2) 知识图谱的体系架构

图2 知识图谱的技术架构

知识图谱的体系架构是其指构建模式结构,如图2所示。其中虚线框内的部分为知识图谱的构建过程,也包含知识图谱的更新过程。知识图谱构建从最原始的数据(包括结构化、半结构化、非结构化数据)出发,采用一系列自动或者半自动的技术手段,从原始数据库和第三方数据库中提取知识事实,并将其存入知识库的数据层和模式层,这一过程包含:信息抽取、知识表示、知识融合、知识推理四个过程,每一次更新迭代均包含这四个阶段。知识图谱主要有自顶向下(top-down)与自底向上(bottom-up)两种构建方式。自顶向下指的是先为知识图谱定义好本体与数据模式,再将实体加入到知识库。该构建方式需要利用一些现有的结构化知识库作为其基础知识库,例如Freebase项目就是采用这种方式,它的绝大部分数据是从维基百科中得到的。自底向上指的是从一些开放链接数据中提取出实体,选择其中置信度较高的加入到知识库,再构建顶层的本体模式[10]。目前,大多数知识图谱都采用自底向上的方式进行构建,其中最典型就是Google的Knowledge Vault[11]和微软的Satori知识库。现在也符合互联网数据内容知识产生的特点。

代表性知识图谱库

根据覆盖范围而言,知识图谱也可分为开放域通用知识图谱和垂直行业知识图谱[12]。开放通用知识图谱注重广度,强调融合更多的实体,较垂直行业知识图谱而言,其准确度不够高,并且受概念范围的影响,很难借助本体库对公理、规则以及约束条件的支持能力规范其实体、属性、实体间的关系等。通用知识图谱主要应用于智能搜索等领域。行业知识图谱通常需要依靠特定行业的数据来构建,具有特定的行业意义。行业知识图谱中,实体的属性与数据模式往往比较丰富,需要考虑到不同的业务场景与使用人员。下图展示了现在知名度较高的大规模知识库。

图3 代表性知识图谱库概览

知识图谱构建的关键技术

大规模知识库的构建与应用需要多种技术的支持。通过知识提取技术,可以从一些公开的半结构化、非结构化和第三方结构化数据库的数据中提取出实体、关系、属性等知识要素。知识表示则通过一定有效手段对知识要素表示,便于进一步处理使用。然后通过知识融合,可消除实体、关系、属性等指称项与事实对象之间的歧义,形成高质量的知识库。知识推理则是在已有的知识库基础上进一步挖掘隐含的知识,从而丰富、扩展知识库。分布式的知识表示形成的综合向量对知识库的构建、推理、融合以及应用均具有重要的意义。接下来,本文将以知识抽取、知识表示、知识融合以及知识推理技术为重点,选取代表性的方法,说明其中的相关研究进展和实用技术手段 。

1 知识提取

知识抽取主要是面向开放的链接数据,通常典型的输入是自然语言文本或者多媒体内容文档(图像或者视频)等。然后通过自动化或者半自动化的技术抽取出可用的知识单元,知识单元主要包括实体(概念的外延)、关系以及属性3个知识要素,并以此为基础,形成一系列高质量的事实表达,为上层模式层的构建奠定基础。

1.1 实体抽取

实体抽取也称为命名实体学习(named entity learning) 或命名实体识别 (named entity recognition),指的是从原始数据语料中自动识别出命名实体。由于实体是知识图谱中的最基本元素,其抽取的完整性、准确率、召回率等将直接影响到知识图谱构建的质量。因此,实体抽取是知识抽取中最为基础与关键的一步。参照文献[13],我们可以将实体抽取的方法分为4种:基于百科站点或垂直站点提取、基于规则与词典的方法、基于统计机器学习的方法以及面向开放域的抽取方法。基于百科站点或垂直站点提取则是一种很常规基本的提取方法;基于规则的方法通常需要为目标实体编写模板,然后在原始语料中进行匹配;基于统计机器学习的方法主要是通过机器学习的方法对原始语料进行训练,然后再利用训练好的模型去识别实体;面向开放域的抽取将是面向海量的Web语料[14]。

1) 基于百科或垂直站点提取

基于百科站点或垂直站点提取这种方法是从百科类站点(如维基百科、百度百科、互动百科等)的标题和链接中提取实体名。这种方法的优点是可以得到开放互联网中最常见的实体名,其缺点是对于中低频的覆盖率低。与一般性通用的网站相比,垂直类站点的实体提取可以获取特定领域的实体。例如从豆瓣各频道(音乐、读书、电影等)获取各种实体列表。这种方法主要是基于爬取技术来实现和获取。基于百科类站点或垂直站点是一种最常规和基本的方法。

2) 基于规则与词典的实体提取方法

早期的实体抽取是在限定文本领域、限定语义单元类型的条件下进行的,主要采用的是基于规则与词典的方法,例如使用已定义的规则,抽取出文本中的人名、地名、组织机构名、特定时间等实体[15]。文献[16]首次实现了一套能够抽取公司名称的实体抽取系统,其中主要用到了启发式算法与规则模板相结合的方法。然而,基于规则模板的方法不仅需要依靠大量的专家来编写规则或模板,覆盖的领域范围有限,而且很难适应数据变化的新需求。

3) 基于统计机器学习的实体抽取方法

鉴于基于规则与词典实体的局限性,为具更有可扩展性,相关研究人员将机器学习中的监督学习算法用于命名实体的抽取问题上。例如文献[17]利用KNN算法与条件随机场模型,实现了对Twitter文本数据中实体的识别。单纯的监督学习算法在性能上不仅受到训练集合的限制,并且算法的准确率与召回率都不够理想。相关研究者认识到监督学习算法的制约性后,尝试将监督学习算法与规则相互结合,取得了一定的成果。例如文献[18]基于字典,使用最大熵算法在Medline论文摘要的GENIA数据集上进行了实体抽取实验,实验的准确率与召回率都在70%以上。近年来随着深度学习的兴起应用,基于深度学习的命名实体识别得到广泛应用。在文献[19],介绍了一种基于双向LSTM深度神经网络和条件随机场的识别方法,在测试数据上取得的最好的表现结果。

图4 基于BI-LSTM和CRF的架构

4) 面向开放域的实体抽取方法

针对如何从少量实体实例中自动发现具有区分力的模式,进而扩展到海量文本去给实体做分类与聚类的问题,文献[20]提出了一种通过迭代方式扩展实体语料库的解决方案,其基本思想是通过少量的实体实例建立特征模型,再通过该模型应用于新的数据集得到新的命名实体。文献[21]提出了一种基于无监督学习的开放域聚类算法,其基本思想是基于已知实体的语义特征去搜索日志中识别出命名的实体,然后进行聚类。

1.2 语义类抽取

语义类抽取是指从文本中自动抽取信息来构造语义类并建立实体和语义类的关联, 作为实体层面上的规整和抽象。以下介绍一种行之有效的语义类抽取方法,包含三个模块:并列度相似计算、上下位关系提取以及语义类生成 [22]。

1) 并列相似度计算

并列相似度计算其结果是词和词之间的相似性信息,例如三元组(苹果,梨,s1)表示苹果和梨的相似度是s1。两个词有较高的并列相似度的条件是它们具有并列关系(即同属于一个语义类),并且有较大的关联度。按照这样的标准,北京和上海具有较高的并列相似度,而北京和汽车的并列相似度很低(因为它们不属于同一个语义类)。对于海淀、朝阳、闵行三个市辖区来说,海淀和朝阳的并列相似度大于海淀和闵行的并列相似度(因为前两者的关联度更高)。

当前主流的并列相似度计算方法有分布相似度法(distributional similarity) 和模式匹配法(pattern Matching)。分布相似度方法[23-24]基于哈里斯(Harris)的分布假设(distributional hypothesis)[25],即经常出现在类似的上下文环境中的两个词具有语义上的相似性。分布相似度方法的实现分三个步骤:第一步,定义上下文;第二步,把每个词表示成一个特征向量,向量每一维代表一个不同的上下文,向量的值表示本词相对于上下文的权重;第三步,计算两个特征向量之间的相似度,将其作为它们所代表的词之间的相似度。 模式匹配法的基本思路是把一些模式作用于源数据,得到一些词和词之间共同出现的信息,然后把这些信息聚集起来生成单词之间的相似度。模式可以是手工定义的,也可以是根据一些种子数据而自动生成的。分布相似度法和模式匹配法都可以用来在数以百亿计的句子中或者数以十亿计的网页中抽取词的相似性信息。有关分布相似度法和模式匹配法所生成的相似度信息的质量比较参见文献。

2) 上下位关系提取

该该模块从文档中抽取词的上下位关系信息,生成(下义词,上义词)数据对,例如(狗,动物)、(悉尼,城市)。提取上下位关系最简单的方法是解析百科类站点的分类信息(如维基百科的“分类”和百度百科的“开放分类”)。这种方法的主要缺点包括:并不是所有的分类词条都代表上位词,例如百度百科中“狗”的开放分类“养殖”就不是其上位词;生成的关系图中没有权重信息,因此不能区分同一个实体所对应的不同上位词的重要性;覆

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值