本来这个论文用来组会讲的,但是冲突了,没怎么讲,记录一下供以后学习。
按照我的理解简单概述一下这篇论文的创新点
根据目前对一些模型的了解,我其实也没看多少篇基于大模型的知识图谱补全论文,截至到目前,比较系统的接触的是这篇论文。
常规的知识图谱补全方式,通过实体和关系预测确实的实体,如(head, relation, ?)or (?,relation, tail)。通常是采用一些方式结合实体和关系,来和所有的候选实体进行语义相似度进行计算,如ConvE:
还有一些论文则是,将三元组同时作为输入进行整个三元组进行计算出一个得分,在评估的时候破坏三元组,计算整个三元组的得分, 如ConvKB:
以上两种方式,算是一种比较传统的方式,进行排序,选择正确的三元组作为结果。通常采用MR, MRR, Hits@K,作为常规的评估指标。
以我目前对大模型结合知识图谱补全的方式,我理解大模型没法像上述方式进行知识图谱补全(应该是有其他的方式,我没太仔细看)。这篇论文,我理解的是它的本质是把知识图谱补全问题转化为二分类的问题。如下图所示:
其实是给予一个三元组,判断这个三元组是否是正确的三元组,如果是正确的三元组,通过prompt回答一个Yes,否则是No.的形式,进行知识图谱补全,和常规的方式略有区别。
下面是截取的数据形式:
{
"instruction": "Given a triple from a knowledge graph. Each triple consists of a head entity, a relation, and a tail entity. Please determine the correctness of the triple and response True or False.",
"input": "\nThe input triple: \n( nucleic acid nucleoside or nucleotide, affects, mental or behavioral dysfunction )\n",
"output": "True",
"embedding_ids": [
31,
27,
89
]
},
{
"instruction": "Given a triple from a knowledge graph. Each triple consists of a head entity, a relation, and a tail entity. Please determine the correctness of the triple and response True or False.",
"input": "\nThe input triple: \n( nucleic acid nucleoside or nucleotide, affects, fully formed anatomical structure )\n",
"output": "False",
"embedding_ids": [
31,
27,
83
]
},
我粗略的理解,为了实现label平衡的状态,负样例需要针对正样例进行破坏即可,从而实现label实现样例比较均衡的状态。模型的评估指标也就是常规的二分类的评估指标。
常规的LLM没有充分利用知识图谱的结构信息,该论文则是结合文本信息和三元组信息进行微调,模型结构如下:
以上就是模型的输入,宏观上将输入包含两个部分,结构信息和文本信息。结构信息未为Adapter,进行微调类似于大模型的微调方式P-tuning。
数据集统计:
其实就是一个正例子,一个负例子
对于常规的方式则是设置一个得分的阈值进行二分类。
消融实现则是探究,常规的KGC方式进行预训练的影响, random则是探索采用随机的嵌入方式的影响。
本论文实现了,大模型和知识图谱结构信息结合的论文,只训练很少的参数。