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

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

一、知识图谱平台的目标

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

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

做过知识图谱的朋友都知道,知识图谱最大的价值,就是它的建模规范,正所谓无规矩不成方圆,要对外部的现实世界进行管理、应用,并发挥出潜在价值,那就必须要将外部世界的事物纳入到这个体系当中,这个体系规定了里面有哪些东西以及东西与东西之间的运行规则,这样一来,整个系统才能运转于一个可控的状态之中。因此,知识图谱平台也必定是一个这样一个”有序世界”的外部辅助工具,其提供了一个搭建”有序世界”的入口,细分起来就是”有序世界”的规则、参与”有序世界”规则的数据、数据在这”有序世界”的生产活动三个重要组成部分。
1、本体构建:”有序世界”规则的制定与管理。
这个规则就是我们常说的本体,本体界定了知识图谱中的概念(实体/事件类型)、概念属性(实体/事件的属性/要素)、概念与概念之间的关系(实体/事件的关系),以及概念属性关系的取值约束条件(单值、多值、有限区间)、数据库存储的数据类型(如” single_string”、” single_int”、” single_double”、” single_bool”)等信息,其中概念属性关系的取值约束条件是本体中容易忽视的一个点,这个东西在有效规避错误知识时大有裨益。因为饿,在当前虚假消息、虚假报道横飞的今天,有违常识的报道越来越多,而作为结构化知识抽取的重要来源,这些数据会直接造成错误的结果,如抽取出

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/。
欢迎对自然语言处理、知识图谱、事件图谱理论技术、技术实践等落地应用的朋友一同交流。

Original: https://blog.csdn.net/lhy2014/article/details/120395312
Author: 「已注销」
Title: 技术思考:也谈知识图谱平台中的数据流程与构建范式思考

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/556356/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球