论文浅尝 | 将复杂知识图谱问答对齐为约束代码生成(COLING2025)

news2025/6/3 20:15:27

笔记整理:康家溱,东南大学在读硕士,研究方向为代码大语言模型

论文链接:https://aclanthology.org/2025.coling-main.267.pdf

发表会议:COLING 2025

1. 动机

近年来,随着大语言模型(LLM)展现出强大的推理能力,越来越多的专家学者利用大语言模型增强知识问答任务的可靠性。基于图谱的知识问答(KGQA)是指通过在图谱上执行逻辑形式(Logic Form)如SPARQL,S-Expression等生成用户需要的答案。

随着用户提问的复杂程度不断提升,大语言模型的推理能力涌现,以及上下文学习这种不需要训练的方式极大减小了开销,从而利用大语言模型生成逻辑形式完成复杂知识问答的形式备受青睐。

逻辑形式是连接自然语言问题与知识图谱的桥梁,由于预训练阶段接触到的逻辑形式较少,面对复杂查询如非单调推理,逻辑组合,数值计算等情况,直接生成LF(如SPARQL、S-Expression)容易出现语法错误,且复杂知识问答常常需要组合推理和数值计算等过程,这需要大模型逐步解析推理过程从而提高推理的透明度。

KoPL是一种符号化的逻辑形式,由模块化函数组成,每个函数有明确的输入/输出类型约束。同理,Python等语言同样通过函数组合完成任务,且遵守严格的语法和类型规则。由于知识导向的编程语言(KoPL)与通用编程语言(如Python)在结构上具有本质相似性,因此本文将逻辑形式(LF)生成任务重新定义为Python代码生成任务。

2. 贡献

(1)本文提出了CodeAlignKGQA框架,将KoPL生成任务对齐为Python代码生成任务,利用Code LLMs的模块化编程能力,增强了鲁棒性。

(2)本文提出了一种动态感知的方法,基于BFS和语义相似度提取问题的相关子图,作为代码生成的上下文约束,无需感知图谱全部信息。

(3)本文设计一种动态的纠错机制,通过检查生成代码的输入输出类型,指导LLM生成正确代码。

3. 方法

本文提出 CodeAlignKGQA 框架,通过将知识图谱问答中的逻辑形式生成任务重新定义为 Python代码生成任务,利用代码大语言模型的编程能力提升生成质量。其核心方法分为三步:

(1)知识感知的提示生成:动态提取问题相关的子图信息,包括实体,关系等,从而构建包含指令、函数定义和示例的提示。

(2)约束代码生成:通过引导代码大语言模型生成符合KoPL语法和子图类型约束的Python风格代码。

(3)动态自纠正:通过语法验证和程序结构检索修复错误代码,最终将生成的代码解析为KoPL并在知识图谱上执行。

1 模型框架图

3.1 知识感知的提示生成

子图提取:首先利用命名体识别(NER)对问题中的实体和关系进行过滤,掩码后生成n个候选,接着利用BERT进行编码,采用余弦相似度匹配KG中的关系或属性,得到初步子图,广度优先搜索(BFS)扩展该子图得到最终子图。

提示合成:预先明确代码生成规则,将KoPL的27种操作映射为Python函数,再人工从训练集数据中挑选少量样本,合成完整上下文。

图2 复杂问题子图匹配 

3.2 约束代码生成

通过将知识图谱的KoPL操作预定义为Python函数(如FIND()、RELATE()),并嵌入动态断言(assert)强制检查输入输出类型(如entities、int),引导LLM生成符合语法和语义规则的代码。生成时,要求模型分步输出Python风格的KoPL程序再通过解释运行代码和链式调用检查保证逻辑连贯,最终将代码解析为可执行的KoPL查询。

3.3 动态代码纠正

当生成的代码未通过语法检查或类型确认时,要求系统从预构建的函数覆盖池中检索与错误代码结构相似的Top-K正确示例(利用余弦相似度进行匹配),替换原提示中的少样本示例,并重新生成代码。

3.4 图谱映射执行

该过程首先对生成的代码中的文本输入(如实体名、关系名)进行语义链接,从知识图谱中通过向量相似度从KG中提取Top-10候选,再由LLM基于问题上下文选择最优项,按依赖关系排序执行步骤,最后将Python代码解析为标准KoPL程序,执行解析后的KoPL程序获得答案。

4. 实验

4.1 评测

本文选择了三个具有不同复杂程度的KGQA数据集进行评测,分别是KQA Pro,MetaQA和WebQSP。

其中KQA Pro包含94K训练集,11K测试集,最多可达10跳推理,涉及到组合推理、数值比较、多跳查询等复杂问题。MetaQA为电影领域多跳问答。WebQSP则是基于真实数据构建。

基准方法:本文对比了两类不同的基线方法,分别是全监督方法,和少样本方法进行对比,此外还对不同的代码大语言模型实现了消融实验。

表1说明了实验数据集的多样性和规模,为后续实验提供了有力支撑,同时也分析了利用大语言模型和现有SOTA基于符号化生成的性能差异。

表 1 分类性能表现

表2展示了KQA-Pro评测结果,从命中率来看,相比于全监督模式,CodeALignKGQA展现出极大潜力,但略逊于通过少样本的方式Gemini Pro 1.0的表现。从句法错误率角度(Syntax Error Rate (SER%))来看,该方案取得明显优势。

表 2 KQA Pro评测结果

表3展示了MetaQA的评测结果,从命中率来看,模型在单跳推理和双跳推理任务上稳居第一,效果略强于Gemini Pro 1.0,在三跳推理任务上取得第二,效果略低于Gemini Pro 1.0。

表 3 MetaQA 评测结果

表4展示了WebQSP的评测结果,从WebQSP的结果来看,模型的F1指数位列第一,说明模型有着不错的精准度和召回率,且几乎未产生句法错误,这符合该方案的设计动机。

表 4 WebQSP 评测结果

与GPT4的对比试验:

该实验对比了四个不同的LLM在三个数据集上实验效果,GPT-4仅在KQA Pro上表现最优,在其它两个数据集上表现逊色于CodeLlama Instruct和 Gemini Pro 1.0,可能由于GPT4具有更强的推理能力和丰富的通用知识,但在简单场景下,面对特定领域相关的知识问答场景无法充分发挥自身通用推理的能力,这也进一步表明更强的模型并不一定在所有场景下的表现都是最优的。

表 5 与GPT性能对比

表6分析了该框架中知识感知模块的性能,通过设计不同的相似度阈值,可以看到该模块在三个数据集上的检索性能良好,这极大降低了输入的成本。

表 6 子图检索性能

由KQA-Pro和WebQSP的效果可推测,动态纠正对复杂查询至关重要,但对简单问题可省略以降低计算开销, 而图谱映射确保生成的代码语义可执行,缺失这一模块会导致性能崩溃。

表 7 消融实验结果

5. 总结

本文提出了CodeAlignKGQA框架,分析了逻辑形式(Logic Form)生成任务和代码生成任务的结构相似性,旨在利用代码大语言模型强大的编程能力提升生成质量,增强模型生成逻辑形式的稳定性和鲁棒性,减少句法错误率,从而更好的实现复杂知识问答任务的性能。

这一转变不仅仅适用于逻辑形式生成,近年来,越老越多学者尝试利用代码大语言模型的模块化编程能力,将传统非代码任务转换成代码生成任务,进一步提升效果。Li et al. (2023) 提出了CodeIE,巧妙的将传统的信息抽取任务如命名实体识别和关系抽取等,重新构建为代码生成任务。Puerto et al. (2024) 提出一种链式提示方法,将自然语言问题转换为代码,并直接使用生成的代码提示模型,无需外部代码执行。Wang et al. (2023) 将结构化预测任务, 如事件论元抽取, 转换为代码生成任务,使用 Python 类或函数来表示输出结构。

将结构化的信息生成的任务统一转化为代码生成任务,以编程语言的规则弥补纯文本生成的多样性。未来可探索更多领域的代码化对齐,同时考虑解决计算开销与领域适配的平衡问题。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

点击阅读原文,进入 OpenKG 网站。

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

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

相关文章

Golang|分布式搜索引擎中所使用到的设计模式

迭代器模式 定义:在遍历接口时,提供统一的方法函数供调用,保持一致性。核心思想:与大众习惯保持一致,方便第三方实现容器类时保持一致。常见方法:如next()方法,适用于所有集合类,简化…

Ubuntu22.04通过命令行安装qt5

环境: VMware17Pro ubuntu-22.04.5-desktop-amd64.iso 步骤: 安装好虚拟机进入shell,或通过ssh登录,确保虚拟机能上外网,执行命令: sudo apt update sudo apt install build-essential sudo snap in…

STM32:ESP8266 + MQTT 云端与报文全解析

知识点1【MQTT的概述】 1、概述 MQTT是一种基于发布/订阅模式的轻量级应用层协议,运行在TCP/IP协议之上,专用物联网(IoT)和机器对机器(M2M)设计,其核心目标是低带宽,高延迟或不稳定…

HTML5 Canvas 星空战机游戏开发全解析

HTML5 Canvas 星空战机游戏开发全解析 一、游戏介绍 这是一款基于HTML5 Canvas开发的2D射击游戏,具有以下特色功能: 🚀 纯代码绘制的星空动态背景✈️ 三种不同特性的敌人类型🎮 键盘控制的玩家战机📊 完整的分数统…

箱式不确定集

“箱式不确定集(Box Uncertainty Set)”可以被认为是一种 相对简单但实用的不确定集建模方式。 ✅ 一、什么是“简单的不确定集”? 在鲁棒优化领域,“简单不确定集”通常指的是: 特点描述形式直观数学表达简洁&#…

内存管理 : 04段页结合的实际内存管理

一、课程核心主题引入 这一讲,我要给大家讲的是真正的内存管理,也就是段和页结合在一起的内存管理方式。之前提到过,我们先学习了分段管理内存的工作原理,知道操作系统采用分段的方式,让用户程序能以分段的结构进行编…

vue3: baidusubway using typescript

项目结构&#xff1a; <!--npm install -D tailwindcss-3d BaiduSubwayMap.vue npm install -D tailwindcss postcss autoprefixer--> <template><div class"relative w-full h-screen"><!-- 地图容器 --><div id"subway-container…

Redis最佳实践——性能优化技巧之集群与分片

Redis集群与分片在电商应用中的性能优化技巧 一、Redis集群架构模式解析 1. 主流集群方案对比 方案核心原理适用场景电商应用案例主从复制读写分离数据冗余中小规模读多写少商品详情缓存Redis Sentinel自动故障转移监控高可用需求场景订单状态缓存Redis Cluster原生分布式分片…

常见相机的ISP算法

常见的ISP算法 3A算法 去雾算法 图像增强算法 图像宽动态算法 图像的电子缩放算法&#xff0c;无极电子缩放 图像降噪算法 相机常见问题 1.相机启动速度问题&#xff0c;启动速度较慢 2.相机扛不住高低温问题 3.相机散热问题问题 4.相机高低温芯片保护掉电 5.相机的成像效果或者…

2024 CKA模拟系统制作 | Step-By-Step | 8、题目搭建-创建 Ingress

目录 ​​​​​​免费获取题库配套 CKA_v1.31_模拟系统 一、题目 二、核心考点 Ingress 资源定义 Ingress Controller 依赖 服务暴露验证 网络层次关系 三、搭建模拟环境 1.创建命名空间 2.安装ingress ingress-nginx-controller 3.创建hello.yaml并部署 四、总结 …

OldRoll复古胶片相机:穿越时光,定格经典

在数字摄影盛行的今天&#xff0c;复古胶片相机的独特魅力依然吸引着无数摄影爱好者。OldRoll复古胶片相机这款软件&#xff0c;以其独特的复古风格和丰富的胶片滤镜效果&#xff0c;让用户仿佛穿越回了那个胶片摄影的黄金时代。它不仅模拟了胶片相机的操作界面&#xff0c;还提…

通俗易懂的 JS DOM 操作指南:从创建到挂载

目录 &#x1f9e9; 1. 创建元素&#xff1a;document.createElement / createElementNS &#x1f4dd; 2. 创建文本&#xff1a;document.createTextNode ✏️ 3. 修改文本&#xff1a;node.nodeValue &#x1f5d1;️ 4. 移除元素&#xff1a;el.removeChild() &#x1…

CSS Day07

1.搭建项目目录 2.网页头部SEO三大标签 3.Favicon图标与版心 &#xff08;1&#xff09;Favicon图标 &#xff08;2&#xff09;版心 4.快捷导航 5.头部-布局 6.头部-logo 7.头部-导航 8.头部-搜索 9头部-购物车 10.底部-布局 11.底部-服务区域 12.底部-帮助中心 13.底部-版权…

RV1126-OPENCV 交叉编译

一.下载opencv-3.4.16.zip到自己想装的目录下 二.解压并且打开 opencv 目录 先用 unzip opencv-3.4.16.zip 来解压 opencv 的压缩包&#xff0c;并且进入 opencv 目录(cd opencv-3.4.16) 三. 修改 opencv 的 cmake 脚本的内容 先 cd platforms/linux 然后修改 arm-gnueabi.to…

【深度学习】 19. 生成模型:Diffusion Models

Diffusion Models Diffusion Models 简介 Diffusion 模型是一类通过逐步添加噪声并再逆向还原的方式进行图像生成的深度生成模型。其基本流程包括&#xff1a; 前向过程&#xff08;Forward Process&#xff09;&#xff1a;将真实图像逐步加噪&#xff0c;最终变为高斯噪声…

JMeter 直连数据库

1.直连数据库的使用场景 1.1 参数化&#xff0c;例如登录使用的账户名密码都可以从数据库中取得 1.2 断言&#xff0c;查看实际结果和数据库中的预期结果是否一致 1.3 清理垃圾数据&#xff0c;例如插入一个用户&#xff0c;它的ID不能相同&#xff0c;在测试插入功能后将数据删…

易路 iBuilder:解构企业 AI 落地困境,重构智能体时代生产力范式

一、从大模型到智能体的产业跃迁 2024 年堪称中国人工智能产业的 "战略拐点" 之年。当 DeepSeek R1 模型以 "技术 价格" 双重普惠模式掀起行业震荡时&#xff0c;各企业纷纷意识到&#xff0c;大模型的真正价值不在于技术炫技&#xff0c;而在于成为企业…

计算机网络之路由表更新

1.解题思路 对新接收到的路由表进行更新&#xff0c;全部"距离"1&#xff0c;且"下一跳路由器"都写成发送方路由器的名称。 开始对比新表和原来的路由表 1.看目的网络 如果是新的目的网络&#xff0c;则直接把对应的各项信息填入表中&#xff1b;如果是相同…

万兴PDF手机版

万兴PDF手机版(万兴PDF编辑器)是一款国产PDF编辑工具.万兴PDF安卓版提供PDF文档编辑,AI撰写摘要,文档签名,设置密码保护等功能,万兴PDF专家APP以简约风格及文档编辑功能为核心,支持多设备终端同步保存.全免 万兴 PDF 编辑器是一款功能强大的 PDF 编辑软件&#xff0c;它支持多种…

Qt -使用OpenCV得到SDF

博客主页&#xff1a;【夜泉_ly】 本文专栏&#xff1a;【暂无】 欢迎点赞&#x1f44d;收藏⭐关注❤️ 目录 cv::MatdistanceTransform获得SDF 本文的目标&#xff0c; 是简单学习并使用OpenCV的相关函数&#xff0c; 并获得QImage的SDF(Signed Distance Field 有向距离场) 至…