笔者之前写过一篇文章《关于知识图谱标准化构建平台的思考:知识图谱只能做项目,不能做平台?》,地址:https://blog.csdn.net/lhy2014/article/details/119857488,从技术实现的难度上,对这一平台的实现发表了自己的看法,也突出了其中确实存在的一些现实难题。而即便如此,知识图谱平台,作为一个面向不同领域的标准化、可复用平台,是各大知识图谱公司、企业都在努力的方向。那么,作为一个标准化的知识图谱平台,其构成是怎样的,其数据流程与构建范式是按照一个怎样的流程进行的。带着这个问题,笔者根据自身的经验,展开思考。

一、知识图谱平台的目标

知识图谱平台的目标,最终是提供一个领域数据自适应的、可灵活配置、低成本可扩展可维护的知识系统、工具或服务,对客户不同来源的数据进行结构化整合、联通,发挥出知识的潜在价值。数据自适应,界定了该平台的可复用性,能够根据不同的业务数据提供标准化的处理流程,将差异化的环节压缩到最小;可灵活配置,规定了平台的易用性,即不需要很高的用户学习成本,用户群体可以是业务人员,也可以是代码能力不高的程度员,他们只需要根据自己的需求,通过系统规定的流程进行流程配置即可,小白客户也能轻松入门是最理想的状态;低成本可扩展可维护,是平台的另一个重要特征,即整个知识图谱构建不会是一次性(静态)的,而是会随着业务的扩展,数据情况的变化(数据的格式、数据的规模等)而不断发生改变,这样就要求系统在能够充分适应这种动态变化的同时,能够尽可能的保持稳定、维护成本较低,以此来适应复杂多变的业务场景。

二、知识图谱平台的主要功能

做过知识图谱的朋友都知道,知识图谱最大的价值,就是它的建模规范,正所谓无规矩不成方圆,要对外部的现实世界进行管理、应用,并发挥出潜在价值,那就必须要将外部世界的事物纳入到这个体系当中,这个体系规定了里面有哪些东西以及东西与东西之间的运行规则,这样一来,整个系统才能运转于一个可控的状态之中。因此,知识图谱平台也必定是一个这样一个“有序世界”的外部辅助工具,其提供了一个搭建“有序世界”的入口,细分起来就是“有序世界”的规则、参与“有序世界”规则的数据、数据在这“有序世界”的生产活动三个重要组成部分。
1、本体构建:“有序世界”规则的制定与管理。
这个规则就是我们常说的本体,本体界定了知识图谱中的概念(实体/事件类型)、概念属性(实体/事件的属性/要素)、概念与概念之间的关系(实体/事件的关系),以及概念属性关系的取值约束条件(单值、多值、有限区间)、数据库存储的数据类型(如“ single_string”、“ single_int”、“ single_double”、“ single_bool”)等信息,其中概念属性关系的取值约束条件是本体中容易忽视的一个点,这个东西在有效规避错误知识时大有裨益。因为饿,在当前虚假消息、虚假报道横飞的今天,有违常识的报道越来越多,而作为结构化知识抽取的重要来源,这些数据会直接造成错误的结果,如抽取出<张三,年纪,800岁>,<张三,性别,不知道>等三元组信息,这些在符合句子表达和语义表达规范时,规则和模型并不能将其判负。这时候,如果在定义约束条件时,能够事先将有限的取值条件进行约束,那么就可以作为先验知识抽取模型,不过,需要注意的是,这一工作是很大的,如果要保证有较高的覆盖度,那么所花费的精力是很多的。
当然,我们很显然地可以想到,这一“有序规则”的制定者肯定是对业务数据或者最终实现的业务功能有十分清晰的认识,平台很难给出具有引导性的意见(如果能够,那么可能又会引来一个更大的先验知识的大工程),相反的,其所能提供的是一个容易操作的界面,可以是图形化的,也可以是表格形式的,也可以是文件形式的,不同的形式会对应后台不同的解析逻辑。而在本体制作的同时,还需要进一步包括有本体信息的查看、存储、编辑(增、删、改、查)、导入、导出、版本控制、复制粘贴等能力,以保证整个本体的实时性、正确性以及可复用性。其中,复制应用这块十分关键,随着不同领域的积累,将其共有模块进行抽象和复用,也可以对接用户自己已经构建好的本体进行导入扩充(如当前已经有许多可以公开使用的本体,如freebase、yago、schema.org中的本体),能够使得整个速度越来越快。此外,关于本体的存储和导出,目前可以使用的格式有很多的可选项,如经典的protege,支持owl、json、ttl等不同格式,而这些格式最为重要的是要满足不同建模的需求,能够将实体关系、实体属性、实体关系、事件关系、事件要素等不同的任务场景所需的承载考虑进去。

2、数据映射-““有序世界”参与者的接入与管理

本体中界定了某个领域或者业务场景中数据所需要遵循的规范,那么接下来的工作就是将现实中的业务数据,装进这个规则之中。这个装进操作,包括数据的接入以及“非标转标”的标准化映射两个重要步骤。其中,数据的接入要求平台能够提供一个数据接入的操作入口,将用户需要进行整合的数据接入进来,如文件上传、数据库对接等,并根据数据的敏感程度进一步区分为是作为一个公有或私有的数据池存在,在数据接入后进行数据管理;“非标转标”即主要将非标准的实际数据转换为标准化的数据,由于这个规范是一个唯一的标准,在概念的取名、实体/事件关系的取名以及属性的取名上都是标准且唯一的,而在现实场景下的许多数据其表述都是多样的,因此需要进行非标转标,完成类型、关系、属性的标准映射(如将实际数据中的“生日”映射到本体中的“出生日期”,将实际数据中的“出生地”映射到本体中的“出生地点”)。

由于数据导入环节中的数据可能是异构的,可能是结构化的,也可能是非结构化的。因此,对于不同形态的数据,也就对应有不同的接入方式。对于结构化的,系统需要提供面向结构化数据的字段选择和映射操作,而对于非结构化的数据源,则需要先进行基于本体约束的结构化抽取,形成三元组,然后再进行结构化映射。基于结构化数据的映射,由于自身已经是结构化的,因此涉及到的抽取操作不过,更多的是工程以及产品上的操作,需要考虑产品交互上的易用性、数据的安全性和完备性。对于非结构化数据,其由于存在一个从非结构化到结构化的过程,因此,成为了整个环节中最为关键的部分,因为这个部分是产生数据误差、引入噪声最有可能的一步,抽取规则或者抽取模型性能如果选择不当或者性能达不到要求的话,后续步骤可能就无法走通。因此,从中我们可以看到,非结构化数据接入这个模块所体现出来的是一种具备门槛性的“非结构化抽取能力”,即常说的“实体识别、实体关系抽取、事件要素、事件关系抽取”能力。从具体实操上,包括抽取模型的设计、抽取模型的实施以及抽取模型的评测等几个方面。

做过实体识别、实体关系抽取或者事件抽取的朋友都知道,要实现一个完整可用的抽取系统,其是极具挑战的,在实际做的过程当中,也往往不会是一条道走到黑,在一棵树树上吊死,而是会遵循策略和模型两条道并举的方式,策略指的是词典、模板等启发式规则,这种方法一般都能够保证较高的准确率(如果模版很紧的话,准确率可以达到100%),但在召回率上是大打折扣的。而基于模型的方法如果在满足较高查全率的情况下,同时要求要有较高的准确率,那么对数据的复杂程度(如所需要识别的实体类型数量、实体关系数量的复杂程度)、标注数据的准确性(标注正确、尽可能的不出现错标、漏标等情况)、标注数据的规模(标注数据的数量规模,句子级标注、篇章级标注对应的不同数据规模)的要求就较高,因此基于模型的方法在实施上,就必然要求平台:
**1)可视化标注平台。**提供易用的可视化标注平台来满足实体标注、实体关系标注、事件标注、实体属性标注等多种标注任务,并尽可能地支持多人协同标注、以篇为维度的标注、以标注实体/关系/属性类型的标注等多种标注形式。当前开源可用的可视化标准平台较多,例如,中文文本标注工具Chinese-Annotator、IEPY、DeepDive (Mindtagger)、BRAT、SUTDAnnotator、Snorkel、Slate、Prodigy、doccano,其中BRAT是当前功能较为全面的一款标注工具,提供了事件标注、实体标注、关系标注等多个标注功能,doccano具有较好的使用体验,但不支持关系标注。不过,由于开源的标注工具在协同标注、标注任务协调与管理、标注任务的性能上考虑的不是特别周到,因此还是建议在可视化标注平台的构建上,能够基于已有的平台进行二次开发,或者自行根据财力、人力、物力的实际情况,开发高可用的平台。

**2)可视化抽取模板配置。*在模型的设计时候,尽可能的提供基于规则模板的配置平台,如提供用户词典导入、用户实体词输入的模块,后台的解析程序可以通过解析,并优先处理用户字典的方式对实体识别方法进行干预。规则模板的配置,则需要平台提供正则表达式的输入面板,用户可以通过键入?等通配符,围绕特定关系、属性或事件要素类型配置相应的抽取模版,如抽取“PERSON的?[老婆|妻子|媳妇|爱人|内人].{5}PERSON”这一规则可以用于抽取<人物,老婆,人物>三元组,除此之外,还可以进一步设计易用的可视化界面,进一步将一些同义词集合加入进来,如上述的“老婆”加载进来,以完成规则模板的扩充,以此来提高模板规则的覆盖度。可视化抽取模板配置是一个将用户经验规则自发引入的一个装置,在使用上会存在一定的使用和学习成本,对于一些不会编写程序的人员,对正则表达式的编写规则不了解的情况下,这个功能很难推广来用,因此这就要求平台能够进一步提供模板加载的功能,能够让业务人员在线下分配给程序开发人员,然后进行批量导入。但这又引来一个新的问题,即编写模板规则的标准问题,由于后台需要对加载的今来的模板进行解析,为了提高模板解析的成功率,需要平台设计人员提前将模板的样式设计好。此外,对于不同的抽取任务中,也有可能会重复使用同一套抽取规则的(如很多任务都会使用人物实体抽取规则),则要进一步增加对抽取规则模板的管理模块。

3)模型选择、训练与评估。 选用现有机器学习/深度学习模型是体现平台“智能化”的一个重要“卖点”,同时也是解决“规则”无法复用这一尴尬问题的根本方法。将深度学习模型应用于平台当中,其过程又可以进一步细分为数据的标注、模型的选择、模型的训练以及模型的评估等几个细分步骤。数据的标注可以根据可视化标注平台的产出作为输入,模型的选择可以通过列举、复现当前的一些较为经典和sota的模型集合,如实体识别的中flat、实体关系或者属性抽取中的MRC阅读理解方法等,因为对于同一份数据,不同的数据,可能会有不同的性能效果,因此平台应该尽可能地提供多个好的模型,这样后面可以通过模型集成ensemble的方式,共同决策出一个好的模型结果出来。不过,这又涉及到一个新的问题,即模型的参数调节问题,因为使用者大概率不会调参,因此需要系统平台能够学习的效果自行的评估,以完成参数更新(这显然是存在一定难度的)。紧接着,这个又涉及到一个评估的问题,平台需要提供模型评估的结果,通过数字化、图形化的方式,将训练集、测试集的数据量、评估指标(如常见的关于全局、分项的准确率、召回率,F1值)、模型预测的结果样本等进行展示,这样一来,用户可以根据评估后得到的效果来自行评估,如是否达到某个可以入库的精度域值,并将该结果来进一步回调模型。进一步的,如果这个反馈的流程运转起来的,那就会引来一个新的问题,即不同模型版本的管理和控制问题。平台可能需要将不同版本的模型进行保存,并且要保证模型的扩展性,例如,之前只做了8类实体的识别,现在要在这个基础上增加3个实体的识别任务时,是否是新建一个3类实体的识别模型,还是在原有的基础上再进行训练,不同的决定会直接决定不同的结果,如果采用后者,效果可能会降低,如果采用前者,推断的性能又会受影响。因此,这就需要平台设计一个较好的模型管理模式来解决这一问题。

3、知识治理-“有序世界”参与者的最后标准化
唯一性是保证知识标准化的必要前提,“有序世界”需要能够正常的运行,有序的管理,就必然要求其中的知识均处于在一个绝对标准化,无冲突的状态当中。因此,在完成本体设计、数据映射之后,“有序世界”参与者需要完成最后一道标准化的工作,才能入库,从而发挥出其真正效益。需要注意的是,由于这一块的工作在实现上具有较高的难度,当前的深度学习方法在此的表现并不好,所有纵观现在的许多知识图谱标准化构建平台,都是蜻蜓点水式的略过。从具体的功能上,知识治理包括实体名称、属性值、事件要素值的归一化以及实体的对齐融合两个重要步骤,其中还会涉及到知识质量评估、冲突检测与消解等实际难题。
**1)知识单元的归一化。**归一化是一个非标转标的过程,需要将同义不同表述的值归并到一个标准的名称中去,例如将不同的地点归一化道“xx省xx市xx县/区”这样的三级标准形式,将不同的时间标准化为“yy-mm-dd”的时间格式,将不同计量单位的数值归一化。由于这个环节所要求的准确率是相当高的,因此较为奏效的方式还基于规则方式去做,即提供可视化抽取模板配置的形式,让用户根据特定的实体、事件、属性,来定义出来的需要归一化的系列操作,如同义词替换,去除一些同义词,以及根据之前预定好的本体约束来进行值的二次修正等,平台自身也应该尽可能多地将一些通用的归一化模型进行内置,以此来增加归一化的覆盖度(一般来说,归一化的步骤不能求全,需要一步接着一步来做,步步为营,以保证绝对高的准确率),或者这个内置操作,其实依赖的是很多常识性的规则,如一个人要么是男人,要么是女人,不能是“人妖”和其他,人的寿命不会超过150岁,人的身高不会超过3米,等等,常识性规则的挖掘工作,可以作为这种预设规则的极大补充。
**2)实体的对齐融合。**对齐融合是对知识单元进行归一化后的一个重要步骤。归一化后,能够将不同的表述都映射成为一个标准化的表述当中,实体的对齐融合,则是将指称完全一样的实体进行合并,对齐融合结果就是整个数据量的减少(会产生一些重复性的数据,经过驱虫之后,整体的数量会下降),整张图谱的连通性更好(在对齐融合后,图谱的稀疏性会降低)。实际上,与归一化一样,实体的对齐与融合,需要尽可能保证绝对高的准确率,因此在实现上同样还是以规则配置为主。实体的对齐操作,其本质上是一个实体相似度计算或者二分类的问题,从实现上可以进一步分为实体的表示以及实体的相似度判定。实体的表示目前有trans系列等多种方法(DLGKE等框架可以即插即用,利用自身已有的数据快速训练出自己知识图谱的一个向量表示),南京大学提供了OPENEA,清华大学提供了EAkit等融合工具,但这些工具在真实效果上是很难用在工业场景的(在hit@1的准确率上不到0.6)。因此,为了保证准确率,平台还是需要尽可能地设计一些特定的融合逻辑,将两个实体为一个实体的对齐策略形式化出来,这样的好处在于具有较好的可用性和可扩展性。

**4、知识管理-“有序世界”参与者的存储与应用 **

在经过本体设计、数据映射、知识治理之后,整个平台中的数据按逻辑上来讲,应该是处于一个较为标准、准确的状态之中,这时候,平台需要完成的是对这些数据进行存储。存储上包括对本体的存储,也包括对具体知识数据的存储两个方面,也可以进一步细分为不同版本下的图谱存储和图谱管理两个子方面,图谱管理还包括对图谱的增删改查操作。就图谱存储而言,平台可以根据实际的数据规模,适当地选择时下稳定性较好的图数据库作为支撑,同时考虑图数据库的特性(是否支持分布式、是否支持高性能的吞吐、是否知识高性能的复杂查询【如最短路径查询、经典的图算法等】)。例如,当前的titan、neo4j、hugegraph、mongodb、RDF、neublarGraph等都是可以使用的技术选型。

另外,在知识的应用上,在当前,平台可以根据自身的业务需要,将与底层数据库交互的代码进行接口化,如将特定实体查询、特定实体关系查询等脚本通过封装接口的形式暴露给用户(如flask-resful api, grpc),用户只需要制定参数就可以完成相应的知识获取服务,这一点的价值在于能够将省去用户底层sql的编写问题,因为有些用户根本不会去写,也不想了解底层是怎样实现的。另一个功能,就是提供对底层数据的可视化操作,前者以接口服务的方式进行展示,用户可以根据获取到的数据进一步作为输入去做一些数据分析,或者技术人员用此再做推荐、推理等应用,但这个不太形象。因此,可视化的操作是需要的,比如做关联分析,两个实体之间的路径分析,这种演绎的动作就需要在可视化的界面上去做。但实际的经验告诉我们,虽然诸如neo4j等图数据库中已经自带了可视化平台,但其无法作为内嵌页集成到页面单中(除非做页面跳转),这个时候,就必须要要使用前端来实现这些交互功能。不过,需要注意的是,前端在实现这些功能时,会遇到多种问题,如节点太多,整个图谱会爆掉,整张图密密麻麻,体验也十分不好,而且目前已有的一些公开的插件,如d3js、gojs等,对于浏览器渲染的性能要求很高,内存配置低的平台,很有可能分分钟爆掉,而且实时延问题也是需要注意的一个点,如果一张图反复渲染,导致性能延迟,用户的体验也是很差的。因此,平台可视化这块,也是一个值得花大力气去展开做的一个点。

5、总结

本文围绕着《也谈知识图谱平台中的数据流程与构建范式思考》这一话题,从自己的落地经验出发,介绍了现行知识图谱平台中的一些现实问题。知识图谱平台的目标,是提供一个领域数据自适应的、可灵活配置、低成本可扩展可维护的知识系统、工具或服务,对客户不同来源的数据进行结构化整合、联通,才能发挥出知识的潜在价值。知识图谱最大的价值,就是它的建模规范,正所谓无规矩不成方圆,要对外部的现实世界进行管理、应用,并发挥出潜在价值,那就必须要将外部世界的事物纳入到这个体系当中,这个体系规定了里面有哪些东西以及东西与东西之间的运行规则,这样一来,整个系统才能运转于一个可控的状态之中。知识图谱平台,实际上是一个很复杂的东西,要做成一个真正可用的东西,难度是很大的,但较为落地的方式,还是选用准确率较高的选型方式,“重规则、轻模型”,规则更为可控,模型需要讲究集成,如何通过人机交互的方式,更好的将人工经验融入到整个平台系统中,进行灵活配置,是实现知识图谱平台通往可用之路的必要保证。

关于作者
刘焕勇,liuhuanyong,现任360人工智能研究院算法专家,前中科院软件所工程师,主要研究方向为知识图谱、事件图谱在实际业务中的落地应用。
得语言者得天下,得语言资源者,分得天下,得语言逻辑者,争得天下。
1、个人主页:https://liuhuanyong.github.io。
2、个人博客:https://blog.csdn.net/lhy2014/。
欢迎对自然语言处理、知识图谱、事件图谱理论技术、技术实践等落地应用的朋友一同交流。

技术思考:也谈知识图谱平台中的数据流程与构建范式思考相关推荐

  1. 3.知识图谱业务落地技术推荐之国内知识图谱平台汇总(竞品)[阿里、腾讯、华为等】

    知识图谱专栏简介:数据增强,智能标注,文本信息抽取(实体关系事件抽取).知识融合算法方案.知识推理.模型优化.模型压缩技术等

  2. 技术动态 | AIGC时代知识图谱技术的发展与最佳实践

    转载公众号 | DataFunTalk 2023年3月18日,DataFunSummit2023:知识图谱在线峰会将如约而至.本次峰会由2位主席与3位专家团成员和6位论坛出品人精心策划而成,共包含了: ...

  3. 知识图谱专栏简介:数据增强,智能标注,文本信息抽取(实体关系事件抽取)、知识融合算法方案、知识推理、模型优化、模型压缩技术等

    知识图谱专栏简介:数据增强,智能标注,文本信息抽取(实体关系事件抽取).知识融合算法方案.知识推理.模型优化.模型压缩技术等 专栏链接:NLP知识图谱相关技术业务落地方案和码源 NLP知识图谱相关技术 ...

  4. 肖仰华谈知识图谱:知识将比数据更重要,得知识者得天下

    肖仰华谈知识图谱:知识将比数据更重要,得知识者得天下 https://mp.weixin.qq.com/s?__biz=MzI0ODcxODk5OA==&mid=2247498869& ...

  5. 思考总结:领域知识图谱平台构建与业务应用

    思考总结:领域知识图谱平台构建与业务应用 不得不说,由于懒,再夹杂着其他事情,已经很久没有更新了,现在带着这段时间的应用.思考和总结来了,后面会尽可能常更新.常输出,感谢大家未取关之恩. 图谱平台简要 ...

  6. 中国人民大学张静:知识图谱融合中歧义性与异质性问题的讨论

    ⬆⬆⬆ 点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 2020 年 9 月 25 日,在由中国科协主办,清华大学计算机科学与技术系.AI TIME 论道承办的<2020 中国科 ...

  7. 技术实践:大规模知识图谱预训练及电商应用

    本文作者: 张文(浙江大学).黄志文(阿里巴巴).叶橄强(浙江大学).文博(浙江大学).张伟(阿里巴巴),陈华钧*(浙江大学) 接收会议: ICDE 2021 1. 文章导读 本文介绍了浙江大学阿里巴 ...

  8. 技术实践 | ICDE2021-大规模知识图谱预训练及电商应用

    本文作者 | 张文(浙江大学).黄志文(阿里巴巴).叶橄强(浙江大学).文博(浙江大学).张伟(阿里巴巴),陈华钧*(浙江大学) 接收会议 | ICDE2021 转载公众号 | ZJUKG (欢迎转载 ...

  9. 中科大脑知识图谱平台建设及业务实践

    本文首发于 Nebula Graph Community 公众号 "为了支持城市复杂场景下各类需求,中科大脑知识图谱团队设计开发了一套包含本体可视化设计.数据映射.数据抽取.数据写入.图数据 ...

最新文章

  1. 财务需要学python-财务方面的学生如何学习python?
  2. SSL介绍与Java实例
  3. mysql初始化root 密码是多少_Mysql初始化root密码和允许远程访问
  4. 【机器视觉】 global算子
  5. 超棒的30款JS类库和工具
  6. (秒杀项目) 4.10 项目面试项目常见问题
  7. xposed hook 静态函数_Xposed 实现原理分析
  8. 《xxx重大需求征集系统的》可用性和可修改性战术分析
  9. 专业显卡测试软件 spec,AMD Radeon Pro WX8200专业图形显卡评测 对比Quadro P5000
  10. 【量子机器学习】HHL算法: Quantum algorithm for solving linear systems of equations
  11. 动画云渲染【渲染101】渲染小提示
  12. 随机森林(Random Forest)
  13. 噪声dba是什么单位_请问:dBA是什么意思?和dB,dBm之类有什么关系?主要用... - 射频微波研发讨论区 - 52RD研发论坛...
  14. .NET Core 2.0生成图片验证码
  15. 西电计科微机原理期末复习笔记
  16. 【ELM回归预测】基于非洲秃鹫算法优化极限学习机预测附matlab代码
  17. 本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps。
  18. 卫星通信2卫星的定位
  19. html5 视频录制上传视频,怎么上传视频(手把手教你怎么在今日头条录制及上传视频)...
  20. Android 零基础学习之路

热门文章

  1. 拆解镍氢电池充电器,简单的电路设计令人震惊!
  2. Modbus协议概念最详细介绍
  3. DebugOutputString 使用
  4. linux 查看磁盘分区,文件系统,使用情况的命令和相关工具介绍,Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍...
  5. 和后台如何对接_业务系统如何对接第三方服务?
  6. 【Pytorch神经网络基础理论篇】 04 线性代数
  7. LeetCode 2096. 从二叉树一个节点到另一个节点每一步的方向(最小公共祖先)
  8. 天池 在线编程 矩阵还原(前缀和)
  9. 天池 在线编程 旅行计划(暴力回溯)
  10. python2d 平滑插值处理_python中平滑的、通用的2D线性插值