题目:知识图谱技术综述
作者:徐增林,盛泳潘,贺丽荣,王雅芳
摘 要
知识图谱技术是人工智能技术的重要组成部分,其建立的具有语义处理能力与开放互联能力的知识库,可在智能搜索、智能问答、个性化推荐等智能信息服务中产生应用价值。
该文在全面阐述知识图谱定义、架构的基础上,综述知识图谱中的知识抽取、知识表示、知识融合、知识推理四大核心技术的研究进展以及一些典型应用。该文还将评论当前研究存在的挑战。
关 键 词:知识融合; 知识图谱技术; 知识表示; 开放互联; 语义处理
目录
0 导读
1 知识图谱的定义与架构
1.1 知识图谱的定义
1.2 知识图谱的架构
2 大规模知识库
2.1 开放链接知识库
2.2 垂直行业知识库
3 知识图谱的关键技术
3.1 知识抽取
3.2 知识表示
3.3 知识融合
3.4 知识推理
4 知识图谱的典型应用
4.1 智能搜索
4.2 深度问答
4.3 社交网络
4.4 垂直行业应用
5 知识图谱的挑战
5.1 知识获取
5.2 知识表示
5.3 知识融合
5.4 知识应用
6 结束语
7 参考文献
0.导读
人类先后经历了以文档互联为主要特征的“Web 1.0”时代与数据互联为特征的“Web 2.0”时代,正在迈向基于知识互联的崭新“Web 3.0”时代[1]。知识图谱(knowledge graph)以其强大的语义处理能力与开放互联能力,可为万维网上的知识互联奠定扎实的基础,使Web 3.0提出的“知识之网”愿景成为了可能。
早在2006年, 文献[5]就提出了语义网的概念,呼吁推广、完善使用本体模型来形式化表达数据中的隐含语义,RDF (resource description framework)模式和万维网本体语言(Web ontology language,OWL)的形式化模型就是基于上述目的产生的。随后掀起了一场语义网研究的热潮,知识图谱技术的出现正是基于以上相关研究,是对语义网标准与技术的一次扬弃与升华。
知识图谱于2012年5月17日被Google正式提出[6],其初衷是为了提高搜索引擎的能力,增强用户的搜索质量以及搜索体验。目前,随着智能信息服务应用的不断发展,知识图谱已被广泛应用于智能搜索、 智能问答、个性化推荐等领域。
例如,用户搜索的关键词为梵高,引擎就会以知识卡片的形式给出梵高的详细生平、艺术生涯信息、不同时期的代表作品,并配合以图片等描述信息。与此同时,通过知识图谱能够将Web上的信息、数据以及链接关系聚集为知识,使信息资源更易于计算、理解以及评价,并且形成一套Web语义知识库。
本文的第一部分将沿着前面叙述,进一步剖析知识图谱的定义与架构;
第二部分将以开放链接知识库、垂直行业知识这两类主要的知识库类型为代表,简要介绍其中的几个知名度较高的大规模知识库;
第三部分将以知识图谱中的关键技术为重点,详细阐述知识获取、知识表示、知识融合、知识推理技术中的相关研究以及若干技术细节;
第四部分将介绍知识图谱在智能搜索、深度问答、社交网络以及垂直行业中的典型应用;
第五部分将介绍知识图谱所面临的一些困难与挑战;
第六部分将对全文的内容进行总结。
1.知识图谱的定义与架构
1.1 知识图谱的定义
在维基百科中:知识图谱是Google用于增强其搜索引擎功能的知识库[8]。本质上,知识图谱是一种揭示实体之间关系的语义网络,可以对现实世界的事物及其相互关系进行形式化地描述。现在的知识图谱已被用来泛指各种大规模的知识库。
三元组是知识图谱的一种通用表示方式,即G=(E,R,S)。其中:
三元组的基本形式主要包括实体1、关系、实体2和概念、属性、属性值等:
就覆盖范围而言,知识图谱也可分为通用知识图谱和行业知识图谱。
1.2 知识图谱的架构
知识图谱的架构主要包括自身的逻辑结构以及体系架构,分别说明如下。
1) 知识图谱的逻辑结构
知识图谱在逻辑上可分为模式层与数据层两个层次,数据层主要是由一系列的事实组成,而知识将以事实为单位进行存储。若用(实体1,关系, 实体2)、(实体、属性,属性值)这样的三元组来表达事实,可选择图数据库作为存储介质,例如开源的Neo4j[9]、Twitter的FlockDB[10]、sones的GraphDB[11]等。模式层构建在数据层之上,主要是通过本体库来规范数据层的一系列事实表达。本体是结构化知识库的概念模板,通过本体库而形成的知识库不仅层次结构较强,并且冗余程度较小。
2) 知识图谱的体系架构
知识图谱的体系架构是其指构建模式结构,如图1所示。其中虚线框内的部分为知识图谱的构建过程,该过程需要随人的认知能力不断更新迭代。
知识图谱主要有自顶向下(top-down)与自底向上(bottom-up)两种构建方式。自顶向下指的是先为知识图谱定义好本体与数据模式,再将实体加入到知识库。该构建方式需要利用一些现有的结构化知识库作为其基础知识库,例如Freebase项目就是采用这种方式,它的绝大部分数据是从维基百科中得到的。自底向上指的是从一些开放链接数据中提取出实体,选择其中置信度较高的加入到知识库,再构建顶层的本体模式[12]。目前,大多数知识图谱都采用自底向上的方式进行构建,其中最典型就是Google的Knowledge Vault[13]。
2.大规模知识库
随着语义Web资源数量激增、大量的RDF数据被发布和共享、LOD(linked open data)等项目的全面展开[14],学术界与工业界的研究人员花费了大量的精力构建各种结构化的知识库。下面将以开放链接知识库、行业知识库这两类主要的知识库类型为代表,详细说明其中的几个知名度较高的大规模知识库。
2.1 开放链接知识库
在LOD项目的云图中,Freebase、Wikidata、DBpedia、YAGO这4个大规模知识库处于绝对核心的地位,它们中不仅包含大量的半结构化、非结构化数据,是知识图谱数据的重要来源。而且具有较高的领域覆盖面,与领域知识库存在大量的链接关系。
1) Freebase
Freebase知识库[15]早期由Metaweb公司创建,后来被Google收购,成为Google知识图谱的重要组成部分。Freebase中的数据主要是由人工构建,另外一 部分数据则主要来源于维基百科、IMDB、Flickr等 网站或语料库。截止到2014年年底,Freebase已经包 含了6 800万个实体,10亿条关系信息,超过24亿条事实三元组信息,在2015年6月,Freebase整体移入 至WikiData。
2) Wikidata
Wikidata[16]是维基媒体基金会主持的一个自由的协作式多语言辅助知识库,旨在为维基百科、维基共享资源以及其他的维基媒体项目提供支持。它是Wikipedia、Wikivoyage、Wikisource中结构化数据的中央存储器,并支持免费使用[17]。Wikidata中的数据主要以文档的形式进行存储,目前已包含了超过1 700万个文档。其中的每个文档都有一个主题或一个管理页面,且被唯一的数字标识。
3) DBpedia
DBpedia[18]是由德国莱比锡大学和曼海姆大学的科研人员创建的多语言综合型知识库,在LOD项目中处于最核心的地位。DBpedia是从多种语言的维基百科中抽取结构化信息,并且将其以关联数据的形式发布到互联网上,提供给在线网络应用、社交 网站以及其他在线知识库。由于DBpedia的直接数据 来源覆盖范围广阔,所以它包含了众多领域的实体 信息。截止至2014年年底,DBpedia中的事实三元组 数量已经超过了30亿条。除上述优点外,DBpedia还能够自动与维基百科保持同步,覆盖多种语言。
4) YAGO
YAGO[19]是由德国马普所(max planck institute,MPI)的科研人员构建的综合型知识库。YAGO整合了维基百科、WordNet[20]以及GeoNames等数据源,特别是将维基百科中的分类体系与WordNet的分类体系进行了融合,构建了一个复杂的类别层次结构体系。第一个版本包含了超过100万的实体以及超过500万的事实。2012年,发布了第二个版本,在YAGO的基础上进行了大规模的扩展,引入了一个新的数据源GeoNames[21],被称为YAG02s。包含了超过1000万的实体以及超过1.2亿的事实。
2.2 垂直行业知识库
行业知识库也可称为垂直型知识库,其的描述目标是特定的行业领域,通常需要依靠特定行业的数据才能构建,因此其描述范围极为有限。下面将以MusicBrainz、IMDB、豆瓣等为代表进行说明。
1) IMDB
IMDB(internet movie database)[22]是一个关于电影演员、电影、电视节目、电视明星以及电影制作的资料库。截止到2012年2月,IMDB共收集了2 132 383部作品资料和4 530 159名人物资料。IMDB中的资料是按类型进行组织的。对于一个具体的条目,又包含了详细的元信息[23]。
2) MusicBrainz
MusicBrainz[24]是一个结构化的音乐维基百科,致力于收藏所有的音乐元数据,并向大众用户开放。任何注册用户都可以向网站中添加信息或投稿。由于Last.fm、GrooveShark、Pandora、Echonest等音乐服务网站的数据均来自于MusicBrainz,故MusicBrainz可通过数据库或Web服务两种方式将数据提供给社区。
3) ConceptNet
ConceptNet[26]是一个语义知识网络,主要由一系列的代表概念的结点构成,这些概念将主要采用自然语言单词或短语的表达形式,通过相互连接建立语义联系。ConceptNet包含了大量计算机可了解的世界的信息,这些信息将有助于计算机更好地实现搜索、问答以及理解人类的意图。ConceptNet 5[27]是基于ConceptNet的一个开源项目,主要通过GPLv3协议进行开源。
3.知识图谱的关键技术
大规模知识库的构建与应用需要多种智能信息处理技术的支持。通过知识抽取技术,可以从一些公开的半结构化、非结构化的数据中提取出实体、关系、属性等知识要素。通过知识融合,可消除实体、关系、属性等指称项与事实对象之间的歧义,形成高质量的知识库。知识推理则是在已有的知识库基础上进一步挖掘隐含的知识,从而丰富、扩展 知识库。分布式的知识表示形成的综合向量对知识库的构建、推理、融合以及应用均具有重要的意义。
3.1 知识抽取
知识抽取主要是面向开放的链接数据,通过自动化的技术抽取出可用的知识单元,知识单元主要包括实体(概念的外延)、关系以及属性3个知识要素,并以此为基础,形成一系列高质量的事实表达,为上层模式层的构建奠定基础。
3.1.1 实体抽取
早期的实体抽取也称为命名实体学习(named entity learning)或命名实体识别(named entity recognition),是从原始语料中自动识别出命名实体。由于实体是知识图谱中的最基本元素,其抽取的完整性、准确率、召回率等将直接影响到知识库的质量。因此,实体抽取是知识抽取中最为基础与关键的一步。
文献[28]将实体抽取的方法分为3种:基于规则与词典的方法、基于统计机器学习的方法以及面向开放域的抽取方法。
1) 基于规则与词典的实体抽取方法
早期的实体抽取是在限定文本领域、限定语义单元类型的条件下进行的,主要采用的是基于规则与词典的方法,例如使用已定义的规则,抽取出文本中的人名、地名、特定时间等实体[30]。文献[31]首次实现了一套能够抽取公司名称的实体抽取系统,其中主要用到了启发式算法与规则模板相结合的方法。然而,基于规则模板的方法 不仅需要依靠大量的专家来编写规则或模板,覆盖的领域范围也有限,而且很难适应数据变化的新需求。
2) 基于统计机器学习的实体抽取方法
随后,研究者尝试将机器学习中的监督学习算法用于命名实体的抽取问题上。例如文献[32]利用KNN算法与条件随机场模型,实现了对Twitter文本数据中实体的识别。单纯的监督学习算法在性能上不仅受到训练集的限制,并且算法的准确率与召回率都不够理想。相关研究者认识到监督学习算法的制约性后,尝试将监督学习算法与规则相互结合,取得了一定的成果。例如文献[33]基于字典,使用最大熵算法在Medline论文摘要的GENIA数据集上进行了实体抽取实验,实验的准确率与召回率都在70%以上。
3) 面向开放域的实体抽取方法
针对如何从少量实体实例中自动发现具有区分力的模式,进而扩展到海量文本去给实体做分类与聚类的问题,文献[34]提出了一种通过迭代方式扩展实体语料库的解决方案,其基本思想是通过少量的实体实例建立特征模型,再通过该模型应用于新的数据集得到新的命名实体。文献[35]提出了一种基于无监督学习的开放域聚类算法,其基本思想是基于已知实体的语义特征去搜索日志中识别出命名的实体,然后进行聚类。
3.1.2 关系抽取
关系抽取的目标是解决实体间语义链接的问题,早期的关系抽取主要是通过人工构造语义规则以及模板的方法识别实体关系。随后,实体间的关系模型逐渐替代了人工预定义的语法与规则。但是仍需要提前定义实体间的关系类型。
文献[36]提出了面向开放域的信息抽取框架(open information extraction,OIE),这是抽取模式上的一个巨大进步。但其在对实体的隐含关系抽取方面性能低下,因此部分研究者提出了基于马尔可夫逻辑网、基于本体推理的深层隐含关系抽取方法[37]。
1) 开放式实体关系抽取
开放式实体关系抽取可分为二元开放式关系抽取和n元开放式关系抽取。在二元开放式关系抽取中,早期的研究有KnowItAll[38]与TextRunner[37]系统,在准确率与召回率上表现一般。文献[39]提出了一种基于Wikipedia的OIE方法WOE,经自监督学习得到抽取器,准确率较TextRunner有明显的提高。针对WOE的缺点,文献[40]提出了第二代OIE ReVerb系统,以动词关系抽取为主。文献[41]提出了第三代OIE系统OLLIE(open language learning for information extraction),尝试弥补并扩展OIE的模型及相应的系统,抽取结果的准确度得到了增强。然而,基于语义角色标注的OIE分析显示:英文语句中40%的实体关系是n元的[42],如处理不当,可能会影响整体抽取的完整性。文献[43]提出了一种可抽取任意英文语句中n元实体关系的方法KPAKEN,弥补了ReVerb的不足。但是由于算法对语句深层语法特征的提取导致其效率显著下降,并不适用于大规模开放域语料的情况。
2) 基于联合推理的实体关系抽取
联合推理的关系抽取中的典型方法是马尔可夫逻辑网MLN(Markov logic network)[44],它是一种将马尔可夫网络与一阶逻辑相结合的统计关系学习框架,同时也是在OIE中融入推理的一种重要实体关系抽取模型。基于该模型,文献[45]提出了一种无监督学习模型StatSnowball,不同于传统的OIE,该方法可自动产生或选择模板生成抽取器。在StatSnowball的基础上,文献[37,46]提出了一种实体识别与关系抽取相结合的模型EntSum,主要由扩展的CRF命名实体识别模块与基于StatSnowball的关系抽取模块组成,在保证准确率的同时也提高了召回率。文献[37,47]提出了一种简易的Markov逻辑TML(tractable Markov logic),TML将领域知识分解为若干部分,各部分主要来源于事物类的层次化结构,并依据此结构,将各大部分进一步分解为若干个子部分,以此类推。TML具有较强的表示能力,能够较为简洁表示概念以及关系的本体结构。
3.1.3 属性抽取
属性抽取主要是针对实体而言的,通过属性形成对实体的完整勾画。实体的属性抽取可以转化为关系抽取问题。将实体属性的抽取问题转换为关系抽取问题。文献[37,48]提出的基于规则与启发式算法的属性抽取方法能够从Wikipedia及WordNet的半结构化网页中自动抽取相应的属性名称与属性值,还可扩展为一套本体知识库。实验表明:该算法的抽取准确率可达到95%。大量的属性数据主要存在于半结构化、非结构化的大规模开放域数据集中。抽取这些属性的方法:
3.2 知识表示
虽然,基于三元组的知识表示形式受到了人们广泛的认可,但是其在计算效率、数据稀疏性等方面却面临着诸多问题。以深度学习为代表的表示学习技术可以将实体的语义信息表示为稠密低维实值向量,进而在低维空间中高效计算实体、关系及其之间的复杂语义关联,对知识库的构建、推理、融合以及应用均具有重要的意义[51-53]。本文将重点介绍知识表示学习的代表模型、复杂关系翻译模型、多源异质信息融合模型方面的研究成果。
3.2.1 应用场景
分布式表示旨在用一个综合的向量来表示实体对象的语义信息,是一种模仿人脑工作的表示机制[53],通过知识表示而得到的分布式表示形式在知识图谱的计算、补全、推理等方面将起到重要的作用:
1) 语义相似度计算
由于实体通过分布式表示而形成的是一个个低维的实值向量,所以,可使用熵权系数法[54]、余弦相似性[55]等方法计算它们间的相似性。这种相似性刻画了实体之间的语义关联程度,为自然语言处理等提供了极大的便利。
2) 链接预测
通过分布式表示模型,可以预测图谱中任意两个实体之间的关系,以及实体间已存在的关系的正确性。尤其是在大规模知识图谱的上下文中,需要不断补充其中的实体关系,所以链接预测又被称为知识图谱的补全[53]。
3.2.2 代表模型
知识表示学习的代表模型主要包括距离模型、双线性模型、神经张量模型、矩阵分解模型、翻译模型等。
1) 距离模型
文献[56]提出了知识库中实体以及关系的结构化表示方法(structured embedding,SE),其基本思想是:首先将实体用向量进行表示,然后通过关系矩阵将实体投影到与实体向量同一维度的向量空间中,最后通过计算投影向量之间的距离来判断实体间已存在的关系的置信度。由于距离模型中的关系矩阵是两个不同的矩阵,故实体间的协同性较差, 这也是该模型本身的主要缺陷。
2) 单层神经网络模型
文献[57]针对上述提到的距离模型中的缺陷,提出了采用单层神经网络的非线性模型,模型为知识库中每个三元组(h,r,t)定 义了以下形式的评价函数:
3) 双线性模型
双线性模型又叫隐变量模型(latent factor model,LFM),由文献[58-59]首先提出。模型为知识库中每个三元组(h,r,t)定义的评价函数具有如下 形式:
式中,Mr 属于
dxd 是通过关系r定义的双线性变换矩阵; l 属于
d 是三元组中头实体与尾实体的向量化表示。 双线性模型主要是通过基于实体间关系的双线性变换来刻画实体在关系下的语义相关性。模型不仅形式简单、易于计算,而且还能够有效刻画实体间的协同性[53]。基于上述工作,文献[60]尝试将双线性变换矩阵 Mr 变换为对角矩阵,提出了DISTMULT模型,不仅简化了计算的复杂度,并且实验效果得到了显著提升。
4) 神经张量模型
文献[61]提出的神经张量模型,其基本思想是: 在不同的维度下,将实体联系起来,表示实体间复杂的语义联系。模型为知识库中的每个三元组(h,r,t)定义了以下形式的评价函数:
神经张量模型在构建实体的向量表示时,是将该实体中的所有单词的向量取平均值,这样一方面可以重复使用单词向量构建实体,另一方面将有利于增强低维向量的稠密程度以及实体与关系的语义计算[53]。
5) 矩阵分解模型
通过矩阵分解的方式可得到低维的向量表示, 故不少研究者提出可采用该方式进行知识表示学 习,其中的典型代表是文献[62]提出的RESACL模型。在RESCAL模型中,知识库中的三元组(h,r,t)集合被表示为一个三阶张量,如果该三元组存在,张量中对应位置的元素被置1,否则置为0。通过张量分解算法,可将张量中每个三元组(h,r,t)对应的张量值 X hrt 分解为双线性模型中的知识表示形式lhTMrlt,并使|Xhrt -lhTMrlt | 尽量小。
6) 翻译模型
文献[63]受到平移不变现象的启发,提出了TransE模型,即将知识库中实体之间的关系看成是从实体间的某种平移,并用向量表示。关系lr 可以看作是从头实体向量 lh 到尾实体向量 lt 的翻译。对于知识库中的每个三元组(h,r,t),TransE都希望满足以下关系:
其损失函数为: fr (h,t) =| lh + lr - lt |L1 / L2 ,即向量 lh + lr 和 lt 的 L1 或 L2 距离。该模型的参数较少,计算的复杂度显著降低。与此同时,TransE模型在大规模稀疏知识库上也同样具有较好的性能与可扩展性。
3.2.3 复杂关系模型
知识库中的实体关系类型也可分为1-to-1、1-to-N、N-to-1、N-to-N4种类型[63],而复杂关系主要指的是1-to-N、N-to-1、N-to-N的3种关系类型。由于TransE模型不能用在处理复杂关系上[53], 一系列基于它的扩展模型纷纷被提出:
1) TransH模型
文献[64]提出的TransH模型尝试通过不同的形式表示不同关系中的实体结构,对于同一个实体而言,它在不同的关系下也扮演着不同的角色。模型首先通过关系向量 lr 与其正交的法向量 wr 选取某一个超平面 F ,然后将头实体向量 lh 和尾实体向量l 沿法向量 w 的方向投影到 F ,最后计算损失函数。TransH使不同的实体在不同的关系下拥有了不 同的表示形式,但由于实体向量被投影到了关系的语义空间中,故它们具有相同的维度。
2) TransR模型
由于实体、关系是不同的对象,不同的关系所关注的实体的属性也不尽相同,将它们映射到同一个语义空间,在一定程度上就限制了模型的表达能力。所以,文献[65]提出了TransR模型。模型首先将知识库中的每个三元组(h,r,t)的头实体与尾实体向关系空间中投影,然后希望满足 lhr 加 lr 约等于 ltr 的关系,最后计算损失函数。文献[65]提出的CTransR模型认为关系还可做更细致的划分,这将有利于提高实体与关系的语义联系。在CTransR模型中,通过对关系 r 对应的头实体、尾实体向量的差值lh - lt进行聚类,可将r划分为若干个子关系rc 。
3) TransD模型
考虑到在知识库的三元组中,头实体和尾实体表示的含义、类型以及属性可能有较大差异,之前的TransR模型使它们被同一个投影矩阵进行映射, 在一定程度上就限制了模型的表达能力。除此之外,将实体映射到关系空间体现的是从实体到关系的语 义联系,而TransR模型中提出的投影矩阵仅考虑不同的关系类型,而忽视了实体与关系之间的交互。 因此,文献[66]提出了TransD模型,模型分别定义了头实体与尾实体在关系空间上的投影矩阵。
4) TransG模型
文献[67]提出的TransG模型认为一种关系可能 会对应多种语义,而每一种语义都可以用一个高斯分布表示。TransG模型考虑到了关系 r 的不同语义, 使用高斯混合模型来描述知识库中每个三元组(h,r,t)的头实体与尾实体之间的关系,具有较高的实体区分度。
5) KG2E模型
考虑到知识库中的实体以及关系的不确定性, 文献[68]提出了KG2E模型,其中同样是用高斯分布 来刻画实体与关系。模型使用高斯分布的均值表示 实体或关系在语义空间中的中心位置,协方差则表 示实体或关系的不确定度。知识库中,每个三元组(h,r,t)的头实体向量lh与尾实体向量 lt 之间的关系可表示为:
关系 r 可表示为:
由此,可以通过 Pe 与 Pr 两个相似度的评价给三元组打分。用于对分布相似度进行评价的方法主要是KL散度与期望概率。
3.2.4 多源信息融合
三元组作为知识库的一种通用表示形式,通过表示学习,能够以较为直接的方式表示实体、关系及其之间的复杂语义关联。然而,互联网中仍蕴含着大量与知识库实体、关系有关的信息未被考虑或有效利用,如充分融合、利用这些多源异质的相关信息,将有利于进一步提升现有知识表示模型的区 分能力以及性能[53]。
目前,多源异质信息融合模型方面的研究尚处于起步阶段,涉及的信息来源也极为有限,具有较为广阔的研究前景。下面将主要介绍其中通过融合本文信息进行知识表示的代表性工作。
文 献 [69] 提 出 的 DKRL(description-embodied knowledge representation learning),模型将Freebase知识库中的实体描述文本数据作为其主要数据来源,通过CBOW模型[70],将文本中多个词对应的词向量加起来表示文本;其中的另一个CNN模型[71]则利用模型DKRL模型在新实体的表示能力方面较强,它能根据新实体的简短描述产生对应的表示形式,这对于知识融合以及知识图谱补全等具有重要的意义。
文献[64]选择维基百科知识库,并通过word2vec将知识库中的正文词语表示为向量,同时使用TransE模型[63]对该知识库进行表示学习。目标是使通过word2vec表示的实体与知识库中学习到的实体尽可能接近,从而使文本能够与知识库相互融合。
作者:徐增林,盛泳潘,贺丽荣,王雅芳
编辑:西柚媛
本文来自程序媛驿站,未经授权不得转载.