论文阅读:Making Large Language Models Perform Better in Knowledge Graph Completion

本文探讨了如何利用大语言模型的强大文本理解能力与知识图谱相结合,提出知识前缀适配器KoPA,将结构信息转化为文本嵌入,以实现LLMs在知识图谱补全中的结构感知推理。传统方法局限于单三元组预测,而KoPA则有望提升KGC性能并充分利用KG复杂结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

简介

大语言模型具有强大的文本理解与生成能力。大语言模型(LLM)与知识图谱(KG)的结合是未来大语言模型未来的重要发展方向之一。一方面,大模型凭借其丰富的文本理解和生成能力可以完成知识图谱的构建以及推理和补全,另一方面,知识图谱也可以为大模型提供可信的外部知识。这篇论文着眼于基于大模型的知识图谱补全(LLM4KGC)。讨论了如何将有用的KG结构信息融入到LLMs中,以实现LLMs中的结构感知推理。
进一步提出知识前缀适配器( KoPA )来实现这一目标。KoPA通过知识前缀适配器将结构嵌入转化为文本嵌入空间,并获得若干虚拟知识标记。这种结构嵌入到文本形式的映射为输入三元组提供了辅助信息。
代码:https://github.com/zjukg/KoPA

基本概念

知识图谱(KG)是包含广泛实体和关系的语义网络,它以三元组形式:(头实体、关系、尾实体)对现实世界的知识进行建模和存储。知识图谱中结构化的知识三元组为许多基于Web的自动服务提供了基础,例如推荐系统,问答系统和网络故障分析。

但手动添加或自动提取的KGs往往是不完整的,因为它们仅由观察到的知识组成,导致许多缺失的三元组未被发现。于是催生了知识图谱补全( Knowledge Graph Completion,KGC ),其目的是预测给定KG中缺失的三元组,丰富KGs中包含的语义信息和真实世界知识。

现有的KGC方法可以分为两类:基于嵌入的和预训练语言模型( PLM ) 的方法。
最近,大型语言模型( Large Language Models,LLMs ) 表现出了出色的性能。现有的基于LLM的KGC任务往往使用现有的LLM范式,如零样本推理和指令微调来完成KGC任务。然而,这种方法将KGC任务转化为基于文本的单个三元组的预测。
然而,LLMs对精确和细微的事实性知识记忆不足。此外,知识图谱具有错综复杂的结构信息,如子图结构、关系模式、相关实体/关系等。整合这些结构信息对于LLMs发展对KG的全面理解是不可缺少的。当每个输入提示只包括单输入三元组时,不能为LLMs建立KG结构的意识,并导致结构信息的浪费。
KGLLaMA 通过vanilla instruction tuning的方法迈出了第一步,但对于如何释放LLM和KG自身的优势进行结构感知推理并获得更好的KGC性能,缺乏深入的研究和系统的探索。
由于LLMs在文本生成上具有泛化能力,许多工作试图将非文本模态如图像、音频和视频结合起来,这些模态也被称为多模态LLMs。这些方法通过模态编码器来编码非文本信息,然后将其处理为虚拟文本标记。通过在多模态数据集上的指令调整,将非文本与单词对齐。
如:Drug- Chat提出使用图编码器对药物分子图进行编码,并微调LLM来预测药物相互作用。

### ReAct框架在语言模型中的协同推理与行动 ReAct 是一种旨在增强语言模型能力的框架,它通过允许模型执行动态推理来创建、维护并调整行动计划,从而实现更高效的决策过程[^2]。具体来说,在 ReAct 的设计中,模型被赋予了两种核心功能:**推理(Reasoning)** 和 **行动(Action-taking)**。 #### 推理模块的功能 推理模块负责分析当前环境状态以及历史交互数据,生成高层次的战略规划或中间目标。这种推理可以基于输入上下文进行复杂逻辑推导,并预测可能的结果。例如,当面对复杂的多步任务时,推理部分会分解整个流程为若干子任务,并制定初步方案。 #### 行动模块的作用 一旦制定了策略或者明确了下一步方向之后,就需要采取实际行动去改变外部世界的状态或者是获取更多信息以便进一步优化后续步骤的选择。因此,行动模块依据来自推理层给出的具体指示完成实际操作——这可能是查询数据库、调用API接口亦或是物理机器人移动等不同类型的动作表现形式。 #### 动态反馈机制 值得注意的是,ReAct 并不是一次性地决定所有的行为序列;相反,它是持续监控每一步的效果并通过观察新产生的结果来进行自我修正的过程。这意味着即使最初的假设存在偏差甚至完全错误的情况下,该系统也能够及时发现这些问题所在之处并对原定计划作出相应修改直至达成最终目的为止。 ```python def react_framework(environment_state, history): while not goal_achieved(): reasoning_output = perform_reasoning(environment_state, history) action_to_take = determine_action(reasoning_output) new_environment_state, feedback = execute_and_observe(action_to_take) update_history(history, reasoning_output, action_to_take, feedback) def perform_reasoning(state, hist): # Complex logic to derive insights from state & history. pass def determine_action(insights): # Map derived insights into actionable steps. pass def execute_and_observe(action): # Execute an action and observe its effects on environment. pass def update_history(hist, r_out, a_taken, fbk): # Update internal records with latest information. pass ``` 上述伪代码展示了 ReAct 框架的一个简化版本工作流。其中包含了循环结构用于不断迭代直到满足终止条件即达到预定的目标位置;每次循环内部先做思考再付诸实践最后收集经验教训准备下一轮尝试。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值