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

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

摘要

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

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

正文

模型结构

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

负采样

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方法擅长捕获语义相关性,但可能无法完全捕获这种归纳偏差。提出了一种简单的基于图的重新排序策略:基于训练集的图,如果候选尾实体 t i t_i ti在头部实体h的k-hop邻居 E k ( h ) \mathcal{E}_k(h) Ek(h)中,则将候选尾实体ti的得分提高 α \alpha α≥0。公式如下:
SimKGC: Simple Contrastive Knowledge Graph Completion with Pre-trained Language Models_第4张图片

损失函数

损失函数采用InfoNCE:
SimKGC: Simple Contrastive Knowledge Graph Completion with Pre-trained Language Models_第5张图片

实验

数据集:
SimKGC: Simple Contrastive Knowledge Graph Completion with Pre-trained Language Models_第6张图片
实验结果:
SimKGC: Simple Contrastive Knowledge Graph Completion with Pre-trained Language Models_第7张图片
SimKGC: Simple Contrastive Knowledge Graph Completion with Pre-trained Language Models_第8张图片
从整体上看负采样其实IB就可以了,对于常规的推理方式增加另外两种其实影响不大,但是对于wikidata5M-ind影响比较大。

结果分析

SimKGC: Simple Contrastive Knowledge Graph Completion with Pre-trained Language Models_第9张图片
可以看出来大量负样例数量和InfoNCE是模型变好的关键。并且负样例数量多效果更好。其实损失函数变好的原因一定程度是超参数 τ \tau τ引起的。
SimKGC: Simple Contrastive Knowledge Graph Completion with Pre-trained Language Models_第10张图片
但是应该是在一个范围内增多,我猜测或者根据常识超过一定阈值效果应该会变差。
SimKGC: Simple Contrastive Knowledge Graph Completion with Pre-trained Language Models_第11张图片
进一步分析re-ranking 的影响,发现其实影响有限

结论

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

你可能感兴趣的:(知识图谱,语言模型,人工智能)