基于知识图谱的失效分析系统设计与应用
2022-11-16文辉于敬周明星
文辉 于敬 周明星
(达而观信息科技(上海)有限公司 上海市 200010)
1 引言
工业制造,如汽车、船舶、半导体、能源等是国家的基础产业,目前企业内部对待“人机料法环”数据的智能能管理程度不一,人员、设备等数据可能已经以结构化的形式很好的管理,工艺、流程、故障等数据更多是以非结构化的形式散落,缺少统一治理,进而无法发挥数据的价值。 现阶段的问题包括:
(1)缺少知识结构化:多源异构数据缺少管理,特别是对方法手册、故障报告等高价值文档缺少知识体系的治理;
(2)缺少知识关联:没有按照业务流程,将“人机料法环”等各个维度的数据进行关联,往往需要业务系统的互相打通,知识查询、共享和利用的效率低下。
现有的企业内部一般也建立了各种各样的质量体系和系统,如PLM(产品生命周期管理系统)、ERP(企业资源规划系统)、FMEA(潜在失效模式和影响分析)、FTA(故障树分析)等系统,但是这些系统都存在着数据孤岛、更新不及时、复用效率低等问题[1][2][3]。
因此本文参考知识图谱建模方法,提出和设计一种基于知识图谱的根因分析系统。知识图谱是一种面向知识点及其联系的建模方式,通过将业务的关注知识点通过知识网络进行关联,利用知识图谱擅长挖掘知识深度、知识关联的优势,提高根因分析、知识推荐、知识沉淀的效率。基于知识图谱的根系分析系统平台是利用机器学习、深度学习、自然语言理解等人工智能技术,为用户提供质量数据可视化展示、信息追溯、产品构成追溯、智能问答、基于质量控制的故障信息失效分析、知识库管理等功能的综合性平台。
2 失效知识图谱系统设计
基于知识图谱的失效分析系统主要由知识图谱构建平台和失效分析应用组成。知识图谱系统由知识图谱构建模块、知识图谱动态推理模块、知识推送模块、知识图谱动态更新模块、知识图谱信息推荐模块组成。知识图谱构建主要指基于结构化、半结构化和非结构化数据源构建知识图谱;知识图谱动态推理主要是指提供知识问答和推理的基础能力,如语义链接、语义理解,复杂问答能力等[4][5]。失效分析应用值得是失效根因分析、失效原因统计、知识推送和知识推荐等。失效分析知识图谱平台的业务功能视图1 所示。
图1:知识图谱平台业务流程图
2.1 数据建模
基于知识图谱的失效分析系统主要是针对企业内部的数据进行业务建模,在企业内部已有数据和外部标准等数据的基础上,建设失效知识图谱,关联人机料法环各个维度的数据[6][7][8]。使用的企业内部数据和外部数据分别如表1 所示。
表1:企业内部数据
相比内部数据,失效知识图谱还需要使用到企业外部的数据,包括各行业的国家国际标准、规范和法律法规,如国家对医疗产品的性能标准、对汽车产品的质量标准等。相关的行业规范和标准也是失效分析的重要标准。
失效分析知识图谱从“人机料法环”等角度,抽象相关概念,并对概念之间建立关联,达到知识结构化和知识关联。从知识图谱底层技术的角度,需要定义概念及其关系。表2和表3 分别为失效分析知识图谱的核心模式定义,包括概念类型定义和关系类型定义。
表2:失效分析知识图谱概念类型
表3:失效分析知识图谱关系类型定义
2.2 知识图谱构建系统架构
本系统从底向上依次可以划分为环境部署层、算法层、模型训练层、业务服务层、网关层和前端展示层。系统采用前后端分离的架构设计,使得业务流程、用户界面均可以较小的代价实现动态调整。系统后端则主要由各种微服服务构成,微服务架构具有良好的可扩展性,在增加业务功能时,只需要增加新的微服务节点资即可,此外微服务架构具有良好的容错性,可以保证系统对业务支撑的高度稳定性。
各种微服务主要是基于底层python 算法框架进行开发的,如numpy、gensim、tensorflow 等。系统底层依赖多种自然语言处理相关算法和相关算法库。前后端通过网关层进行通信,网关层负责将前端请求转发到API 接口[9]。
2.3 知识图谱构建系统数据流
系统可以通过结构化数据和非结构化数据构建知识图谱。对于结构化数据,首先会经过数据预处理服务的ETL进行预处理,然后用户根据所设计的图谱模式,进行可视化配置数据映射任务,将其提交到异步任务队列中执行转换处理,并将结果存储到图数据库中。对于非结构化数据(如word、pdf 文档),系统会将解析后的数据进行存储。此后,一方面可以经过标注的手段,获取模型的训练语料,再经过分词、Embedding 等一系列流程,进一步的训练信息抽取模型。另一方面,可以通过训练好的模型,自动的抽取出实体和关系,生成三元组数据,再将数据导入到图数据库图数据库中。如图2 所示。
图2:失效分析知识图谱构建数据流
(1)数据源对接和配置:系统支持多种多源异构的数据源对接,结构化数据源包括MySQL 等关系型数据库,excel 和csv 等表格文件,还包括Hive、Hbase 等大数据平台数据源。非结构化数据源包括上传txt、word、pdf 等非结构化文档或者富文本文档,非结构化文档支持以S3 协议的对象存储方式。
(2)ETL 处理平台:支持20 多个固定清洗算子,包括异常过滤、缺值填充、单位转换等,ETL平台支持自定义算法,包括以接口的形式对接达观已有的自然语言处理能力,如文本摘要、文本分类、文本审核等。ETL 平台支持以spark 任务提交大数据平台,通过spark 分布式集群快速对海量数据进行处理。
(3)结构化数据处理:包括对结构化数据基于spark 集群的全量离线处理,也支持基于Flink 流式框架的数据实时处理, Flink 流式处理框架,内置Flink SQL、Flink Table 数据处理组件,同时也可以在框架内置和自定义数据ETL 算子,常用的ETL 算子包括:缺值填充、异常过滤、编码映射、日期转化、单位转换、数据关联、范围检测、长度检测、格式检测等。
(4)非结构化数据处理:包括对多种富文本文档进行解析,同时以可视化的标注的方式对文档进行知识标注,包括实体、属性、关系、事件要素等标注,标注数据集支持作为模型训练的输入,也可以经过业务审核后导入知识图谱。失效分析知识图谱系统使用Bert+Bi‐LSTM+CRF 作为实体知识的抽取模型,使用CasRel 作为关系的默认抽取模型[5][6][7]。
(5)图谱构建:知识图谱构建模块支持Neo4J 等多种图数据库,上游模块将三元组统一写入Kafka,统一写入模块从Kafka 消费获取三元组数据,并保证将三元组数据写入Neo4J 图数据库和ElasticSearch 索引,特别之处的出,ElasticSearch 索引包括实体索引和关系索引,通过ElasticSearch 提供全文检索能力。
3 失效知识智能问答
智能问答系统利用语义分析技术理解保障人员对设备缺陷现象的描述或相关问题,包括识别问题中的实体和关系并利用语义检索技术将其和图谱中的实体链接起来;利用意图识别技术理解问题的意图,再利用实体和关系在知识图谱中的关联关系借助知识推理技术追寻问题的答案[2][10]。
3.1 智能问答架构
智能问答系统的整体基础框架如图所示,一共分为四个模块:数据预处理模块、问句分析、 知识检索 和答案生成四个部分。失效分析智能问答系统架构如图3 所示。
图3:失效分析智能问答系统架构
在构建失效知识图谱的基础上,将用户输入的自然语言问题进行间句分析,针对问句进行问句分类、实体链接、意图分析、 句法分析的工作。然后进行知识检索。知识检索过程中会使用到规则引擎对预定义的不同的规则进行相应的处理。规则引擎是用来针对不同的问句意图进行不同的答案返回设置。最后答案生成部分会结合问句类型。转换答案生成自然语言的答案。
3.2 实体和概念链接
实体链接(entity linking)就是将一段文本中的某些字符串映射到知识库中对应的实体上。为了解决垂直行业数据冷启动的问题,本系统设计一种结合精确链和模糊链接相结合的方式来提高实体链接的精度。
实体精确链接利用知识库中已有的知识点,将实体名称和可遍历枚举属性值集合构建字典树(即Trie 树),通过Trie 前缀树提取查询中的精确实体名称。通过对查询分词,以词作为基本粒度构建Trie 树,避免“中国平安”提取出 “国平”的情况。
实体模糊链接通过对查询进行名词短语(或者NER 实体)提取,将名词短语(或者NER 实体)对实体名索引中进行检索,通过判断名词短语(或者NER 实体)和检索的实体名的相似度判断是否召回。相似规则包括覆盖率、编辑距离等[10]。如表4 所示。
表4:模糊链接相似性判断规则
概念链接(schema 链接)通过将图谱schema 中的实体类型,属性名,关系类型构建Trie 树,提取查询中精确概念名称,同时支持同近义词设置概念的同义词,如(公司,企业)。
本系统使用最大区间匹配来避免链接部分链接的问题,即对于“外围血管支架“查询,即可以作为一个整体链接到产品”胆道外围血管支架“,同时其中的”支架“也可以链接到一个概念类型”支架“,在这种情况下,基于最大区间链接优先的原则,概念”支架“的链接会被忽略。
3.3 基于子图匹配的语义消岐
事实性问答大致分为两个阶段:其一为问题理解,即将问题转换为结构化查询;其二为查询评分,即对产生的结构化查询结果进行置信度评分。在问答系统中,重点是解决第一阶段中的歧义性问题:第一,短文本链接问题,即如何将自然语言问句中的短语链接到正确的实体/类/关系/属性上;第二,复合问题,即一个自然语言问题可能转换为多个知识图谱三元组,而这多个三元组如何组合,才正确表达了问题的意图,并由此得到正确答案[8][11]。
为了解决第一阶段的两个问题,基于子图匹配的方法,将解决歧义问题与查询评分这两个阶段融合在一起,即当得到自然语言问题的一个正确匹配的查询子图时,歧义问题也已经同时解决。具体算法流程如下:
输入:查询Query;
(1)对Query 提取候选实体和概念提及;
(2)对所有的提及计算笛卡尔积的组合,每个组合对应一个查询子图;
(3)对每一个查询子图
根据表5,计算r1、r2、r3、r4、r5 的命中次数
表5:语义关系组合
计算分数score=50*r1+40*r2+30*r3+20*r2+10*r1
(4)选择得分最高的子图作为查询子图
输出: 得分最好的查询子图
表5 为计算链接候选子图的语义相关性的组合列表及其描述,每一种语义关系组合的描述了该关系的模式定义和相关性打分,不同的语义组合重要程度也不同。
例如问句“苹果的高管”,在图谱中腾讯有可能表示公司实体,也可能表示水果实体。通过子图匹配问句的关键要素 可以知道需要匹配到以“高管”为关系的子图从而可以对苹果这一实体进行消歧。如图4 所示。
图4:基于子图匹配的语义消歧
4 基于子图紧密度的根因关联
失效根因归因即故障根本原因分析,通过输入失效模式、位置、现象等信息,通过智能问答引擎内置的语义分析引擎,可以将查询生成与之最匹配的子图,通过子图可以匹配到根本原因实体,如果子图链接不精准,支持对子图进行修改,子图越丰富,链接到的原因也就越精准。接下来讨论如何通过子图查询原因实体[12][13]。
本文提出一种基于子图紧密度的根因分析算法,通过紧密度排序,可以找出关联性最强的根本原因。基于紧密度的根因关联算法流程如下。
输入:问答引擎语义解析的链接子图,表示为实体的集合(v1,v2,……,vi,……,vn);
1)根据式1 计算链接子图中所有实体到达原因实体类型的最短路径;
2)执行1)步中的所有路径查询,获取所有的原因实体;
3)对每一个查询到的原因实体:
3.1 计算该原因实体到子图每个实体Vi 的最短路径;
3.2 根据式2 求和该原因实体到子图所有实体最短路径的总和作为紧密度;
4)根据紧密度得分对所有的原因实体进行排序,返回TOP N。
输出: 紧密度得分TOP N 的原因实体
链接子图实体Vi 到原因的最短路径的计算如式(1)所示:
其中Pi 表示最短路径,Clabel表示原因概念,route 表示模式中Vi 到Clabel的路径。
原因实体Cj 到链接子图的紧密度计算如式(2)所示下:
其中,Cj 表示原因实体,Vi 表示链接子图中的实体,n表示链接子图的实体数量。
根据系统返回的原因实体,可以动态的增加的子图要素,根据紧密度关联算法,其相关性越强的原因排序会更加靠前,也更加符合业务的效果目标。
5 总结
快速基于企业内部数据构建知识图谱,提供失效分析应用具有重大的价值,本文研发了一种基于知识图谱的失效分析系统,基于知识图谱对各种类型数据统一建模,建立专家库,辅助业务进行智能问答和失效分析,快速根据失效现象,快速定位故障原因。在系统框架内,支持结构化数据和非结构化数据的知识图谱构建方式,借助ETL 和Bert‐BILSTM‐CRF 算法、CasRel 等算法分别对结构化数据进行处理和知识抽取。基于知识图谱的语义问答和紧密度的根因关联可以快速定位故障的根本原因,同时辅助知识图谱的可解释性,提高失效分析效率,提高知识复用、沉淀、利用的效率。