基于历史对比学习的时序知识图谱推理

本文提出了一种新的时序知识图谱模型CENET,该模型能够有效地预测未来的事件,特别是新事件。通过历史对比学习策略,CENET能够区分历史实体与非历史实体,从而提高预测准确性。

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

时序知识图谱

知识图谱(KGs)作为人类知识的集合,在自然语言处理、推荐系统和信息检索等领域显示展现了很好的前景。传统的KG通常是一个静态知识库,它使用图结构数据拓扑,并以三元组(s, p, o)的形式集成事实(也称为事件),其中s和o分别表示主语(头实体)和宾语(尾实体)实体,p作为关系类型表示谓词。在现实世界中,由于知识不断发展,时序知识图谱(TKG)的构建和应用成为领域热点,其中三元组(s, p, o)扩展为四元组,增加了时间戳t,即(s, p, o, t)。下图是由一系列国际政治事件组成的TKG。

时序知识图谱(子图):
在这里插入图片描述

时序知识图谱推理

TKG为许多下游应用提供了新的视角和见解,例如决策、股票预测和对话系统,从而引发了人们对TKG推理的强烈兴趣。在这项工作中,我们专注于在TKG上预测未来的事件。

为了对TKG的结构和时间特征进行建模以用于未来事件预测,一些主流的模型例如RE-NET利用自回归方法,可以很容易地预测重复或周期性事件。然而,在TKG数据集ICEWS(综合危机预警系统)中,新事件约占40%。

预测这些新事件非常具有挑战性,因为它们在历史时间轴上具有较少的交互痕迹。例如,图2的右侧部分显示了查询(the United States, Negotiate, ?, t+1)及其相应的新事件(the United States, Negotiate, Russia, t+1),其中大多数现有方法由于过度关注频繁的重复事件,因此在此类查询中通常会获得错误的结果。

现有模型存在的问题:

在这里插入图片描述
另一方面,在推理过程中,现有方法在对整个图中所有候选实体的概率得分进行排名时,而没有任何的bias。我们认为,在处理不同事件的缺失实体时,这种bias是十分必要的,这在现实社会中也是如此,例如,对于重复或周期性事件,我们应该优先考虑一些频繁发生的实体,而对于新事件,则需更多地关注历史交互较少的实体。

基于历史对比学习的时序知识图谱推理

在这项工作中,我们将超越历史信息的限制,从整个知识中挖掘潜在的时序模式。为了更清晰地阐述我们的设计,我们将与当前查询中的实体相关联的过去事件称为该查询历史事件,其他事件称为非历史事件。我们直观地认为,TKG中的事件不仅与其历史事件相关,还与未观察到的潜在因素间接相关。我们所能看到的历史事件只是冰山一角(图2)。我们提出了一种新的TKG推理模型,称为CENET(Contrasive Event Network)。下图给出了模型的框架图。

在这里插入图片描述
CENET模型框架:左侧部分从历史和非历史依赖关系中学习实体的分布。右侧部分是历史对比学习的两个阶段,其目的是识别高度相关的实体,输出是布尔掩码向量。中间部分是基于掩码的推理过程,它将从历史和非历史依赖关系中学习到的分布与掩码向量相结合,以生成最终结果。

给定真实的尾实体为o的查询(s, p, ?, t),CNENT考虑其历史和非历史事件,并通过对比学习识别重要实体。具体而言,模型首先采用基于复制机制的评分策略来建模历史事件和非历史事件的相关性(公式1和2)。
在这里插入图片描述
在这里插入图片描述
此外,所有查询都可以根据其真实对象实体分为两类:尾实体是历史实体或非历史实体。因此,CENET自然采用监督对比学习损失来训练两类查询的表示(即公式3中的 v q v_q vq),进一步帮助训练输出为布尔值的分类器,以识别哪些实体应该受到更多关注。在推理过程中,CENET结合了历史和非历史依赖性的分布,并根据分类结果进一步采用基于掩码的策略来考虑高度相关的实体。
在这里插入图片描述
历史对比学习:CENET在第1阶段使用对比损失学习表示,在第2阶段使用交叉熵损失训练二元分类器。
在这里插入图片描述

实验

数据集

我们选择了五个基准数据集,包括三个基于事件的TKG和两个公共KG。这两种类型的数据集以不同的方式构建。前三个基于国际政治事件的TKG由ICEWS18、ICEWS14和GDELT组成,事件是离散的。后两个公共KG(WIKI和YAGO)中的事件可能会连续地存在很长时间。

在这里插入图片描述

对比实验

我们选取了15个业界最新的TKG推理模型作为基线,并采用Mean Reciprocal Ranks (MRR) 和 Hits@1/3/10 (the proportion of correct predictions ranked within top 1/3/10)作为评价指标。下表给出了结果。结果表明,CENET在大多数指标上明显优于所有现有方法,在基于事件的数据集上,与以前最先进的基线相比,Hits@1至少获得了8.3%的相对提升。

基于事件的TKG对比实验结果:
在这里插入图片描述
公共KG对比实验结果
在这里插入图片描述

消融实验

我们分析了模型中每一个关键组成的性能,下表给出了消融实验的结果。可以看到,同时考虑历史和非历史依赖项比只单独考虑历史依赖能取得更好的效果,历史对比学习策略以及基于掩码的推断均能取得优越的性能。

在这里插入图片描述

案例分析

案例分析给出了模型在预测重复性事件与新事件上的案例。

在这里插入图片描述

结论

在本文中,我们提出了一种新的用于事件预测的时序知识图谱模型——对比事件网络(CENET)。CENET的关键思想是学习整个实体集的令人信服的分布,并在对比学习框架中从历史和非历史依赖性中识别重要实体。实验结果表明,CENET在大多数指标上都显著优于所有现有方法,尤其是在Hits@1的指标上。未来工作包括探索知识图中的对比学习能力,例如找到更合理的对比学习对(contrastive pairs)。

该工作目前已被AAAI 2023接收,论文和代码链接如下:

在这里插入图片描述

论文标题:

Temporal Knowledge Graph Reasoning with Historical Contrastive Learning

论文链接:

https://arxiv.org/abs/2211.10904

代码链接:

https://github.com/xyjigsaw/CENET

更多内容访问 omegaxyz.com
网站所有代码采用Apache 2.0授权
网站文章采用知识共享许可协议BY-NC-SA4.0授权
© 2023 • OmegaXYZ-版权所有 转载请注明出处

### 基于对比学习的推荐系统模型 #### 实现方法概述 基于对比学习的推荐系统通过构建正样本对和负样本对来训练模型,从而使得模型能够区分相似度高的物品与不相似的物品。这种方法不仅增强了模型对于用户偏好的理解能力,还提高了推荐系统的鲁棒性和准确性。 在具体实践中,通常会利用用户的交互历史作为输入特征,并从中抽取潜在因素用于形成表征向量。接着,在这些表征空间内定义距离度量函数(如余弦相似性),并通过最小化正样本之间的差异以及最大化负样本间的差距来进行优化[^2]。 #### 研究论文分析 一篇重要的研究工作探讨了如何将对比学习应用于序列化的商品推荐场景中。该研究表明,当把过去购买的商品视作上下文信息并以此为基础创建锚定点时,可以更有效地捕捉到长期依赖关系和个人兴趣变化趋势。此外,作者们提出了几种新颖的技术手段,比如动态采样机制和自适应权重分配方案,进一步提升了性能指标[^1]。 #### 示例代码展示 下面给出一段简单的Python代码片段,展示了怎样使用PyTorch框架实现一个基础版本的基于对比学习的二元分类器: ```python import torch from torch import nn, optim class ContrastiveLoss(nn.Module): def __init__(self, margin=1.0): super().__init__() self.margin = margin def forward(self, output1, output2, label): euclidean_distance = F.pairwise_distance(output1, output2) loss_contrastive = torch.mean((label) * torch.pow(euclidean_distance, 2)\ +(1-label)*torch.pow(torch.clamp(self.margin-euclidean_distance,min=0),2)) return loss_contrastive model = ... # Define your model here criterion = ContrastiveLoss() optimizer = optim.Adam(model.parameters(), lr=learning_rate) for epoch in range(num_epochs): for i, data in enumerate(training_loader): img0, img1 , label = data optimizer.zero_grad() output1,output2 = model(img0,img1) loss_contrastive = criterion(output1,output2,label) loss_contrastive.backward() optimizer.step() ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值