使用LLM在KG上进行复杂的逻辑推理10.12

news2024/10/6 6:00:45

使用LLM在KG上进行复杂的逻辑推理

  • 摘要
  • 介绍
  • 相关工作

在这里插入图片描述

摘要

在知识图谱上进行推理是一项具有挑战性的任务,这需要深度理解实体之间复杂的关系和它们关系的逻辑。而当前的方法通常依赖于学习 几何形状 以将实体嵌入到向量空间中进行逻辑查询操作,但在复杂查询和特定数据集表示方面表现不佳。

几何形状通常指的是将实体或关系映射到向量空间时所使用的几何结构或形状。几何形状嵌入方法通过学习实体和关系之间的几何关系,将它们映射到向量空间中的几何形状。这些几何形状可以是点、线、曲线等,它们在向量空间中的位置和距离可以反映实体和关系在知识图谱中的语义关系。

本文提出了一种新的 解耦(decoupled) 方法,即LARK,将复杂的KG推理定义为上下文KG搜索和逻辑查询推理的组合,以利用 图抽取算法(Graph extraction algorithms) 和大型语言模型(LLM)的优势。

“解耦方法”(Decoupling Method)通常指的是将复杂系统或问题分解为更简单、相互独立的组件或子问题的方法。
"Graph extraction algorithms"图抽取算法
用于从非结构化的文本数据中提取出图结构信息。这些算法将文本中的实体、关系和属性识别出来,并将它们表示为图的形式,其中实体作为节点,关系作为边连接节点。
Graph extraction算法的目标是将文本数据转化为结构化的图数据,以便进行图分析、图挖掘和知识图谱构建等任务。

实验证明,所提出的方法在多个逻辑查询构造上优于现有的KG推理方法,并在更复杂的查询中取得了显著的性能提升。此外,该方法的性能与底层LLM的规模增加成正比,从而使得最新的LLM在逻辑推理上能够得到整合。该方法为解决复杂KG推理的挑战提供了新的方向,并为未来在这一领域的研究铺平了道路。

介绍

知识图谱(KG)使用灵活的三元组模式来编码知识,其中两个实体节点通过关系边连接。然而,一些现实世界中的知识图谱,如Freebase、Yago和NELL等,通常是大规模的、噪声干扰和不完整的。因此,在这样的知识图谱上进行推理是人工智能研究中的一个基本且具有挑战性的问题。

逻辑推理的总体目标是利用存在量词(∃)、合取(∧)、析取(∨)和否定(¬)等一阶逻辑(FOL)查询的运算符,为知识图谱上的FOL查询开发回答机制。为了有效地捕捉知识图谱实体的语义位置和逻辑覆盖范围,当前研究主要集中在创建多样的潜在空间几何结构上,例如向量、盒子、双曲面和概率分布等。
尽管这些方法取得了成功,但它们在性能上存在以下限制:

  1. 复杂查询: 它们依赖于对 FOL查询 的限制形式,这导致丢失需要链式推理和涉及知识图谱中多个实体之间多个关系的复杂查询的信息;
  2. 泛化能力: 针对特定知识图谱的优化可能无法推广到其他知识图谱,这限制了这些方法在真实场景中的适用性,因为知识图谱在结构和内容上可以有很大的变化;
  3. 可扩展性: 繁重的训练时间限制了这些方法在更大的知识图谱上的可扩展性和将新数据纳入现有知识图谱的能力。

FOL查询是指一阶逻辑(First-Order Logic)中的查询操作。一阶逻辑是一种形式化的逻辑系统,用于描述和推理关于对象、关系和性质的命题。
在一阶逻辑中,FOL查询是对知识库或知识图谱中的事实和关系进行询问的方式。FOL查询使用一阶逻辑的语法和语义规则,结合存在量词 (∃)、合取 (∧)、析取 (∨) 和否定 (¬) 等逻辑运算符,以及变量和常量,来构造查询语句。查询语句由一个或多个谓词(表示关系)和变量组成,用于询问知识库中是否存在满足某些条件的事实或关系。
例如,假设有一个知识库包含关于人员的信息,其中包括实体 “John” 和 “Mary”,以及关系 “父亲” 和 “母亲”。我们可以构建一个FOL查询,如 “∃x 父亲(x, John)”,它询问是否存在一个实体 x,使得 x 是 John 的父亲。查询的回答可能是 “是” 或 “否”,表示是否存在满足查询条件的事实。

为了解决这些限制,本文旨在利用大型语言模型(LLM)的推理能力,在一种名为Language-guided Abstract Reasoning over Knowledge graphs(LARK)的新框架中进行推理,如图1所示。
在这里插入图片描述
在LARK中,利用逻辑查询在知识图谱上搜索相关的子图上下文,并使用逻辑分解的LLM提示进行链式推理。

为了实现这一目标,首先从输入查询和知识图谱中抽象出逻辑信息。由于逻辑的不变性,这使得我们的方法可以专注于逻辑形式化,避免模型的产生幻觉,并在不同的知识图谱上进行泛化。从这个抽象的知识图谱中,使用逻辑查询中存在的实体和关系提取相关的子图。这些子图作为上下文提示输入到LLMs中。在下一个阶段,需要有效处理复杂的推理查询。根据之前的研究,发现与一系列简单提示相比,LLMs在处理复杂提示时效果显著较差。因此,为了简化查询,利用它们的逻辑性质,将多操作查询确定性地分解为逻辑顺序的基本查询(从图1b到图1c的转换中所示)。然后,将这些分解的逻辑查询转换为提示,并通过LLM进行处理,生成最终的答案集(图1d所示)。逻辑查询按顺序处理,如果查询y依赖于查询x,则x在y之前调度。操作按逻辑顺序进行调度,以便将不同的逻辑查询进行批处理,并将答案存储在缓存中以便于访问。

逻辑分解是将复杂的多操作查询分解为一系列逻辑顺序的基本查询的过程。每个基本查询只包含一个操作,例如投影、交集、并集或否定。

本文提出的方法有效地将逻辑推理与知识图谱的能力与LLM的能力相结合,这是首次尝试。与先前依赖受限的一阶逻辑(FOL)查询形式的方法不同,该方法利用逻辑分解的LLM提示,实现了对从知识图谱中检索到的子图的链式推理,从而能够高效地利用LLM的推理能力。知识图谱搜索模型受到 检索增强技术 的启发,但实现了知识图谱的确定性特性,以简化相关子图的检索。此外,与其他提示方法相比,链式分解技术通过利用复杂查询中的逻辑操作链和以逻辑顺序利用后续查询中的先前答案,增强了知识图谱中的推理能力。

检索增强技术是一类用于改进信息检索系统性能的方法和技术。传统的信息检索系统通常基于关键词匹配或统计模型来检索和排名文档,但这些方法可能存在一些局限性,例如无法准确理解查询意图、无法处理复杂的查询或无法提供个性化的结果。
检索增强技术旨在克服这些限制,提高信息检索系统的效果和用户体验。

总结一下,本文的主要贡献如下:

  1. 提出了一种名为Language-guided Abstract Reasoning over Knowledge graphs(LARK)的新模型,利用大型语言模型的推理能力,高效地回答知识图谱上的FOL查询。
  2. 该模型利用查询中的实体和关系在抽象的知识图谱中找到相关的子图上下文,然后使用逻辑分解的查询的LLM提示在这些上下文中进行链式推理。
  3. 在标准知识图谱数据集上进行的逻辑推理实验表明,相对于基于投影(p)、交集(∧)、并集(∨)和否定(¬)等操作的14种FOL查询类型,LARK的MRR性能提升了33%至64%。
  4. 通过比较复杂查询和分解的逻辑查询,证明了链式分解的优势,LARK在逻辑推理任务上的性能比复杂查询提升了9%至24%。此外,对LLMs的分析显示了增加规模和更好设计的底层LLMs对LARK性能的重要贡献。

相关工作

本文涉及两个主题的交叉,即知识图谱上的逻辑推理和LLM中的推理提示技术。

知识图谱上的逻辑推理:这个领域的一开始的方法主要关注捕捉实体的语义信息以及它们之间的投影所涉及的关系操作。然而,该领域的进一步研究揭示了对编码知识图谱中存在的空间和层次信息的新几何形式的需求。为了解决这个问题,模型如Query2Box 、HypE 、PERM和BetaE将实体和关系编码为盒子、双曲面、高斯分布和贝塔分布。此外,CQD等方法专注于通过简单中间查询的答案组合来改进复杂推理任务的性能。在另一条研究线路中,HamQA 和QA-GNN 开发了利用知识图谱邻域增强整体性能的问答技术。先前的方法主要关注增强逻辑推理的知识图谱表示。与这些现有方法相反,本文提供了一个系统的框架,利用LLM的推理能力,并将其定制为解决知识图谱上的逻辑推理问题。

LLM中的推理提示:最近的研究表明,LLM可以通过上下文提示学习各种NLP任务。此外,LLM通过提供中间推理步骤(也称为思维链)成功应用于多步推理任务,这些步骤是到达答案所需的。另外,某些研究组合了多个LLM或带有符号函数的LLM来执行多步推理,并具有预定义的分解结构。最近的研究如least-to-most、successive 和decomposed 的提示策略将复杂提示分解为子提示,并按顺序回答它们以实现有效性能。虽然这些研究与本文的方法接近,但它们没有利用先前的答案来指导后续查询。
LARK是独特的,因为它能够利用链式分解机制中的逻辑结构,增强检索到的知识图谱邻域,并在连续查询中将前面的LLM答案纳入其中的多阶段回答结构。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1085419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGLM:向量化构建本地知识库原理

一、概念 1.向量:是有大小和方向的量,可以使用带箭头的线段表示,箭头指向即为向量的方向,线段的长度表示向量的大小。 2.向量化:将语言模型的数据转化为向量。这通常通过嵌入模型(embedding models&#…

【算法-动态规划】0-1 背包问题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

解锁 OpenAI 密钥的新利器:OpenAI Key 有效性查询工具,支持GPT4

在寻找新的创意或解决问题时,OpenAI 的 GPT 模型是一个强大的工具。但是,一旦您拥有了自己的 OpenAI 密钥,您可能会遇到一个常见的问题 - 如何验证您的密钥是否有效?这个问题可能令人困扰,但不必再担心了。现在&#x…

多功能按键中断

key1 开关实现led1亮灭,key2开关实现蜂鸣器开关,key3开关实现风扇开关 main.c #include "uart.h" #include "key_it.h" #include "led.h" int main() {char c;char *s;uart4_init();//串口初始化all_led_init();key_it_config();fengshan_init…

Day 05 python学习笔记

循环 应用:循环轮播图 最基础、最核心 循环:周而复始,谓之循环 (为了代码尽量不要重复) while循环 while的格式 索引定义 while 表达式(只要结果为布尔值即可): 循环体 通过条件的不断变化,从…

1315. 网格 - 卡特兰数

1315. 网格 - AcWing题库 只要是触及上面这条红线的,就以第一次触及的点为起点沿红线反转,终点的位置与红线对称的位置可以看作触及红线的路线的终点。 yx1 横坐标容易得出时m - 1,(m n) - (m - 1)得出纵坐标n 1 …

JVM面试题:(四)四种引用方式强弱软虚

四种引用方式: 强引用 强引用是平常中使用最多的引用,强引用在程序内存不足(OOM)的时候也不会被回收,使用 方式: String str new String(“str”); System.out.println(str); 软引用 软引用在程序内存不…

07-网络篇-抓包分析TCP

为了抓包方便一些&#xff0c;我在ubuntu虚拟机运行服务端程序&#xff0c;而在windows运行客户端程序&#xff0c;关于客户端与服务端程序如下。 ##1.程序 客户端&#xff1a; vs_client.cpp #include "stdafx.h" #include <iostream> #include <winsock2…

MapStruct_概念、如何使用、子集和映射、合并、Spring方式、表达式、自定义切面处理

文章目录 ①. 什么是MapStruct&#xff1f;②. 如何使用MapStruct?③. 子集和映射④. 合并映射⑤. Spring依赖注入⑥. 常量、默认值和表达式⑦. 自定义切面处理 ①. 什么是MapStruct&#xff1f; ①. MapStruct是一款基于Java注解的对象属性映射工具,使用的时候我们只要在接口…

SQL 教程||SQL 简介

SQL 简介&#xff08;开个新坑&#xff09; SQL&#xff08;结构化查询语言&#xff09;是用于访问和操作数据库中的数据的标准数据库编程语言。 SQL是关系数据库系统的标准语言。所有关系数据库管理系统(RDMS)&#xff0c;如MySQL、MS Access、Oracle、Sybase、Informix、Po…

第四章——密码学的数学引论

一.数论 1.素数 200以内的素数&#xff1a; 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 算术基本定理&#xff1a; 任何一个不等于0的正整数a都可以写…

接上面 通过索引index 和类型Java.lang.string.来注入

index 属性表示构造函数参数的索引&#xff0c;value 属性表示构造函数参数的值。

【web实现右侧弹窗】JS+CSS如何实现右侧缓慢弹窗动态效果『附完整源码下载』

文章目录 写在前面涉及知识点页面效果1、页面DOM创建1.1创建底层操作dom节点1.2 创建存放弹窗dom节点 2、页面联动功能实现&#xff08;关闭与弹出&#xff09;2.1 点击非右侧区域实现关闭2.2 点击叉叉及关闭按钮实现关闭功能 3、完整源码包下载3.1百度网盘3.2 123云盘3.3邮箱留…

没用的知识增加了,尝试用文心实现褒义词贬义词快速分类

尝试用文心实现褒义词贬义词快速分类 一、我的需求二、项目环境搭建千帆SDK安装及使用流程 三、项目实现过程创建应用获取签名调用接口计算向量积总结 百度世界大会将于10月17日在北京首钢园举办&#xff0c;今天进入倒计时五天了。通过官方渠道的信息了解到&#xff0c;这次是…

【APUE】文件系统 — 进程环境

目录 一、再提 main 函数 二、进程的终止 2.1 正常终止 2.1.1 从 main 函数用 return 返回 2.1.2 主动调用 exit 函数 2.1.3 钩子函数 2.1.4 调用 _exit 或 _Exit 2.2 异常终止 三、命令行参数的分析 3.1 getopt 3.2 示例 四、环境变量 4.1 简介 4.2 查看环境…

内网收集哈希传递

1.内网收集的前提 获得一个主机权限 补丁提权 可以使用 systeminfo 然后使用python脚本找到缺少的补丁 下载下来 让后使用exp提权 收集信息 路由信息 补丁接口 dns域看一看是不是域控 扫描别的端口 看看有没有内在的web网站 哈希传递 哈希是啥 哈希…

墨者学院 WordPress 远程命令执行漏洞(CVE-2018-15877)

1. 背景介绍 近日&#xff0c;WordPress 插件Plainview Activity Monitor被曝出存在一个远程命令执行漏洞。Plainview Activity Monitor 是一款网站用户活动监控插件。 远程攻击者可以通过构造的url来诱导wordpress管理员来点击恶意链接最终导致远程命令执行 2.影响范围 Pla…

ajax同步与异步,json-serve的安装与使用,node.js的下载

20.ajax json 轻量级的数据格式做配置文件网络传输 xml 重量级的数据格式 可扩展标记语言做配置文件网络传输 现在目前主流就是大量采用json做网络传输数据格式 1.ajax的概念: 与服务器进行’通信’的一种技术,能够实现异步的刷新页面 **同步:**按照顺序一步步的执行,容易造…

Python应用-矩阵乘法-特征提取

目录 常规运算应用场景&#xff1a;特征提取特征矩阵权重矩阵举例说明代码展示 常规运算 import numpy as npmatrix1 np.array([[1, 2], [3, 4]]) matrix2 np.array([[5, 6], [7, 8]]) result np.dot(matrix1, matrix2) print(result) 输出结果&#xff1a; [[19 22][43 …

是谁还没听过杨氏矩阵~原理和实现代码都已经准备好了

有一个数字矩阵&#xff0c;矩阵的每行从左到右是递增的&#xff0c;矩阵从上到下是递增的&#xff0c;请编写程序在这样的矩阵中查找某个数字是否存在。 要求&#xff1a;时间复杂度小于O(N); 看到这个题目时&#xff0c;我们会马上想到暴力求解&#xff0c;即遍历这个矩阵的每…