利用大模型改进知识图谱补全的研究

人工智能咨询培训老师叶梓 转载标明出处

尽管现有的基于描述的KGC方法已经利用预训练语言模型来学习实体和关系的文本表示,并取得了一定的成果,但这些方法的性能仍然受限于文本数据的质量和结构的不完整性。

为了克服这些限制,中国科学技术大学、腾讯YouTu Lab、香港城市大学和北京大学的研究人员共同提出了MPIKGC框架,该框架通过从多个角度查询大模型,以补偿上下文知识的不足,从而改善KGC。具体为MPIKGC利用LLMs的推理、解释和总结能力,分别扩展实体描述、理解关系和提取结构。

方法

知识图谱(KG)是一个异构的直接图数据结构,可以表示为带有描述的三元组集合,记为G=(h,r,t,d)⊆E×R×E×D),其中E代表实体集,R代表关系集,D为实体和关系的原始描述。三元组分类任务的目标是判断给定三元组的准确性。知识图谱补全(KGC)的链接预测任务是基于已知的文本和结构数据推断缺失的事实,这包括预测给定(h,r,?)时的尾实体,以及预测给定(?,r,t)时的头实体。为了实现这一目标,需要对所有实体进行排名,计算正负三元组的评分函数。基于描述的KGC模型利用预训练的语言模型来编码D并学习实体和关系的表示,而本文的目标是通过策划的提示查询大模型来增强KGC模型的文本和结构数据。

MPIKGC方法涉及通过改进实体、关系和结构数据来增强知识图谱补全,如图2所示。查询大模型的模板显示在表1中,其中用于查询大模型的提示遵循三个基本原则:清晰度、普适性和多样性。

从大模型中形式化实体的全面知识并非易事,因为很难确定大模型是否已经生成并包含了该实体的所有信息。同时,手动为每个实体设置许多查询指令既耗人力又常常导致过多的token输入到大模型中,从而增加了推理的计算负担。这样的长文本可能也不适合小规模大模型,并可能妨碍它们的性能。因此,提出了一种“思维链”(Chain-of-Thought, CoT)提示策略,使大模型能够将复杂查询分解成不同方向,并逐步生成描述,无需显式手动输入。它指导大模型隐式地查询相关信息,从而产生更有效和广泛的响应。如表1中MPIKGC-E的示例模板所示,请求大模型提供全面的实体描述,并在回答前提供理由,这作为答案的理由并提高了KGC模型的召回率。例如,图2展示了一个名人“Michael Bay”的示例,大模型生成了包含该个体各种职业和个人细节的描述,并为每个响应提供了理由,以增强大模型的陈述。

知识图中异构关系的存在在区分两个实体中起着至关重要的作用。然而,仅依赖关系名称可能导致模糊的解释,特别是对于复杂关系类别。此外,链接预测任务需要额外的反向预测,即在给定(?,r,t)时预测头实体。通常,多对一关系的反向预测性能明显低于正向预测。基于结构的KGC方法试图通过为每个正向关系添加反向关系来解决这个问题,从而翻倍了关系的可训练索引嵌入。相比之下,基于描述的KGC方法,如SimKGC,将字符串“reverse”附加到关系名称上。这种简单的方法并不能使模型完全理解关系的含义,导致性能不佳。因此,提出了三种提示策略,即全局、局部和反向,如图1中的MPIKGC-R所示。具体而言,MPIKGC-R全局旨在从整个知识图的角度推断关系的重要性,从而促进两个关系之间的更好关联。相比之下,MPIKGC-R局部旨在从三元组的角度推断关系的含义,从而在预测缺失事实时增强理解并建议可能的头/尾实体类型。例如&#

### 关于时序知识图谱补全模型 TTransE 的信息 #### 研究论文背景 TTransE 是一种针对时序知识图谱 (Temporal Knowledge Graph, TKG) 补全的任务而设计的嵌入模型。该模型扩展了经典的 TransE 模型,通过引入时间维度来处理三元组中的时间戳信息[^1]。 #### 实现方法 为了适应时间变化的信息,TTransE 对传统的静态知识图谱嵌入进行了改进: - **时间感知距离函数**:对于每一个事实 `(h,r,t)` 和其对应的时间戳 `τ` ,TTransE 定义了一个新的评分函数 \( f_r(h, t; τ) \),其中不仅包含了头实体 h 和尾实体 t 之间的关系 r 的影响,还加入了时间因素的影响。 - **动态演化机制**:考虑到随着时间推移某些关系可能会发生变化甚至消失,TTransE 提出了基于历史数据的学习框架,允许模型捕捉到这些潜在的变化模式并预测未来的状态转换。 ```python import torch.nn as nn class TTransE(nn.Module): def __init__(self, num_entities, num_relations, embedding_dim): super(TTransE, self).__init__() self.entity_embeddings = nn.Embedding(num_entities, embedding_dim) self.relation_embeddings = nn.Embedding(num_relations, embedding_dim) def forward(self, head, relation, tail, timestamp): # 获取实体和关系的嵌入向量 e_head = self.entity_embeddings(head) e_relation = self.relation_embeddings(relation) e_tail = self.entity_embeddings(tail) # 计算带有时效性的得分 score = -(e_head + e_relation - e_tail).norm(p=2, dim=-1) time_score = ... # 这里应该加入具体计算时间分数的方式 final_score = score * time_score return final_score ``` 上述代码片段展示了如何构建一个简单的 TTransE 模型结构,在实际应用中还需要进一步完善时间部分的具体实现细节以及优化训练过程。 #### 应用案例 TTransE 可应用于多个领域内的时序数据分析任务,比如社交网络分析、金融风险预警等场景下涉及随时间演变的关系建模问题。例如在一个企业间的合作关系网络中,利用 TTransE 不仅能有效识别当前存在的合作联系,还能对未来可能出现的新合作伙伴做出合理推测;同样地,在医疗健康领域内也可以用来追踪疾病传播路径和发展趋势[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人工智能大模型讲师培训咨询叶梓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值