笔记整理:孙硕硕,东南大学硕士,研究方向为根因溯源。
Citation: Zhang N, Xie X, Chen X, et al. Reasoning Through Memorization: Nearest Neighbor Knowledge Graph Embeddings[J]. arXiv preprint arXiv:2201.05575, 2022.
大多数知识图谱补全方法(如TransE、ComplEx和RotatE)都是将实体和关系嵌入到向量空间,然后通过对这些向量利用预定义的评分函数获取预测三元组的知识嵌入技术。这些方法通过端到端训练,将所有相关知识隐式编码到参数神经网络的权值中。然而,这些方法的一个主要限制是,它们几乎不能通过几个罕见实体或在训练中未见过的新实体进行推理。
记忆增强神经网络的最新进展导致了分离计算处理和记忆存储的模块化架构的设计。那些基于记忆的方法(或非/半参数方法)已经成功地应用于任务,如语言模型和问答,它们具有表达能力和适应性。受此启发,本文提出了kNN-KGE,这是一种通过用k近邻(kNN)模型线性插值其实体分布扩展知识图嵌入的方法。
图1 kNN-KGE不仅利用softmax (MEM头)中的实体预测,而且还从实体描述和训练三元组构造的知识存储中检索实体
文章的贡献有:
1.第一个用于知识图嵌入的半参数方法。本文的工作为通过显式记忆提高知识图推理开辟了新的途径;2.本文引入了可以显式记忆罕见或新兴实体的kNN-KGE,这在实践中是必不可少的,因为KGs是不断变化的;3.在两个基准数据集上的实验结果表明,与基准数据集相比,本文的模型可以产生更好的性能,尤其有利于低资源的推理。
•模型框架
如下图2所示为本文提出的kNN-KGE模型框架。
图2 kNN-KGE模型框架
如图2所示,该模型包括三个模块,实体词汇扩展(图a),Masked实体模型(图b),以及从描述和三元组构建知识存储(图c)。首先提出了Masked实体模型和实体词汇扩展,将链接预测转换为实体预测任务。为了解决罕见或未知实体的问题,构建了一个知识存储,通过锚嵌入([MASK]输出的表示)来检索实体。最后,通过记忆推理完成模型输出。
•Masked实体模型
对于链接预测,给定一个不完整的三元组(ei, rj, ?),以前的研究利用KG嵌入或文本编码来表示三元组,并利用预定义的评分函数来表示这些向量。对于预先训练的编码器,那些方法如KG-BERT具有足够的泛化性和对不完全性的鲁棒性;然而,在推理中,他们必须为所有可能的三元组打分。在本文中,简单地利用掩码实体建模来进行链接预测,这使得模型能够像掩码语言模型(MLM)任务那样预测正确的实体 。具体地说,掩蔽实体建模可以减少使用不正确的实体、复杂的评分函数设计以及不存在负抽样的情况对所有三元组进行评分。换句话说,该模型只需要预测在尾部或头部缺失的实体。具体来说,给定一个三元组(?, rj, ek)和实体描述 ,我们将这个三元组和实体描述d串联起来,得到输入序列xt,如下:
通过掩蔽实体建模,该模型可以获得正确的实体ei。需要注意的是,掩蔽实体建模的过程简单而有效,并且一次推理的速度比之前的基于bert的模型(如StAR)更快。推论时间的详细比较见表1。由于plm通常利用字节对编码将序列转换为子字单元,使得实体表示与标记分离,并具有推理的挑战性。为了解决这个问题,本文建议对实体词汇表进行扩展,以便为每个惟一的实体使用嵌入。
表1 推理效率比较
实体词汇扩充:由于利用子词进行实体推理是不容易的,本文直接利用每个唯一实体的嵌入,就像常见的知识嵌入方法一样。具体来说,将实体 表示为语言模型词汇表中的特殊符号;因此,知识图推理可以重构为屏蔽实体预测任务,如图1和图2所示。为了获得这些实体嵌入(词汇中的特殊符号),利用实体描述来设计提示符,如“The description of [MASK] is that”来获得实体嵌入。给定一个实体描述 = (w1,…, wn),在描述的开头和结尾添加标记[CLS]和[SEP],构建输入序列xd,如下所示:
本文优化实体嵌入(随机初始化)通过预测实体ei在掩蔽位置和其他参数固定。在形式上,有:
•知识存储
通过上下文KG表示可以推断出缺失的三元组;他们倾向于推理罕见的或新兴的实体。受记忆增强神经网络最近进展的启发,本文构建知识存储来显式记忆实体。具体来说,主要从两个部分构建知识存储:代表语义信息的实体描述和代表结构知识的实体三元组。
值得注意的是,本文使用上下文KG表示训练的模型从两个方面构建知识存储,如图2所示;因此,罕见的或新兴的实体可以显式地表现在外部存储器中,具有灵活性和适应性。现将实施细节介绍如下:
代表语义信息的实体描述:设f(·)是将输入x中的实体e映射到由预训练LM计算的固定长度向量表示的函数。我们使用预先设计的提示符从实体描述中获取嵌入的实体。与§2中相同的过程一样,我们使用提示输入xd来获取嵌入的实体,并将其添加到知识存储中。这样,我们可以由描述(G中所有实体E的描述集D)构造知识库 。
代表结构知识的实体三元组:由于不同的关系关注同一实体的不同方面,因此使用不同的三元组来表示实体是很直观的。例如,给定三元组(Plato, lives, ?),模型可以通过KGs中的三元组(Plato, nationality, Greece)推理得到希腊。因此,我们也从三元组构建知识存储。我们将包含实体的所有训练三元组添加到知识存储中,以表示同一实体的不同方面。为了从三元组T中获得嵌入的实体,我们遵循§2中相同的程序来获得嵌入的实体ei。最后,我们可以用三元组(G中所有三元组T的集合)构造知识库。
实施:知识存储包含由描述和三元组构造的实体嵌入,可达数百万个实体嵌入。具体地说,给定训练三元组以及模型输入xt,我们定义一个键-值对(ki、vi)用于知识存储推理,ki的关键是向量表示的实体嵌入f (xt)和vi是目标实体ei值。我们利用开源库FAISS在高维空间中进行快速最近邻检索。
•记忆推理
对于知识图谱补全任务,给定一个头尾实体缺失的三元组,我们使用[MASK]输出的表示作为预测锚实体嵌入,在知识存储中找到最近的邻居。模型使用最后一个隐藏的输出向量[MASK]查询知识存储,根据距离函数d(·,·)得到的分布。
因此,我们可以得到的概率分布的基础上的k个最近邻的软最大值。对于模型检索到的每个实体,我们在知识存储中只选择一个最近的嵌入对象来表示该实体,因为我们的模型可能检索到同一个实体的多个嵌入对象。
为了得到目标实体,我们利用参数λ将最近邻分布与模型实体预测进行插值,得到最终的kNN-KG分布:
•实验相关细节
数据集:FB15k-237、WN18RR
在FB15k-237中,实体的描述来自于每个实体的Wikipedia页面的介绍部分。
在WN18RR中,每个实体对应一个词的意义,描述就是词的定义。
表1 数据集的统计数据
评价指标:Mean Reciprocal Rank (MRR) 和Hits@{1,3,10}
•实验结果
如下图3所示,本文提出的kNN-KGE可以在所有这些数据集上获得最先进的或具有竞争力的性能,特别是在Hits@1方面有显著的改进(WN18RR为0.443→0.525, FB15k237为0.252→0.280)。改进的主要原因是本文的掩蔽实体建模和知识存储提高了检索效果。注意,本文的方法可以记住KGs中的稀有实体,从而提高性能。从图4中,观察到kNN-KGE方法与之前最先进的方法相比,可以产生更好或可媲美的性能,这表明了知识存储的有效性kNN-KGE达到了最好的效果Hits@1,这进一步验证了通过记忆进行推理的优势。此外,本文的方法对于归纳设置是灵活的,因为新兴实体可以直接添加到知识存储中,这在实践中尤其相关,因为KGs可以扩展为描述新对象的三元组。
图3 WN18RR和FB15k-237的链路预测结果
图4 归纳设置下WN18RR和FB15k-237的链路预测结果
本文引入了kNN-KGE,它通过在测试时直接查询实体,在转导和归纳设置中都可以优于以往的知识图嵌入模型。在两个基准数据集上的实证结果证明了本文方法的有效性,特别是在低资源设置下。kNN-KGE的成功表明,显式记忆实体有助于知识图的推理。本文的方法简单有效,可以应用于任何不断发展的KG,而无需进一步的培训。未来的工作应该探索如何从知识存储中编辑和删除实体,并将我们的方法应用于其他任务,如问答。
OpenKG
OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。
点击阅读原文,进入 OpenKG 网站。