知识图谱与认知智能:基本原理、关键技术、应用场景与解决方案
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.1.2 知识图谱构建系统的整体架构

围绕上述知识图谱构建流程,图4-3展示了知识图谱构建系统的整体架构。知识图谱构建系统包括知识体系获取、知识抽取、知识融合及数据中心服务等模块。当进行知识图谱的构建时,首先需要与知识管理图谱系统的Schema管理模块通信,获取所需建设知识图谱的知识体系,然后在此基础上搜索、筛选结构化的数据库表或者非结构化的文档启动知识抽取任务,建立结构化数据和非结构化数据的对接、清洗、抽取流水线。

图4-3

结构化的知识图谱构建流水线,需要与企业数据中台的Hive、Spark、HBase、Kudu等大数据计算套件的数据接口对齐,根据知识体系与数据库Schema搜索构建知识图谱所需的数据库表。基于数据库表,结构化知识图谱构建流水线需要开发数据清洗、表结构处理、字段映射开发任务脚本,与企业数据中台通信,以对数据进行操作。在这一过程中可以参考传统的D2RQ、Morph-RDB、OnTop等本体数据库访问OBDA(Ontology Based Database Access)工具的逻辑,根据业务需求、表结构基于企业大数据组件进行二次开发。结构化的知识图谱构建流水线需要根据知识体系定义,实现多表数据表关联、实体关联、属性关联的聚合,这在企业级实践中是一项定制程度相当高的工作。同时,并不是所有数据都适合直接以三元组的形式存储。比如用户高频率的点击、浏览、LBS数据,设备高频率的电流、电压量测数据等,如果将这些数据以三元组的结构直接转化为知识图谱,那么不仅存储、计算的成本高昂,业务应用的效率也让人难以接受。因此在业务实践中,需要根据业务应用的需求合理筛选并抽取转化的范围。比如,将表关联、表逻辑关联、抽象概念转化为知识图谱,将表高频变化的属性值存储于高性能的Redis、InfluxDB等中。由此,企业可以建设知识图谱与传统数据仓库融合的数据存储体系,提升业务效率并降低成本。

非结构化的知识图谱构建流水线,在整体上与结构化的知识图谱构建流水线相似,需要从企业数据库、对象存储中获得文本、图像等非结构化数据,非结构化数据也包含非常丰富的知识信息。相比结构化数据,非结构化数据可承载的知识更多、灵活性更强,却也加大了知识抽取的难度,需要投入更多的资源去提升知识的及时性和准确率。非结构化数据需要通过企业AI中台,或者独立建设知识抽取训练与预测服务框架,进行实体、关系、属性等知识抽取的模型训练与生产工作。在训练阶段,需要在样本标注的基础上,对知识抽取的模型进行模型训练和参数调优;在生产阶段,需要由非结构化知识构建流水线调取知识抽取模型预测服务,对非结构化数据进行抽取工作。经过非结构化知识抽取的结果数据,还需要经过数据清洗、字段映射后才能生成三元组,提供给下游的知识融合模块使用。

经过多条知识图谱构建流水线清洗、映射、抽取形成的知识图谱三元组,下一步需要进入知识融合模块。

在知识融合模块,企业需要建设知识融合工具,对分散、歧义的知识图谱三元组进行实体链接、属性链接、属性消歧等相关工作。为了提高知识融合的准确率,知识融合模型通常需要基于知识来源、知识上下文等多方数据,对实体、属性关联进行推断。由此,知识图谱构建流水线不仅需要为知识融合工具输入三元组,还需要输入数据源的表结构、字典关联、数据任务等相关信息。

经过知识融合后形成的知识图谱的三元组,还需要进行知识图谱质量校验,才可以进入知识图谱入库环节。知识质量校验通常包括人工、半自动及自动的方法。在知识容错率较低的医疗、设备生产与运维场景中,业务专家的人工校验是极为重要的。当然,在业务实践中可以开发规则筛选、搜索匹配等工具,辅助专家进行半自动审核。对于用户营销、服务等知识容错率相对较高的场景,可以构建A/B测试、样本抽样、质量预测模型等自动质量校验工具,提升质量校验效率。知识图谱构建任务是涉及多个数据源、多个数据系统的数据生产任务,在复杂的业务环境中,数据生产任务可能出现延时、失败、计算错误等异常。因此,知识图谱构建系统在构建的不同阶段,不仅需要进行数据质量校验,还需要进行数据容灾和备份,以保障后续知识图谱服务的稳定。知识图谱数据的质量和稳定是知识图谱服务项目的生命线,在业务实践中务必重视

知识更新是知识图谱构建流水线的重要模块。在动态的企业业务中,知识图谱的实体、关系、属性都可能因业务状态的演变而改变:

• 在实体变动方面,业务可能因为营销活动而使用户、商品、订单等实体发生新增、更新、取消等改变;

• 在关系变动方面,用户社交人际关系、用户商品互动关系、企业投资关系等可能因产品更新、市场环境演变而改变;

• 在属性变动方面,企业产品上报的用户实体状态的点击、浏览等数据,可能因需求变化而变更统计口径、定义标准,因此用户画像知识图谱的属性可能会发生口径、尺度、字段数等改变。

知识更新模块需要实现数据监听、数据下载、任务启动等相关功能。知识图谱开发人员需要根据业务状态的改变,通过知识更新模块对知识图谱构建的流水线进行启动、停止、任务参数变更等操作。