转载公众号 | 语义增强可编程图谱框架
文章作者 | 周研(创邻科技)
关键词 | 知识图谱、语义框架
0 1
知识图谱应用:从理论到落地的全景视角
0 2
知识图谱应用的挑战:实践落地过程中的核心难题
2.1 静态的数据和动态的业务需求
选择图模式(Schema):弱类型与强类型的权衡
选择弱类型/弱Schema约束的图数据库可以赋予业务人员极大的灵活性,在数据查询和分析上能够快速上手。然而,随着数据量的逐渐膨胀和业务需求的复杂化,这种架构缺乏明确的规范和结构、容易带来数据不一致问题和数据质量问题,将导致后续的数据维护和性能优化面临巨大困境。因此,在生产环境中,我们会推荐使用强类型/强Schema约束,以确保长期的可维护性和查询性能。
复用基础图谱:一图多用的挑战
以企业股权穿透图谱为例,初步构建的图谱通常包含企业投资企业、个人投资企业等数据,可供业务人员探索实际控制关系、集团关系等企业关系的查询和推理。在引入交易数据后,业务人员可以从更多维度探索图谱,譬如挖掘企业间的关联交易关系。但此时如何高效地复用先前的基础图谱就会成为一个问题。若通过调用的方式复用原图谱,新业务对原图谱的修改将影响原业务的稳定;若将两个图谱融合形成完整的企业交易图谱,则如何保证两个图谱的企业数据更新的一致性又是新的挑战。
数据一致性:逻辑依赖导致的连锁反应
当底层数据发生变化,上层业务推理衍生出的关系或特征也必然要重新计算。仍以企业股权穿透图谱为例,企业实控人是由股权关系和规则计算推理出来的,若传导链路中的企业股权数据发生变化,那么整个连通图范围内的企业实控人都将重新计算。在大量数据更新时,进行这样全图的级联计算是相当耗费系统资源的。因此,如何确保数据一致性,同时减少系统压力,是我们需要持续解决的难题。
子图处理:标准化与实体对齐
子图处理是业务实践中一个普遍存在的问题。比如,在反欺诈、反洗钱等业务中,业务人员需要对一定范围内的子图进行详细分析,而子图的定义方式和在子图内进行筛选、剪枝等操作的方式并无统一标准。同样,涉及多个图的子图在融合时往往会产生歧义,导致数据无法有效对齐。
持续膨胀的Schema与数据
2.2 易用性与表达力的双重挑战
查询语言的学习门槛与推理能力
虽然Cypher/GQL等图查询语言相对直观,但要求业务人员具有将复杂推理逻辑转换为具体图查询的能力,这对非技术人员来说并不容易。
业务逻辑开发人员需要兼具查询性能优化的能力
通常情况下,查询语言的不同写法会导致生成不同的执行计划,从而影响查询性能。在一些对性能要求较高的场景中,开发人员需要通过自定义函数或过程的方式实现高效的查询。在开发过程中,需要深入了解业务逻辑、图Schema、推理过程,才能对查询进行优化,这无疑增加了项目落地的复杂性和时间成本。
初始图模式(Schema)的定义至关重要,否则后续修改的代价很高
图模式的选择会极大的影响产品性能和易用性,因此对数据分析师也有较高的要求。图模式是在知识图谱应用开发的早期就需要确定的,它会影响后续所有查询的写法以及性能。
对“事件”这样随时间演化的数据缺少标准处理机制
现有的属性图系统缺乏对“事件”这一动态数据类型的标准处理机制。一般情况下,我们会通过在点边上增加时间戳类型的属性来表示事件,但对事件在时间维度下怎样进行演化和关联缺乏标准的分析处理机制。这往往导致事件传导推理结论的可解释性不够直观,且不同系统的实现方式千差万别,缺乏统一管理的接口。在数据分析时如果涉及到数据过期、需要对数据进行时间切片等情况时,会进一步加大事件处理的复杂度。
总体而言,我们都希望产品具备高度的易用性和强大的表达能力,但这两者往往难以兼得。实现这一平衡,便是知识图谱应用落地过程中需要持续攻克的难题。
0 3
语义增强可编程知识图谱SPG:解决知识图谱应用落地难题的新篇章
SPG-Schema:提供了包括主体、谓词、逻辑在内的核心语义管理功能。
SPG-Controller:这一模块负责任务分发、服务部署、数据转换、算子编译以及知识查询等多重任务。
SPG-Engine:负责Schema转换、知识写入和推理计算,同时还支持多引擎适配。
SPG-Program:一个高度可编程的SDK框架,让开发变得更为便捷。
SPG-Interface:一个基于大语言模型的用户交互界面,使得操作更为直观和友好。
这五大模块共同构成了一个高度分层、模块化且解耦合良好的系统,使得团队成员可以更加专注于自己擅长的领域。SPG的设计考虑到了不同专业背景的团队成员,实现了业务与技术之间的高效协作。业务人员只需使用具有语义推理能力的SPG语法,便可轻松完成图谱推理。与此同时,编程开发人员无需深入了解复杂的业务逻辑,只需专注于图查询和图计算的性能优化。通过实现对应的接口,他们便可以高效地应对各种实际应用场景。
0 4
深入了解SPG引擎层:实现智能推理与计算的核心
与蚂蚁集团合作,创邻科技承担了引领SPG-Engine模块设计和规范制定的重任。SPG-Engine层不仅是SPG理论到实际应用的关键转换点,更是连接SPG与第三方属性图系统(简称为LPG,Labeled Property Graph)的桥梁。这一层主要由三大子模块组成:SPG2LPG Translator、SPG2LPG Builder和SPG2LPG Executor。其详细的模块架构如下图所示:
SPG2LPG Translator:负责SPG与属性图之间Schema的转换。考虑到SPG Schema涉及到丰富的语义表达,譬如概念类型、标准属性和事件对象,以及subClassOf这样的语义关系,这些在属性图Schema中都没有显式的表达,从而需要进行精细的映射和转换。 SPG2LPG Builder:负责知识的格式转化。由于业务层的知识数据是按照SPG Schema进行组织的,因此在导入到属性图系统之前需要将这些数据转换为属性图兼容的格式,以实现知识的写入和更新。 SPG2LPG Executor:负责查询和计算的核心模块,它主要执行来自SPG-Controller的、基于RDG(Resilient Distributed Graph,弹性分布式图,借鉴了弹性分布式数据集RDD的定义)算子构成的执行计划,以实现复杂的推理和计算过程。
综上所述,SPG引擎层是一个多功能、高效且灵活的模块,不仅负责SPG系统和属性图系统之间的衔接转换,还具备与多种第三方属性图系统的高度互操作性,为复杂的知识图谱应用提供了坚实的基础。
0 5
映照未来的SPG技术蓝图
OpenKG
OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。
点击阅读原文,进入 OpenKG 网站。
内容中包含的图片若涉及版权问题,请及时与我们联系删除
评论
沙发等你来抢