知识图谱的演进与基于 OpenSPG+TuGraph 的推理实践

2024-04-11 20:28

本文主要是介绍知识图谱的演进与基于 OpenSPG+TuGraph 的推理实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文为蚂蚁集团开发工程师王少飞在TuGraph Meetup北京站的演讲,主要介绍了蚂蚁知识图谱平台经过多年金融领域业务沉淀的知识语义增强可编程框架SPG,及TuGraph作为执行引擎在图谱推理过程的作用。

作者介绍: 王少飞,蚂蚁知识图谱推理开发工程师,作为核心开发者从0到1参与了推理引擎的建设,目前负责OpenSPG-Reasoner模块的开源和维护。

🌟OpenSPG GitHub,欢迎大家 Star 关注~:
https://github.com/OpenSPG/openspg

知识图谱发展阶段与趋势

图片

知识图谱作为结构化语义知识库,用来描述和建模现实世界中各物及其之间的复杂关系。其发展历程可概括为三个阶段:通用知识图谱阶段、领域知识图谱阶段及与大模型结合阶段。

  • 通用知识图谱阶段:此阶段以从开放数据集中抽取SPG(Subject-Predicate-Object)三元组构建静态知识库为主,旨在提升搜索推荐精准度与用户体验;
  • 领域知识图谱阶段:知识获取方式从开放支持域到封闭支持域为主,融合专家经验规则,旨在挖掘专业领域内稀缺知识,主要用于如风控、信贷等场景;
  • 企业级知识管理:当前阶段与大模型相结合,知识图谱目标变成关注知识标准化、跨域数据互联与复用等问题。

图片

从静态常识到 Deep Context:随着阶段演进,仅在推理过程中加入文本信息,概念,或加入交易或社交等实体间关系,其推理效果并无显著效果。转而强调实体多要素信息的深度协同,以揭示稀疏实体间隐含的语义关联,实现语义可解释的稠密化。

SPG语义增强

任何复杂技术的大规模产业化应用都需要统一的技术框架,以屏蔽复杂的技术细节以实现跨场景迁移性支持新业务的快速部署。蚂蚁知识图谱团队通过多年业务实践的总结,提出了新一代知识语义框架SPG并开源,充分借力LPG的结构性与RDF的语义性实现可编程范式的知识引擎架构,支持各领域图谱的高效构建和跨领域的知识语义对齐。

SPG知识图谱其主体模型的语义增强与业界主流方式存在差异,主要体现在以下方面:

  • 知识定义:将知识分为实体、概念和事件三类。实体为与业务紧密相关的客观实例,可通过属性描述与画像刻画(如用户、企业);概念为从具体到一般的抽象,描述一组实体集合,具有相对静态与较强的泛化性;事件则为附有时空约束的实体类型,例如行业事件、企业事件、诊疗事件等。

图片

  • 语义增强示意:对传统属性图进行改造,将实体的简单文本属性通过语义增强。例如,将shop的province、city等通识属性链指到具体的概念上,并建立上下级关系;将邮箱及其具体格式进行标准化处理,转化为标准实体,实现对实体属性的深度理解与有效关联。

图片

SPG能力进化与升级

SPG能力的进化与分级共包括五个阶段,其能力逐渐增强并且逐步进行兼容:

  • 兼容模式:目标是实现大数据体系下结构化与非结构化数据能够快速建立简单属性图,以及能够使用图推理能力;
  • 领域模型约束:加入更多schema约束,对普通属性进行抽象,将其抽象成一些概念或者标准的实体,此时这些主体属性不再是一个简单的属性,而是链指到一些具体的概念上;
  • 数据到知识的迭代演化:随着不断迭代,通过加入更多链指以及融合算子,来强化主体唯一性,发现主体间更丰富的语义关联。例如,知识图谱中已经存在的商店,和另一个域下有口碑描述或抽象出来的商店,可能为同一个店铺。为了消除同一实体的不一致性,通过加入内置的融合算子(fuseOp),将它融合成一个实体;
  • 谓词语义及逻辑符号:对于谓词的抽象,例如preferences在传统的属性图里就是一个简单的属性,我们把这个属性抽象成类目的概念,类目下可能有成都火锅,为此链指一条边,用户user到Category类目下可能也有一条边,于是通过链指的方式,就可以做更多的模糊推理或推荐。
  • 符号语句化阶段:定义谓词之间的关系,例如可以定义两个谓词间的互反和互斥的关系,通过符号化的表示来定义逻辑的规则,从而进行推理。

图片

利用TuGraph赋能SPG图谱推理

如何在知识图谱推理中使用 TuGraph 能力?首先在知识推理中,利用OpenSPG逻辑规则执行引擎,其大致可以分为三部分:

  • 最上层为用户的输入,用户可以通过我们自定义的符号KGDSL来输入,同时也接受ISO接口标准输入;
  • 中间层是我们的解析编译与优化过程,可以通过Lube将它解析优化成最终执行计划。右边catalog是在编译过程中或解析过程中对一些谓词,事件概念,大模型进行管理;
  • 最下层Adapter,可以去对接TuGraph-Analytics,或者是TuGraph-db。

图片

在图谱推理中,主要分为在线分析处理(OLAP)与离线场景的应用:

  • OLAP场景:在OLAP场景中,由TuGraph来提供类似于Cypher查询语言。首先用户通过Schema建模后,将想要的数据导入TuGraph-db中,之后用户每一个query进来后都有推理引擎来执行编译与优化,生成ISO-GQL语言,最终通过与TuGraph-db通信完成查询或完成修改目标。

图片

  • 离线场景:在离线场景下,利用TuGraph提供的计算编程框架,用户可嵌入自定义算子来实现支持SPG能力。整个流程需要用户新建离线任务,经规则解析器解析生成执行计划,并对每一个执行计划进行对应OP操作。根据adapter的不同,生成基于 TuGraph 每一个OP的实现。编译打包为插件提交至TuGraph-Analytics-Engine运行,最终获得逐步推理结果。左侧就是我们所提供的所有OP的列表。最终我们用到TuGraph-Analytics的一些能力,其实就是一些节点管理的能力,数据管理的能力和数据计算的能力。

图片

SPG知识图谱语义框架以其独特的语义增强方法与能力进化机制,结合 TuGraph平台的强大功能,为知识图谱的构建、推理与应用提供了有力支撑,适应了现代知识图谱技术的发展趋势与应用场景需求。

关注我们

查看官网: spg.openkg.cn/

Github: github.com/OpenSPG/ope…

SPG 知识图谱 平台致力于分享 SPG 及 SPG + LLM 双驱架构及应用相关进展,欢迎大家扫码关注~

这篇关于知识图谱的演进与基于 OpenSPG+TuGraph 的推理实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/895096

相关文章

Spring WebFlux 与 WebClient 使用指南及最佳实践

《SpringWebFlux与WebClient使用指南及最佳实践》WebClient是SpringWebFlux模块提供的非阻塞、响应式HTTP客户端,基于ProjectReactor实现,... 目录Spring WebFlux 与 WebClient 使用指南1. WebClient 概述2. 核心依

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

MySQL 用户创建与授权最佳实践

《MySQL用户创建与授权最佳实践》在MySQL中,用户管理和权限控制是数据库安全的重要组成部分,下面详细介绍如何在MySQL中创建用户并授予适当的权限,感兴趣的朋友跟随小编一起看看吧... 目录mysql 用户创建与授权详解一、MySQL用户管理基础1. 用户账户组成2. 查看现有用户二、创建用户1. 基

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

springboot项目中整合高德地图的实践

《springboot项目中整合高德地图的实践》:本文主要介绍springboot项目中整合高德地图的实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一:高德开放平台的使用二:创建数据库(我是用的是mysql)三:Springboot所需的依赖(根据你的需求再