知识图谱
- 1 学习目标
- 2 知识图谱概念
- 2.1 什么是知识图谱
- 2.2 语义网络
- 2.3 知识图谱的定义
- 3 知识图谱的架构
- 3.1 知识图谱的逻辑结构
- 3.2 知识图谱的体系架构
- 4 知识图谱的关键技术
- 4.1 信息抽取
- 4.2 知识融合
- 4.3 知识加工
- 4.4 知识图谱存储
- 4.5 知识更新
- 5 知识图谱的典型应用
- 5.1 智能搜索
- 5.2 深度问答
- 5.3 社交网络
- 5.4 电商行业
⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计10268字,阅读大概需要5分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
个人网站:https://jerry-jy.co/
1 学习目标
内容分析 | 随着智能信息服务应用的不断发展,知识图谱已被广泛应用于智能搜索、智能问答、个性化推荐等领域。本课首先介绍了知识图谱的概念,然后分别介绍了知识图谱的架构、关键技术和典型应用。 |
---|---|
学习目的及要求 | 理解知识图谱的概念; 理解知识图谱的架构; 理解知识图谱的构建方法; 了解知识图谱的典型应用。 |
重点 | 知识图谱的关键技术。 |
难点 | 知识图谱的构建方法。 |
2 知识图谱概念
2.1 什么是知识图谱
知识图谱并非是一个全新的概念,早在2006年就提出了语义网的概念,呼吁推广、完善使用本体模型来形式化表达数据中的隐含语义,RDF (resource description framework)模式(RDF schema)和万维网本体语言(Web ontology language,OWL)的形式化模型就是基于上述目的产生的。随后掀起了一场语义网研究的热潮,知识图谱技术的出现正是基于以上相关研究,是对语义网标准与技术的一次扬弃与升华。
Google 为了提升搜索引擎返回的答案质量和用户查询的效率,于2012年5月16日发布了知识图谱(Knowledge Graph)。有知识图谱作为辅助,搜索引擎能够洞察用户查询背后的语义信息,返回更为精准、结构化的信息,更大可能地满足用户的查询需求。Google 知识图谱的宣传语“things not strings” 给出了知识图谱的精髓,即,不要无意义的字符串,而是获取字符串背后隐含的对象或事物。例如,用户搜索关键词为“费德勒”,引擎就会以知识卡片的形式给出他的详细信息、获得的奖项、世界排名等,并配合以图片等描述信息,如下图所示。知识图谱能够使计算机理解人类的语言交流模式,从而更加智能地反馈用户需要的答案。与此同时,通过知识图谱能够将Web上的信息、数据以及链接关系聚集为知识,使信息资源更易于计算、理解以及评价,并且形成一套Web语义知识库。
2.2 语义网络
通过前面的例子,我们可以看到知识图谱的本质是为了表示知识。其实知识图谱的概念并不新,它背后的思想可以追溯到上个世纪五六十年代所提出的一种知识表示形式——语义网络(Semantic Network)。语义网络由相互连接的节点和边组成,节点表示概念或者对象,边表示他们之间的关系(is-a关系,比如:猫是一种哺乳动物;part-of 关系,比如:脊椎是哺乳动物的一部分),如下图。在表现形式上,语义网络和知识图谱相似,但语义网络更侧重于描述概念与概念之间的关系,(有点像生物的层次分类体系——界门纲目科属种),而知识图谱则更偏重于描述实体之间的关联。
2.3 知识图谱的定义
知识图谱是结构化的语义知识库,用于迅速描述物理世界中的概念及其相互关系。
三元组是知识图谱的一种通用表示方式,其基本形式主要包括(实体1,关系,实体2)和(概念,属性,属性值)。实体是知识图谱中的最基本元素,不同的实体间存在不同的关系。概念主要指集合、类别、对象类型、事物的种类,例如人物、地理等;属性主要指对象可能具有的属性、特征、特性、特点以及参数,例如国籍、生日等;属性值主要指对象指定属性的值,例如中国、1988-09-08等。每个实体(概念的外延)可用一个全局唯一确定的ID来标识,每个属性-属性值对可用来刻画实体的内在特性,而关系可用来连接两个实体,刻画它们之间的关联。
例如,我们在前面的例子中在搜索引擎中搜索费德勒,结果显示的“费德勒-现今排名-3”就属于(实体,属性,值)的形式,“费德勒-配偶-米卡尔”则是(实体,关系,实体)三元组。这是知识图谱基本单元,那为什么叫做知识图谱?因为这个“实体-关系-实体”可以引发更多关系,比如:费德勒有爸爸,他的爸爸有兄弟,他爸爸的兄弟有儿女,这样关联起来,从费德勒这个为中心将这些关系一一梳理开来就成了一个关系网络,最终梳理成一个大的图就叫做图谱,这些东西构建起来就叫做知识图谱。
3 知识图谱的架构
3.1 知识图谱的逻辑结构
知识图谱在逻辑上可分为模式层与数据层两个层次:
- 数据层:主要是由一系列的事实组成,而知识将以事实为单位进行存储。如果用(实体,关系,实体)、(实体、属性,属性值)这样的三元组来表达事实,可选择图数据库作为存储介质,例如开源的Neo4j、Twitter的FlockDB、sones的GraphDB等。
- 模式层:构建在数据层之上,主要是通过本体库来规范数据层的一系列事实表达。本体是结构化知识库的概念模板,通过本体库而形成的知识库不仅层次结构较强,并且冗余程度较小。
3.2 知识图谱的体系架构
知识图谱的体系架构是其指构建模式结构,如下图所示。其中虚线内的部分为知识图谱的构建过程,该过程需要随人的认知能力不断更新迭代。知识图谱的体系架构分为三部分:知识抽取、图谱构建和图谱生成。
(1)知识抽取
虚线框的最左边是三种输入数据结构,结构化数据、半结构化数据、非结构化数据。这些数据可以来自任何地方,只要它对要构建的这个知识图谱有帮助。
- 结构化数据——开放链接数据.有一些公开的知识图谱,可以用来直接应用,例如DBPedia、YAGO、WikiData、中文开放知识图谱联盟(OpenKG)、中文知识平台—楚辞等。
- 半结构化数据——百度百科、wiki百科、互动百科等,这些数据的结构不够规整清晰,需要人工或机器来手动的提取出知识
- 非结构化数据——文本数据,文本来源是互联网中的网页。要使用这些文本,需要首先把网页从互联网中采集到本地,然后把其中的正文内容抽取出来。
(2)图谱生成
最右边是生成的知识图谱,而且这个技术架构是循环往复,迭代更新的过程。知识图谱不是一次性生成,是慢慢积累的过程。
(3)构建过程
虚线框里面的是整个的知识图谱的构建过程。其中主要包含了3个阶段,信息抽取、知识融合、知识加工。这三个过程是构造知识图谱的关键技术,下面我们来分别进行介绍。
4 知识图谱的关键技术
大规模知识库的构建与应用需要多种智能信息处理技术的支持。通过知识抽取技术,可以从一些公开的半结构化、非结构化的数据中提取出实体、关系、属性等知识要素。通过知识融合,可消除实体、关系、属性等指称项与事实对象之间的歧义,形成高质量的知识库。知识推理则是在已有的知识库基础上进一步挖掘隐含的知识,从而丰富、扩展知识库。分布式的知识表示形成的综合向量对知识库的构建、推理、融合以及应用均具有重要的意义。
4.1 信息抽取
信息抽取(infromation extraction)是知识图谱构建的第1步,其中的关键问题是:如何从异构数据源中自动抽取信息得到候选指示单元。
信息抽取是一种自动化地从半结构化和无结构数据中抽取实体、关系以及实体属性等结构化信息的技术。涉及的关键技术包括:实体抽取、关系抽取和属性抽取。
(1)实体抽取(Entity Extraction)
实体抽取又称为命名实体识别(named entity recognition,NER),是指从文本数据集中自动识别出命名实体。实体抽取的质量(准确率和召回率)对后续的知识获取效率和质量影响极大,因此是信息抽取中最为基础和关键的部分。
例如,在下图中,通过实体抽取我们可以从其中抽取出三个实体——“Steve Balmer”, “Bill Gates”,和"Microsoft"。
实体抽取的方法分为3种:基于规则与词典的方法、基于统计机器学习的方法以及面向开放域的抽取方法。
- 基于规则与词典的实体抽取方法
早期的实体抽取是在限定文本领域、限定语义单元类型的条件下进行的,主要采用的是基于规则与词典的方法,例如使用已定义的规则,抽取出文本中的人名、地名、组织机构名、特定时间等实体。然而,基于规则模板的方法不仅需要依靠大量的专家来编写规则或模板,覆盖的领域范围有限,而且很难适应数据变化的新需求。
- 基于统计机器学习的实体抽取方法
随后,研究者尝试将机器学习中的监督学习算法用于命名实体的抽取问题上。例如论文“Recognizing named entities in tweets”利用KNN算法与条件随机场模型,实现了对Twitter文本数据中实体的识别。单纯的监督学习算法在性能上不仅受到训练集合的限制,并且算法的准确率与召回率都不够理想。相关研究者认识到监督学习算法的制约性后,尝试将监督学习算法与规则相互结合,取得了一定的成果。
- 面向开放域的实体抽取方法
针对如何从少量实体实例中自动发现具有区分力的模式,进而扩展到海量文本去给实体做分类与聚类的问题,论文“Web-scale named entity recognition”提出了一种通过迭代方式扩展实体语料库的解决方案,其基本思想是通过少量的实体实例建立特征模型,再通过该模型应用于新的数据集得到新的命名实体。论文“Open entity extraction from web search query logs”提出了一种基于无监督学习的开放域聚类算法,其基本思想是基于已知实体的语义特征去搜索日志中识别出命名的实体,然后进行聚类。
(2)关系抽取
文本语料经过实体抽取,得到的是一系列离散的命名实体,为了得到语义信息,还需要从相关的语料中提取出实体之间的关联关系,通过关联关系将实体(概念)联系起来,才能够形成网状的知识结构,研究关系抽取技术的目的,就是解决如何从文本语料中抽取实体间的关系这一基本问题,如下图所示。
关系抽取的目标是解决实体间语义链接的问题,主要的抽取方法包括:
- 人工构造语法和语义规则(模式匹配);
- 统计机器学习方法;
- 基于特征向量或核函数的有监督学习方法;
- 研究重点转向半监督和无监督;
- 开始研究面向开放域的信息抽取方法;
- 将面向开放域的信息抽取方法和面向封闭领域的传统方法结合。
(3)属性抽取
属性抽取的目标是从不同信息源中采集特定实体的属性信息。例如针对某个公众人物,可以从网络公开信息中得到其昵称、生日、国籍、教育背景等信息。属性抽取技术能够从多种数据来源中汇集这些信息,实现对实体属性的完整勾画。包括:
-
将实体的属性视作实体与属性值之间的一种名词性关系,将属性抽取任务转化为关系抽取任务;
-
基于规则和启发式算法,抽取结构化数据;
-
基于百科类网站的半结构化数据,通过自动抽取生成训练语料,用于训练实体属性标注模型,然后将其应用于对非结构化数据的实体属性抽取;
-
采用数据挖掘的方法直接从文本中挖掘实体属性和属性值之间的关系模式,据此实现对属性名和属性值在文本中的定位。
4.2 知识融合
通过信息抽取,我们就从原始的非结构化和半结构化数据中获取到了实体、关系以及实体的属性信息。
如果我们将接下来的过程比喻成拼图的话,那么这些信息就是拼图碎片,散乱无章,甚至还有从其他拼图里跑来的碎片、本身就是用来干扰我们拼图的错误碎片。拼图碎片(信息)之间的关系是扁平化的,缺乏层次性和逻辑性;拼图(知识)中还存在大量冗杂和错误的拼图碎片(信息)。那么如何解决这一问题,就是在知识融合这一步里我们需要做的了。
知识融合包括实体链接和知识合并两部分内容。
(1)实体链接
实体链接(entity linking)是指对于从文本中抽取得到的实体对象,将其链接到知识库中对应的正确实体对象的操作。其基本思想是首先根据给定的实体指称项,从知识库中选出一组候选实体对象,然后通过相似度计算将指称项链接到正确的实体对象。
早期的研究仅关注如何将从文本中抽取到的实体链接到知识库中,忽视了位于同一文档的实体间存在的语义联系。随后的研究则开始关注利用实体的共现关系,同时将多个实体链接到知识库中,即集成实体链接(collective entity linking)。实体链接的流程如下图所示:
①从文本中通过实体抽取得到实体指称项;
②进行实体消歧和共指消解,判断知识库中的同名实体与之是否代表不同的含义以及知识库中是否存在其他命名实体与之表示相同的含义:
- 实体消歧:专门用于解决同名实体产生歧义问题的技术,通过实体消歧,就可以根据当前的语境,准确建立实体链接,实体消歧主要采用聚类法。其实也可以看做基于上下文的分类问题,类似于词性消歧和词义消歧。
- 共指消解:主要用于解决多个指称对应同一实体对象的问题。在一次会话中,多个指称可能指向的是同一实体对象。利用共指消解技术,可以将这些指称项关联(合并)到正确的实体对象,由于该问题在信息检索和自然语言处理等领域具有特殊的重要性,吸引了大量的研究努力。共指消解还有一些其他的名字,比如对象对齐、实体匹配和实体同义。
③在确认知识库中对应的正确实体对象之后,将该实体指称项链接到知识库中对应实体。
(2)知识合并
在构建知识图谱时,可以从第三方知识库产品或已有结构化数据获取知识输入。常见的知识合并需求有两个,一个是合并外部知识库,另一个是合并关系数据库。
将外部知识库融合到本地知识库需要处理两个层面的问题:
- 数据层的融合,包括实体的指称、属性、关系以及所属类别等,主要的问题是如何避免实例以及关系的冲突问题,造成不必要的冗余;
- 通过模式层的融合,将新得到的本体融入已有的本体库中。
然后是合并关系数据库,在知识图谱构建过程中,一个重要的高质量知识来源是企业或者机构自己的关系数据库。为了将这些结构化的历史数据融入到知识图谱中,可以采用资源描述框架(RDF)作为数据模型,业界和学术界将这一数据转换过程形象地称为RDB2RDF,其实质就是将关系数据库的数据换成RDF的三元组数据。
4.3 知识加工
在前面,我们已经通过信息抽取,从原始语料中提取出了实体、关系与属性等知识要素,并且经过知识融合,消除实体指称项与实体对象之间的歧义,得到一系列基本的事实表达。
然而事实本身并不等于知识。要想最终获得结构化,网络化的知识体系,还需要经历知识加工的过程。
知识加工主要包括3方面内容:本体构建、知识推理和质量评估。
(1)本体构建
本体(ontology)是指工人的概念集合、概念框架,如“人”、“事”、“物”等。
本体可以采用人工编辑的方式手动构建(借助本体编辑软件),也可以以数据驱动的自动化方式构建本体。因为人工方式工作量巨大,且很难找到符合要求的专家,因此当前主流的全局本体库产品,都是从一些面向特定领域的现有本体库出发,采用自动构建技术逐步扩展得到的。
自动化本体构建过程包含三个阶段:
- 实体并列关系相似度计算;
- 实体上下位关系抽取;
- 本体的生成。
比如对下面这个例子,当知识图谱刚得到“阿里巴巴”、“腾讯”、“手机”这三个实体的时候,可能会认为它们三个之间并没有什么差别,但当它去计算三个实体之间的相似度后,就会发现,阿里巴巴和腾讯之间可能更相似,和手机差别更大一些。
这就是第一步的作用,但这样下来,知识图谱实际上还是没有一个上下层的概念,它还是不知道,阿里巴巴和手机,根本就不隶属于一个类型,无法比较。因此我们在实体上下位关系抽取这一步,就需要去完成这样的工作,从而生成第三步的本体。
当三步结束后,这个知识图谱可能就会明白,“阿里巴巴和腾讯,其实都是公司这样一个实体下的细分实体。它们和手机并不是一类。”
(2)知识推理
在完成了本体构建这一步之后,一个知识图谱的雏形便已经搭建好了。但可能在这个时候,知识图谱之间大多数关系都是残缺的,缺失值非常严重,那么这个时候,就可以使用知识推理技术,去完成进一步的知识发现。
例如,在下面这个例子里
如果A是B的配偶,B是C的主席,C坐落于D,那么我们就可以认为,A生活在D这个城市。
根据这一条规则,我们可以去挖掘一下在图里,是不是还有其他的path满足这个条件,那么我们就可以将AD两个关联起来。除此之外,我们还可以去思考,串联里有一环是B是C的主席,那么B是C的CEO、B是C的COO,是不是也可以作为这个推理策略的一环呢?
当然知识推理的对象也并不局限于实体间的关系,也可以是实体的属性值,本体的概念层次关系等。
推理属性值:已知某实体的生日属性,可以通过推理得到该实体的年龄属性;
推理概念:已知(老虎,科,猫科)和(猫科,目,食肉目)可以推出(老虎,目,食肉目)。
知识推理的算法主要可以分为3大类,基于逻辑的推理、基于图的推理和基于深度学习的推理。三者的技术路线示意图如下所示。
!
(3)质量评估
对知识库的质量评估任务通常是与实体对齐任务一起进行的,其意义在于,可以对知识的可信度进行量化,保留置信度较高的,舍弃置信度较低的,有效确保知识的质量。
4.4 知识图谱存储
存储知识图谱的工具主要分为两类:第一类是资源描述框架(Resource Description Frameword,RDF)存储系统,另一类是图数据库。
(1)RDF
RDF是一种用于描述Web资源的标记语言,是一个处理元数据的XML(标准通用标记语言的子集)应用,使用XML语法和RDF Schema(RDFS)来将元数据描述成为数据模型。
一个RDF文件包含多个资源描述,而一个资源描述是由多个语句构成,一个语句是由资源、属性类型、属性值构成的三元组,表示资源具有的一个属性。主要是实体-属性-值和实体-关系-实体这两种形式。这些三元组在一起就组合成一张有关联的大图。下图是一个简单的RDF实例。
(2)图数据库
RDF一个重要的设计原则是数据的易发布以及共享,图数据库则把重点放在了高效的图查询和搜索上。
图数据库一般以属性图为基本的表示形式,所以实体和关系可以包含属性,这就意味着更容易表达现实的业务场景。如下图所示。
4.5 知识更新
(1)逻辑更新
从逻辑上看,知识库的更新包括概念层的更新和数据层的更新。
- 概念层的更新是指新增数据后获得了新的概念,需要自动将新的概念添加到知识库的概念层中。
- 数据层的更新主要是新增或更新实体、关系、属性值,对数据层进行更新需要考虑数据源的可靠性、数据的一致性(是否存在矛盾或冗杂等问题)等可靠数据源,并选择在各数据源中出现频率高的事实和属性加入知识库。
(2)内容更新
知识图谱的内容更新有两种方式:
- 全面更新:指以更新后的全部数据为输入,从零开始构建知识图谱。这种方法比较简单,但资源消耗大,而且需要耗费大量人力资源进行系统维护;
- 增量更新:以当前新增数据为输入,向现有知识图谱中添加新增知识。这种方式资源消耗小,但目前仍需要大量人工干预(定义规则等),因此实施起来十分困难。
5 知识图谱的典型应用
5.1 智能搜索
基于知识图谱的智能搜索引擎以知识卡片的形式将搜索结果展现出来。
国外的搜索引擎以谷歌的Google Search、微软的Bing Search最为典型。谷歌的知识图谱相继融入了维基百科、CIA世界概览等公共资源以及从其他网站搜集、整理的大量语义数据,微软的Bing Search和Facebook、Twitter等大型社交服务站点达成了合作协议,在用户个性化内容的搜集、定制化方面具有显著的优势。
国内的主流搜索引擎公司,如百度、搜狗等在近两年来相继将知识图谱的相关研究从概念转向产品应用。搜狗的知立方是国内搜索引擎行业的第一款知识图谱产品,它通过整合互联网上的碎片化语义信息,对用户的搜索进行逻辑推荐与计算,并将最核心的知识反馈给用户。百度将知识图谱命名为知心,主要致力于构建一个庞大的通用型知识网络,以图文并茂的形式展现知识的方方面面。
5.2 深度问答
问答系统是信息检索系统的一种高级形式,能够以准确简洁的自然语言为用户提供问题的解答。之所以说问答是一种高级形式的检索,是因为在问答系统中同样有查询式理解与知识检索这两个重要的过程,并且与智能搜索中相应过程中的相关细节是完全一致的。多数问答系统更倾向于将给定的问题分解为多个小的问题,然后逐一去知识库中抽取匹配的答案,并自动检测其在时间与空间上的吻合度等,最后将答案进行合并,以直观的方式展现给用户。
目前,很多问答平台都引入了知识图谱,例如华盛顿大学的Paralex系统和苹果的智能语音助手Siri,都能够为用户提供回答、介绍等服务;亚马逊收购的自然语言助手Evi,它授权了Nuance的语音识别技术,采用True Knowledge引擎进行开发,也可提供类似Siri的服务。国内百度公司研发的小度机器人,天津聚问网络技术服务中心开发的大型在线问答系统OASK,专门为门户、企业、媒体、教育等各类网站提供良好的交互式问答解决方案。
5.3 社交网络
社交网站Facebook于2013年推出了Graph Search产品,其核心技术就是通过知识图谱将人、地点、事情等联系在一起,并以直观的方式支持精确的自然语言查询,例如输入查询式:“我朋友喜欢的餐厅”、“住在纽约并且喜欢篮球和中国电影的朋友”等,知识图谱会帮助用户在庞大的社交网络中找到与自己最具相关性的人、照片、地点和兴趣等。Graph Search提供的上述服务贴近个人的生活,满足了用户发现知识以及寻找最具相关性的人的需求。
5.4 电商行业
电商网站的主要目的之一就是通过对商品的文字描述、图片展示、相关信息罗列等可视化的知识展现,为消费者提供最满意的购物服务与体验。通过知识图谱,可以提升电商平台的技术性、易用性、交互性等影响用户体验的因素。
阿里巴巴是应用知识图谱的代表电商网站之一,它不仅包含了淘宝数亿的商品,更建立了商品间关联的信息以及从互联网抽取的相关信息,通过整合所有信息,形成了阿里巴巴知识库和产品库,构建了它自身的知识图谱。当用户输入关键词查看商品时,知识图谱会为用户提供此次购物方面最相关的信息,包括整合后分类罗列的商品结果、使用建议、搭配等。
–end–