KGR:基于LLM 补全知识图谱并丰富上下文

2024年11月21日 由 alex 发表 13 0

知识图谱补全(KGC)任务旨在从不完整的三元组中推断出缺失的实体。现有的基于嵌入的方法仅依赖于知识图谱中的三元组,这容易受到虚假关系模式和长尾实体的影响,而基于文本的方法则难以跨越知识图谱三元组和自然语言之间的语义鸿沟。


为了解决这些局限性,本文提出了KGR,一个上下文丰富的知识图谱补全框架。KGR由三个模块组成。首先,检索模块从知识图谱中收集支持三元组,从基础嵌入模型中收集可能的候选答案,并为每个相关实体检索上下文。然后,推理模块使用大型语言模型为每个查询三元组生成潜在答案。最后,重排模块结合上述两个模块中的候选答案,并微调一个大型语言模型以提供最佳答案。


主要贡献:

  • 提出了一种新颖的KGR框架用于KGC任务,该框架系统地检索相关的支持上下文,进行语义推理,并对候选答案进行重新排序。
  • 注意到知识图谱三元组和自然语言句子之间的语义鸿沟,并通过实体上下文无缝地弥合这一鸿沟。


问题规范

知识图谱(表示为G = {E, R, T})可以表示为一组三元组的形式(h, r, t)∈ T,其中h, t ∈ E, r ∈ R。符号h和t分别表示三元组的头实体和尾实体。E、R、T分别是实体、关系和三元组的集合。


方法

提出的上下文丰富的知识图谱补全框架KGR,由三个组件组成:(1)检索,(2)推理,和(3)重排。


1


i) 第一阶段:检索

检索模块专注于收集可能有助于完成某些不完整三元组的结构和语义知识。


a) 支持三元组检索

  • 在知识图谱中,实体的属性以结构三元组的形式表示,其中通过相同关系连接的不同实体通常具有共同的显著属性。
  • 给定一个形式为(h, r, ?)或(?, r, t)的不完整查询三元组,我们的目标是检索与不完整查询三元组在语义上最相似的k个支持三元组。
  • 首先优先考虑来自训练集中具有相同实体和关系的三元组。
  • 如果可用三元组的数量少于k,我们会将选择范围扩大到具有相同关系且实体与查询三元组中已知实体在语义上相似的三元组。


b) 文本上下文检索

  • 注意到结构三元组和自然语言句子之间存在显著的语义鸿沟。
  • 例如,在上图中,实体“Kasper Schmeichel”原本由唯一实体ID“/m/07h1h5”表示,而关系“效力的体育团队”原本表示为“/sports/pro_athlete/teams./sports/sports_team_roster/team”,这种结构化格式对于大型语言模型(LLM)来说难以处理。


c) 候选答案检索

  • 广泛采用的基于排名的评估方法对于知识图谱补全(KGC)任务要求模型对知识图谱中每个实体作为查询三元组中缺失实体的潜在替代项的合理性进行评分,但是,考虑到知识图谱中实体数量庞大,使用大型语言模型对每个实体进行评分和排名在计算上是昂贵且不切实际的。
  • 因此,我们采用一个基础的KGC模型来初始化知识图谱内实体的评分和排名。正式地,将基于KGC模型排名的实体列表表示为AKGC,如下所示:


2


fr(h, t)是KGC模型评估三元组(h, r, t)合理性的评分函数。然后,我们从AKGC中提取评分最高的前n个实体作为候选答案,并根据它们的实体ID提取标签和描述。


ii) 第二阶段:推理

  • 涉及使用支持三元组来指导大型语言模型(LLM)执行KGC任务。
  • 利用LLM,根据查询三元组中已知实体的描述,生成几个可能的答案。


a) 支持三元组演示

对于每个支持三元组,我们首先向LLM提供头实体的描述。实体描述有三个目的:

  • 消除具有相同标签的实体的歧义;
  • 刷新LLM对已知实体的记忆;
  • 为未包含在LLM预训练语料库中的实体提供必要信息。


遵循的步骤是:

  • 用“[MASK]”标记替换相邻实体;
  • 将掩码三元组转换为自然语言问题;
  • 随后,我们要求LLM基于其对已知实体简短描述和问题的语义理解来生成答案;
  • 提供被掩码实体的标签和实体描述作为我们的解释。
  • 考虑到多个支持三元组,LLM还可以辨别由相同关系连接的相邻邻居和相似实体的显著属性。


b) 上下文感知推理

  • 将已知实体的描述和从查询三元组转换而来的问题传递给LLM;
  • 然后指示LLM在其响应中输出一系列答案;对LLM的输出进行后处理,将实体别名替换为实体标签,并过滤掉不在AKGC前δ个位置中的无效和不可靠答案;
  • 最后,我们获得了一个包含m个答案的列表,正式表示为:


3


其中,q、c(q)、e 和 D(q) 分别表示问题、已知实体的描述以及支持三元组演示。


iii) 第三阶段:重新排序

我们引入带有LoRA适配的监督微调(SFT),其训练目标是从一组候选答案中找出不完整三元组中缺失的实体。


具体来说,我们通过损坏训练集中每个三元组的尾(或头)实体来构建训练样本。


对于每个损坏的三元组,我们从实体集中随机采样 n-1 个负样本,其中一半与损坏的真实实体具有相同的关系。包含困难负样本有助于LLM区分具有相同属性的不同实体,这一点至关重要,因为基础KGC模型建议的候选实体通常具有相似的特征。


我们将掩码三元组转换为自然语言问题,并为每个候选实体收集标签和描述。最后,我们将问题 q、检索到的相邻事实 N(q)、已知实体的描述 c(q)e,以及候选答案 A 及其描述 c(A) 提供给LLM,并对LLM进行微调,使其输出真实实体的标签 y。


形式上,我们有SFT损失:


4


在推理阶段,我们构建一个候选答案集Ac,它由来自AKGC的前p个实体和在ALLM中之前未遇到的前(n-p)个实体组成。


5


如果ALLM中包含的实体少于(n - p)个(例如,m < n - p),我们将从AKGC中补充额外的实体到候选答案集中,以达到总共n个实体。


最后,我们构建重新排序的实体列表ARR以进行性能评估。在这里,我们有...


6


结果

下表总结了 KGR 框架在六种不同的基本 KGC 方法上的表现


7


在所有评估指标中,KGR 的最佳变体明显优于所有基线方法


与之前最先进的基线相比,以 Llama3–8B 为主干的 KGR 在 FB15k237 和 WN18RR 数据集上分别实现了 11.3% 和 4.0% 的绝对 Hits@1 改进


消融研究


i) 推理模块对最终推理性能提升的贡献:

我们将重排序模块应用于从基线KGC模型中检索到的候选答案。在“KGR w/o Reasoning”变体中,性能下降表明预训练的语言模型能够提供合理的答案,但这些答案在基线模型的初始排名中并未处于靠前位置。


ii) 实体描述在增强知识图谱补全方面的贡献:

在“KGR w/o Entity Descriptions”变体中,我们移除了查询三元组中的已知实体及其每个候选答案的描述,导致实验结果不佳。性能的下降再次证实了我们的假设,即语言模型可能缺乏对知识图谱中某些实体的基本理解,这显示了检索和利用文本上下文的重要性。


iii) 语言模型能否在没有知识图谱三元组帮助的情况下生成理想的知识图谱补全结果:

在“KGR3 w/o Neighbor Facts”变体中,我们观察到了显著的性能下降,特别是在Hits@1指标上。


下表显示了消融研究的结果,其中移除了推理模块、实体描述或相邻事实。我们分别采用NBF-Net和SimKGC作为FB15k237和WN18RR数据集的基线KGC模型。


8


上述结果再次证实了文本上下文和结构上下文之间的互补关系。


iv) KGR3能否在不同的语言模型下确保理想的性能?

下表显示了在不同语言模型组合下,推理和重排序阶段的消融研究结果。我们为FB15k237和WN18RR数据集采用了最佳的基线KGC模型,即NBF-Net和SimKGC。


9


结果显示,KGR在所有8种语言模型组合中均一致优于所有基线方法。


当使用Qwen2–7B和GPT3.5分别作为重排序和推理模块的语言模型时,KGR达到了最先进的性能。


即使使用相同的语言模型Llama2–7B,KGR仍然以很大的优势超越了DIFT。


v) SFT数据量对KGR性能的影响

下图展示了在不同语言模型下,两个数据集上随着SFT数据量的增加,Hits@1性能的变化情况。


10


结果显示,增加SFT数据通常会提高模型性能。


结论

我们提出了KGR,一个基于LLM的上下文丰富的KGC框架,包含三个模块:检索、推理和重排序。通过利用上下文信息,KGR3有效地弥合了结构KG三元组与自然语言之间的语义鸿沟。


文章来源:https://medium.com/@techsachin/kgr-llm-based-context-enriched-framework-for-knowledge-graph-completion-6e12449cb25d
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消