SimKGC: Simple Contrastive Knowledge Graph Completion with Pre-trained Language Models

文章介绍了SimKGC论文,该模型利用实体描述增强知识图谱补全,通过结合in-batch、pre-batchNegatives和self-negatives负采样,以及InfoNCE损失函数。尽管模型结构非创新,但在WN18RR上效果显著,但在FB15k-237上的表现欠佳,可能因数据质量问题。

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

这篇论文是去年看的论文,但是不太了解对比学习,导致看这篇论文感觉没啥特色(当时比较菜)。最近由于找工作相对了解一下对比学习相关内容,重新回顾了这篇论文,特此记录一下。

摘要

目前,比较流行的知识图谱补全模型,通常喜欢使用结构化的信息即(h,r,t)的这种形式进行知识图谱补全。但是这种方式其实可以使用的特征有限,增加额外信息-实体描述(或者叫文本信息,我习惯性交实体描述,差不多一个意思,不要纠结),可以提高模型的表达或者特征。目前在WN18RR数据集上评分最高的模型,就基于实体描述信息,为什么只提WN18RR,因为在FB15k-237上,效果不咋地,后面细说。
开始进入正题,讲一下论文SimKGC,这篇论文就是基于实体描述的知识图谱补全模型,这篇论文相比于之前的模型,在模型结构上并没有什么创新。主要创新点为一下三个方面:

  • 结合三种负采样:in-batch、pre-batch Negatives、Self-Negatives
  • 损失函数进行优化:采用对比损失函数InfoNCE

正文

模型结构

目前,利用文本描述,通常利用bert作为基础的模型,通常模型的输入为实体和关系的文本信息,将文本信息替换为三元组的实体和关系。如KG-bert:
在这里插入图片描述
但这这么做的时间复杂度较高,因为bert的时间复杂度是O(n2)O(n^2)O(n2),一些论文如StAR则是拆开hrt为,hr 和t。如下图所示:
在这里插入图片描述
在这篇论文中SimKGC同样采用ehre_{hr}ehr=bert(h, r),ete_tet=bert(t), 进行余弦相似度,计算得分。
在这里插入图片描述
优化目标为:
在这里插入图片描述

负采样

In-batch Negatives(IB)

本质上就是采用同一个Batch中的其他实体作为负样例

Pre-batch Negatives (PB)

因为IB和Batch size 大小有关,所以如何想要更大的负采样数量,要么采用其他方式,要么就是增大Batch size,但是增大batch size有的模型可能会影响模型性能,所以提出Pre-batch Negatives (PB)。它则是记录之前的1-2batch,根据需要,或许可以记录更多的batch的数据作为负样例。

Self-Negatives (SN)

除了增加负采样的数量,挖掘hard negatives对于提高对比表征学习也很重要。对于尾部实体预测(h, r, ?),基于文本的方法倾向于给头部实体h分配高分,这可能是由于高度的文本重叠。为了缓解这个问题,我们提出使用头部实体h作为hard negatives的自我否定,可以减少模型对虚假文本匹配的依赖即认为(h, r, h)是错误的。
采用以上三种方式作为负采样的结果,进行模型训练。

Re-ranking

知识图谱通常表现出空间局部性,距离较近的实体比距离较远的实体更有可能相互关联。基于文本的KGC方法擅长捕获语义相关性,但可能无法完全捕获这种归纳偏差。提出了一种简单的基于图的重新排序策略:基于训练集的图,如果候选尾实体tit_iti在头部实体h的k-hop邻居Ek(h)\mathcal{E}_k(h)Ek(h)中,则将候选尾实体ti的得分提高α\alphaα≥0。公式如下:
在这里插入图片描述

损失函数

损失函数采用InfoNCE:
在这里插入图片描述

实验

数据集:
在这里插入图片描述
实验结果:
在这里插入图片描述
在这里插入图片描述
从整体上看负采样其实IB就可以了,对于常规的推理方式增加另外两种其实影响不大,但是对于wikidata5M-ind影响比较大。

结果分析

在这里插入图片描述
可以看出来大量负样例数量和InfoNCE是模型变好的关键。并且负样例数量多效果更好。其实损失函数变好的原因一定程度是超参数τ\tauτ引起的。
在这里插入图片描述
但是应该是在一个范围内增多,我猜测或者根据常识超过一定阈值效果应该会变差。
在这里插入图片描述
进一步分析re-ranking 的影响,发现其实影响有限

结论

这篇文章主要的想法从实体描述方面,进行负采样角度和损失函数方面提出的一个模型,其实我理解可以看作一种策略的尝试。填一下坑,就是基于实体描述的方式补全知识图谱,通常在FB15k-237上的效果很差,我猜测因为FB15k-237的文本描述质量差或者与bert训练的语料不适配。有个论文基于大模型进行FB15k-237实体描述进行总结重要信息,Hits@10指标提升至56左右。

### 预训练的视觉与语言Transformer模型概述 预训练的视觉与语言Transformer模型旨在通过联合建模图像和文本数据,提升跨模态任务的表现。这类模型通常利用大规模多模态数据进行无监督或弱监督预训练,并在下游任务中展现出卓越性能,例如视觉问答(VQA)、图像字幕生成(Image Captioning)以及图文检索等。 #### ALIGN ALIGN是一种基于对比学习框架的视觉与语言预训练模型[^1]。它通过最大化正样本对之间的相似度并最小化负样本对之间的相似度来优化表示学习。这种设计使得ALIGN能够在多种跨模态任务中取得优异表现。 #### CLIP (Contrastive Language-Image Pre-training) CLIP采用了一种双塔架构,分别编码图像和文本特征,并通过对比损失函数进行联合训练。这种方法不仅提高了模型泛化能力,而且显著降低了对标注数据的需求。 #### LXMERT (Learning Cross-modality Encoder Representations from Transformers) LXMERT专注于构建强大的跨模态交互机制。其核心思想在于将独立的视觉和语言编码器结合起来,形成统一的交叉注意力模块。这一特性使LXMERT特别适合处理复杂的视觉推理问题。 #### BLIP (Bootstrapping Language-Image Pre-training) BLIP引入了一个新颖的自举策略,即交替更新文本到图像和图像到文本两个方向上的生成模型参数。这种方式有效缓解了传统单向生成模式中存在的偏差累积现象。 #### ViLBERT (Vision-and-Language BERT) ViLBERT扩展了经典的BERT结构至多模态场景下,支持同时接收图片区域特征及相应描述作为输入。通过对齐不同粒度的信息单元,ViLBERT实现了更加精细的语义理解水平。 #### VisualBERT VisualBERT继承了原始BERT的设计理念,但在具体实现上增加了对于对象检测框位置信息的支持。这样的改动有助于捕捉更多关于物体间关系的知识点。 #### OSCAR OSCAR结合了目标检测技术和掩码语言建模技术,从而增强了对细粒度概念的理解能力和表达精度。 #### ViLT (Vision-and-Language Transformer) 不同于其他依赖外部工具提取高级视觉表征的方法,ViLT直接操作像素级数据完成端到端训练流程。如此做法既简化了整体管道又提升了计算效率。 #### OFA OFA是一个多功能的一体化解方案,能够无缝切换于多项异构型任务之间执行高效转换运算。凭借出色的迁移学习效果,OFA成为当前领域内的标杆之作之一。 #### ALBEF ALBEF提出了全新的局部全局一致性约束条件,进一步加强了两种媒介形式间的联系紧密程度。借助这项创新举措,ALBEF成功突破以往同类产品存在的瓶颈限制。 ```python import torch from transformers import AutoTokenizer, AutoModelForPreTraining tokenizer = AutoTokenizer.from_pretrained("model_name") model = AutoModelForPreTraining.from_pretrained("model_name") text = "An image of a cat" image_features = ... # Extracted features from an image processing library inputs = tokenizer(text, return_tensors="pt", max_length=512) outputs = model(input_ids=inputs['input_ids'], attention_mask=inputs['attention_mask'], pixel_values=image_features) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值