拆解知识图谱的构建流水线:信息抽取、实体对齐与知识推理的关键挑战
AIAI Summary (BLUF)
本文全面介绍了知识图谱的核心概念、逻辑架构和技术架构,重点解析了构建过程中的信息抽取、知识融合与知识加工三个关键环节,并讨论了知识更新及典型应用场景,适合技术初学者系统理解知识图谱技术体系。
核心洞察
这篇文章最有意思的点在于把知识图谱A structured knowledge base that represents entities and their relationships in a graph format.的构建拆成了流水线来看:信息抽取从异构数据源中自动抽取实体、关系和属性等结构化信息的技术。、知识融合将来自不同来源的知识进行整合、消歧和统一,形成一致、完整的知识图谱。、知识加工对融合后的知识进行本体构建、知识推理和质量评估,形成网络化知识体系。,每个环节都有自己绕不过去的坑。尤其知识融合那部分,很多人第一次搭知识图谱都会低估实体现实世界中可识别的事物,如人物、地点、组织、概念等,是知识图谱的基本构成单元。对齐的难度,觉得数据洗干净就行,实际上一堆同名不同义、同义不同名的状况能把人整崩溃。如果你正要开始搭知识图谱,建议先把这一节读两遍。
核心结论
- 知识图谱的基本单位是“实体-关系描述实体间的语义联系,如“属于”“创始人”“总部位于”等。-实体”三元组知识图谱中信息的基本单位,形式为(主语,谓语,宾语),表示两个实体通过特定关系连接。,构建过程分为信息抽取、知识融合、知识加工三个阶段,且该过程是循环迭代的。
- 在涉及2度、3度关联查询时,图数据库比关系数据库的效率可高出几千倍甚至几百万倍。
- 实体链接的关键是解决两类问题:实体消歧(同名实体产生歧义)和共指消解(多个指称对应同一实体对象)。
- 本体定义知识图谱的框架,包括实体分类、关系类型及逻辑规则,确保数据的一致性与可扩展性。自动构建包含三个阶段:实体并列关系相似度计算、实体上下位关系抽取、本体生成。
- 知识推理根据已有知识推断出新的事实或关系,算法分为基于逻辑、基于图和基于深度学习的推理。的典型规则是:若A是B的配偶,B是C的主席,C坐落于D,则可推断A生活在D城市;推理对象包括实体间关系、属性值和概念层次关系。
1. 前言
从Google搜索到现在的聊天机器人、大数据风控、证券投资、智能医疗、自适应教育、推荐系统,几乎都能看到知识图谱的影子。它在技术圈的热度年年都在涨。这篇文章用比较通俗的方式讲知识图谱相关的知识,尤其是从零搭建知识图谱要经历哪些步骤,每一步有哪些问题需要提前想清楚。
知识图谱(Knowledge Graph)这个概念是谷歌在2012年正式提出的,目标是做更智能的搜索引擎。2013年以后,学术界和工业界开始大规模跟进。如今它已经被用在智能搜索、智能问答、个性化推荐、情报分析、反欺诈这些领域。知识图谱能做的事情,是把Web上的信息、数据和链接关系聚合成知识,让信息资源更容易被计算、理解和评价,最终形成一套Web语义知识库。它靠的就是强大的语义处理能力和开放互联能力,这为万维网上的知识互联打下了基础,也让Web 3.0说的"知识之网"有了落地的可能。
2. 知识图谱定义
知识图谱,简单说就是一个结构化的语义知识库,专门用来描述物理世界里的概念以及概念之间的相互关系。
它的做法是把错综复杂的文档数据做加工、处理、整合,转化成简单清晰的"实体-关系-实体"三元组,然后把大量知识聚合在一起,实现快速响应和推理。
知识图谱有自顶向下和自底向上两种构建方式。自顶向下是借助百科类网站这类结构化数据源,从高质量数据里提取本体和模式信息,加入知识库。自底向上则是用技术手段从公开采集的数据里提取资源模式,选择置信度比较高的新模式,经过人工审核后加入知识库。
来看一张简单的知识图谱示意图:
图中的节点如果存在关系,就会有一条无向边把它们连在一起。这些节点叫实体(Entity),节点之间的边叫关系(Relationship)。
知识图谱的基本单位就是"实体-关系-实体"构成的三元组,这也是整个知识图谱的核心。
- 实体:指可区别且独立存在的某种事物。实体是知识图谱里最基本的元素,不同实体之间存在着不同的关系。比如图中的"中国"、"北京"、"16410平方公里"。
- 关系:连接不同实体,指代实体之间的联系。通过关系把图谱中的节点串起来,就形成了一张大图。比如图中的"人口"、"首都"、"面积"。
3. 数据类型和存储方式
知识图谱的原始数据一般有三类,正好也是互联网上的三类原始数据:
- 结构化数据:关系数据库就是典型代表
- 半结构化数据:像XML、JSON、百科这类
- 非结构化数据:图片、音频、视频、文本等
存储方式有两种主流选择。一种是用RDF(资源描述框架)这样的规范格式来存,另一种是直接用图数据库,比如Neo4j。
RDF的结构是三元组形式,Neo4j则是节点和关系的图结构。
在知识图谱这个场景下,图数据库比关系数据库灵活得多。数据量小的时候,关系数据库完全能扛住,效率也不差。但随着知识图谱变复杂,图数据库的优势就显现出来了。涉及2度、3度的关联查询时,图数据库比关系数据库的效率能高出几千倍甚至几百万倍。
4. 知识图谱的架构
知识图谱在架构上分为逻辑架构和技术架构两块。
4.1 逻辑架构
逻辑上分模式层和数据层。
模式层构建在数据层之上,是知识图谱的核心,一般用本体库来管理。本体是结构化知识库的概念模板,通过本体库构建的知识库层次结构强,冗余也少。
模式层的形式是:实体-关系-实体,实体-属性-属性值。
数据层由一系列事实组成,知识以事实为单位存储。如果用(实体1,关系,实体2)、(实体,属性,属性值)这样的三元组来表达事实,可以选择图数据库做存储介质,比如开源的Neo4j、Twitter的FlockDB、sones的GraphDB。
数据层的形式是:比尔盖茨-妻子-梅琳达·盖茨,比尔盖茨-总裁-微软这样的实例。
4.2 技术架构
知识图谱的整体架构见下图,虚线框里就是知识图谱的构建过程,也是它持续更新的过程。
把这张图拆开看。
- 虚线框最左边是三种输入数据结构:结构化数据、半结构化数据、非结构化数据。数据来源不限,只要对要构建的知识图谱有帮助就行。
- 虚线框里面是知识图谱的完整构建过程,包括信息抽取、知识融合、知识加工三个阶段。
- 最右边是生成的知识图谱。注意这个架构是循环迭代的,知识图谱不是一次性生成的,是慢慢积累出来的。
各阶段的职责如下:
- 信息抽取:从各种类型的数据源中提取实体、属性以及实体间的相互关系,形成本体化的知识表达。
- 知识融合:获得新知识之后,要整合消歧。有些实体有不同表达方式,有些称谓可能对应多个不同实体,这些都得处理干净。
- 知识加工:融合后的新知识需要经过质量评估,部分还得人工参与甄别,合格了才能加入知识库。
构建知识图谱的过程,本质上就是信息抽取、知识融合、知识加工这三个环节的循环。每个环节都有各自的难点,下面分开说。
5. 信息抽取
信息抽取是知识图谱构建的第一步。核心问题是怎么从异构数据源里自动抽取信息,得到候选知识单元。它做的事情是从半结构化和无结构数据中自动抽取实体、关系、属性等结构化信息。
关键技术包括:实体抽取、关系抽取、属性抽取。
5.1 实体抽取
实体抽取也叫命名实体识别(NER),指从文本数据集中自动识别出命名实体。这一步的质量直接影响后续知识获取的效率,准确率和召回率上不去,后面全是白搭。它是信息抽取里最基础也最关键的一块。
2012年,Ling等人归纳出112种实体类别,用条件随机场CRF做实体边界识别,再用自适应感知机算法实现自动分类,效果不错。
但互联网内容一直在动态变化,靠人工预定义实体分类体系的做法已经跟不上需求了。所以研究者开始做面向开放域的实体识别和分类。
开放域的思路下,不可能也不需要为每个领域单独建语料库。真正的挑战在于,怎么从少量已知的实体实例中自动发现具有区分力的模型。
有人尝试根据已知实体实例做特征建模,拿模型跑海量数据得到新的命名实体列表,再针对新实体建模,迭代生成语料库。也有人用搜索引擎的服务器日志做文章,事先不给实体分类信息,而是基于语义特征从搜索日志里识别命名实体,再用聚类算法对识别出的实体进行聚合。
5.2 关系抽取
文本经过实体抽取之后,得到的是一堆离散的命名实体,它们之间还没有语义联系。要形成网状知识结构,还必须从相关语料中提取实体间的关联关系。关系抽取解决的就是这个问题。
这个领域的研究大致走过了这么几个阶段:
- 人工构造语法和语义规则做模式匹配
- 统计机器学习方法
- 基于特征向量或核函数的有监督学习方法
- 研究重点转向半监督和无监督
- 开始研究面向开放域的信息抽取方法
- 把开放域方法和传统封闭领域方法结合起来
5.3 属性抽取
属性抽取的目标是从不同信息源中采集特定实体的属性信息。比如针对某个公众人物,可以从公开信息里拿到昵称、生日、国籍、教育背景等。这些信息分散在多个来源,属性抽取就是把它们汇合起来,完整勾画一个实体的属性画像。
具体做法有几种路径:
- 把实体属性看作实体与属性值之间的一种名词性关系,把属性抽取转成关系抽取任务来处理。
- 用规则和启发式算法抽取结构化数据。
- 利用百科类网站的半结构化数据,自动生成训练语料来训练实体属性标注模型,然后再应用到非结构化数据上。
- 用数据挖掘手段直接从文本中挖掘实体属性和属性值之间的关系模式,由此定位文本中的属性名和属性值。
6. 知识融合
通过信息抽取,我们拿到了实体、关系和属性信息。如果把接下来的过程比作拼图,这些信息就是拼图碎片,散乱无章,里面可能混着别的拼图跑来的碎片,还有专门来捣乱的错误碎片。
碎片(信息)之间是扁平关系,缺乏层次和逻辑。拼图(知识)里还有大量冗余和错误。怎么处理?这就是知识融合要做的事。
知识融合包含两部分:实体链接和知识合并。
6.1 实体链接
实体链接做的事情是:把从文本中抽取出来的实体指称项,链接到知识库中对应的正确实体对象。
基本逻辑是,先根据给定的实体指称项,从知识库里选出一组候选实体对象,再用相似度计算把指称项挂到正确的那个实体上。
研究路线也演进了。早期只关注单个实体怎么从文本链接到知识库,忽略了同一文档里实体之间的语义联系。后来开始利用实体的共现关系,把多个实体同时链接到知识库,这就是集成实体链接。
实体链接的具体流程:
- 从文本里通过实体抽取得到实体指称项。
- 做实体消歧和共指消解。判断知识库里同名的实体是不是代表不同含义,以及有没有别的命名实体和当前这个指称的是同一个东西。
- 确认正确的实体对象之后,把指称项链接过去。
这里有两个关键概念要区分开:
- 实体消歧解决的是同名实体产生歧义的问题。通过实体消歧,可以根据当前语境准确建立实体链接,主要用聚类法来做。换个角度看,这其实是一个基于上下文的分类问题,跟词性消歧、词义消歧的思路差不多。
- 共指消解解决的是多个指称对应同一实体对象的问题。一次会话里,好几个指称可能指向同一个实体,共指消解把这些指称关联到正确的实体对象上。它在信息检索和自然语言处理里都很受重视。共指消解还有一些别名,比如对象对齐、实体匹配、实体同义。
6.2 知识合并
构建知识图谱的时候,可以从第三方知识库产品或已有的结构化数据获取知识输入。
常见的需求有两类:合并外部知识库、合并关系数据库。
把外部知识库融合进本地知识库,需要处理数据层和模式层两个层面的问题。数据层的融合包括实体的指称、属性、关系、类别等,要防止实例和关系冲突导致冗余。模式层的融合要把新得到的本体融入已有的本体库。
合并关系数据库是另一种常见场景。企业或机构自己的关系数据库是高质量的知识来源。把关系数据库的数据转成RDF三元组格式,这个转换过程业界叫作RDB2RDF。
7. 知识加工
到这里,信息抽取帮我们拿到了实体、关系和属性,知识融合消除了指称和实体之间的歧义,得到了一系列基本事实表达。
不过事实本身不等于知识。要形成结构化、网络化的知识体系,还得经过知识加工。
知识加工主要包括三块:本体构建、知识推理、质量评估。
7.1 本体构建
本体(ontology)是概念集合、概念框架,比如"人"、"事"、"物"这类抽象类别。
本体可以靠人工编辑手动构建,也可以用数据驱动的方式自动构建。人工方式工作量太大,而且很难找到合适的专家,所以现在主流的全局本体库产品基本都是从特定领域的现有本体出发,用自动构建技术一步步扩展出来的。
自动化的本体构建包含三个阶段:
- 实体并列关系相似度计算
- 实体上下位关系抽取
- 本体生成
举个例子。当知识图谱刚有了"阿里巴巴"、"腾讯"、"手机"这三个实体的时候,它觉得这几个东西没什么差别。但算完相似度之后,就能发现阿里巴巴和腾讯之间有更多相似之处,手机跟它们就差得比较远。
第一步的作用就在于此。但到这一步,知识图谱还是没有上下层的概念,它并不知道阿里巴巴和手机根本不隶属于一个类型,无法比较。所以第二步需要做实体上下位关系抽取,把这种概念层级补上。三步走完,图谱就能明白:阿里巴巴和腾讯都是"公司"这个实体下的细分实体,它们跟手机不是一类东西。
7.2 知识推理
本体构建完成之后,知识图谱的雏形就出来了。但这时候,图谱里大部分关系可能还是残缺的,缺失值很严重。接下来用知识推理技术来完成进一步的知识发现。
推理的基本逻辑是:如果A是B的配偶,B是C的主席,C坐落于D,那么可以推断A生活在D这个城市。根据这条规则,去图谱里找有没有别的路径满足这个条件,就能把AD两个实体关联起来。
再进一步想,串联链条里"B是C的主席"这一环,换成"B是C的CEO"、"B是C的COO",是不是也能作为推理策略之一?当然可以。
知识推理的对象也不限于实体间关系,实体的属性值、本体的概念层次关系都可以推。比如已知某实体的生日属性,可以推理得到年龄属性。已知(老虎,科,猫科)和(猫科,目,食肉目),可以推出(老虎,目,食肉目)。
这个方向的算法大致分三类:基于逻辑的推理、基于图的推理、基于深度学习的推理。
7.3 质量评估
质量评估是知识库构建的重要组成部分。它的作用是给知识的可信度做量化,把置信度较低的知识舍弃掉,从而保证知识库整体质量。
8. 知识更新
知识库的更新分为概念层的更新和数据层的更新。
概念层的更新是说,新增数据里出现了新的概念,需要自动把新概念加到概念层里。数据层的更新则是对实体、关系、属性值做新增或修改。数据层更新需要考虑数据源的可靠性、数据一致性、是否存在矛盾或冗余,然后选那些在多个数据源里出现频率高的事实和属性加入知识库。
知识图谱的内容更新有两种方式:
- 全面更新:拿更新后的全部数据做输入,从零开始重建知识图谱。这种方法思路简单,但资源消耗非常大,还需要大量人力维护系统。
- 增量更新:只拿新增数据做输入,向现有知识图谱中添加新知识。这种方式资源消耗小,但目前还是需要大量人工干预来定义规则,实施起来并不容易。
9. 总结
知识图谱既能把互联网信息表达成更接近人类认知世界的形式,也提供了一种更好的组织、管理和利用海量信息的方式。目前主流应用集中在智能语义搜索、移动个人助理(Siri)、深度问答系统(Watson),支撑这些场景的底层技术正是知识图谱。
在智能语义搜索里,用户发起查询时,搜索引擎会借助知识图谱对关键词做解析和推理,把关键词映射到图谱里的一个或一组概念上,再根据概念的层次结构,返回图形化的知识结构。这就是我们在谷歌和百度搜索结果里看到的知识卡片。
深度问答应用的逻辑也类似。系统先在知识图谱帮助下对用户用自然语言提出的问题进行语义分析和语法分析,转化成结构化查询语句,然后在知识图谱里找答案。比如用户问"如何判断是否感染了埃博拉病毒?",系统可能把它等价变换成"埃博拉病毒的症状有哪些?",再做推理变换,最终形成(埃博拉,症状,?)这样的三元组查询。如果知识库不够完善,推理解答失败,系统可以调用搜索引擎返回结果,同时用搜索结果更新知识库,给后续提问提前做准备。
常见问题(FAQ)
知识图谱的构建流程是什么?
知识图谱构建包括信息抽取、知识融合和知识加工三个环节。信息抽取从数据源提取实体、关系、属性;知识融合进行实体链接和知识合并,解决同名异义、同义异名问题;知识加工经过质量评估后加入知识库,整个过程循环迭代。
什么是实体链接?
实体链接是将文本中抽取的实体指称链接到知识库中正确实体的过程。流程包括:从文本中抽取实体指称,进行实体消歧和共指消解,最后将指称链接到正确实体对象,从而解决同名实体歧义和多个指称对应同一实体的问题。
知识图谱有哪些存储方式?为什么图数据库更常用?
知识图谱的存储方式有RDF规范格式和图数据库(如Neo4j)。图数据库通过节点和关系表示图结构,在复杂关联查询上效率极高,2度或3度关联查询比关系数据库快几千甚至几百万倍,因此更适合知识图谱的存储和查询。
版权与免责声明:本文仅用于信息分享与交流,不构成任何形式的法律、投资、医疗或其他专业建议,也不构成对任何结果的承诺或保证。
文中提及的商标、品牌、Logo、产品名称及相关图片/素材,其权利归各自合法权利人所有。本站内容可能基于公开资料整理,亦可能使用 AI 辅助生成或润色;我们尽力确保准确与合规,但不保证完整性、时效性与适用性,请读者自行甄别并以官方信息为准。
若本文内容或素材涉嫌侵权、隐私不当或存在错误,请相关权利人/当事人联系本站,我们将及时核实并采取删除、修正或下架等处理措施。也请勿在评论或联系信息中提交身份证号、手机号、住址等个人敏感信息。



