KGE(knowledge graph embedding) 模型用低维的嵌入向量表示知识图谱中的每个实体和关系。这种方法经常用于知识图谱链接预测和基于不完整知识图谱的问答。
现存问题
KGEs通常会为图中的每个实体创建一个嵌入,由于现实中的图谱有数百万个实体,这就导致模型规模较大。对于下游任务,这些原子实体表示通常需要集成到一个多阶段管道中,这限制了它们的实用价值。
解决方法
本文提出了一个现成的transformer 编码器-解码器模型,作为一个可扩展和通用的KGE模型实现KG链路预测和不完全KG问答的最好结果。其主要将KG链路预测作为一个序列对序列的任务,并将先验KGE方法中的三重评分方法与自回归解码交换。与传统的KGE模型相比,这种简单却很有效的方法可以在保持推断时间可控的同时,将模型大小减少98%。
本文提出的方法称作KGT5。用序列到序列的方法实现了 (1) 可扩展性——通过使用组合实体表示和自回归解码(而不是对所有实体打分)进行推断。 (2) 质量——我们在两个任务上获得最先进的性能。 (3) 通用性——同一模型可用于多个数据集上的KGC和KGQA 。(4) 简单——我们使用现成的模型获得所有结果,没有任务或特定于数据集的超参数调优。
链接预测(link prediction)是通过以(s, p, ?)和(?, p,o)形式回答queries,以预测知识图谱中丢失的三元组。这通常是使用知识图嵌入(KGE)模型来完成的。
当所使用的知识图谱不完整时,依然可以利用KGE实现KGQA。
将链接预测和问答都视为序列到序列的任务。然后,我们在这些任务上训练一个简单的编码器-解码器transformer, 它与T5-small有相同的架构,但没有预训练的权重。在进行问答训练时,我们利用链接预测目标进行正则化。
对于链接预测,我们需要一个实体/关系与其文本表示之间的一对一映射。对于基于wikidata的KGs,我们使用规范的实体和关系作为其文本表示,然后使用消除歧义方案,将文本描述和唯一id附加到名称。对于仅用于QA的数据集,我们不强制一对一映射,因为在这种情况下,不必要的消除歧义甚至会损害模型的性能。
比如:查询 (barack obama, born in, ?) ---->>>> 模型输入"predict tail: barack obama | born in",输出"united states"
为了训练KGT5,我们需要一组(输入,输出)序列。利用teacher forcing和交叉熵损失对KGT5进行训练。 与标准的KGE模型不同,我们并没有用显式的负采样训练。在解码的每一步,模型都会生成 可能成为下一个分词 的概率分布。在训练时,该分布由于与使用交叉熵损失的“真实”分布(即下一个真实token的概率为1,其他所有token的概率为0)不同而受到惩罚。
注:teacher-forcing 在训练网络过程中,每次不使用上一个state的输出作为下一个state的输入,而是直接使用训练数据的标准答案(ground truth)的对应上一项作为下一个state的输入。
给定一个查询query (s,p,?), 传入KGt5模型之前将其转化为文本表示的形式。然后,从decoder 取样一些序列,并将其映射到它们的实体id。通过使用这样的生成模型,我们能够用高置信度估计t前m个模型预测,而不必像传统的KGE模型那样对KG中的所有实体打分。对于每个被解码的实体,我们为其分配一个分数,该分数等于解码其序列的(log)概率。这为我们提供了一组(实体,分数)对。为了计算与传统KGE模型相比较的最终排名指标,我们为抽样过程中没有遇到的所有实体分配了一个−∞的分数。
对于KGQA,我们使用链路预测任务在背景KG上对模型进行预训练。然后对相同的模型进行微调,用于问答。我们将一个新的任务前缀(predict answer:)与输入的问题连接起来,并将答案实体的提及字符串定义为输出。这种统一的方法允许我们将KGT5应用于任何KGQA数据集,而不考虑问题的复杂性,并且不需要实体链接等子模块。
为了在QA微调期间(特别是在具有小KGs的任务上)防止过拟合,我们设计了一个正则化方案:我们从背景KG中随机采样链接预测序列到每个批次,这样一个批次包含相等数量的QA和链接预测序列。对于推断,我们使用束搜索和基于邻域(neighbourhood-based)的重新排序来获得模型的预测,这是一个单一的答案。