任务描述
知识图谱表示学习用于将符号表示的知识图谱映射到向量空间中,并且保留原本知识图谱中的语义信息。知识图谱表示学习当前已经被应用在大量的知识图谱相关的任务中,如链接预测、实体分类以及辅助各种知识图谱相关的下游任务。在开放环境下,知识图谱本身是动态变化的,并且新的知识图谱也在不断的构建当中,所以往往会有新的实体出现。但新实体的出现会让大多的传统知识图谱表示方法无法解决,因为他们大多假设测试阶段的实体在训练阶段见过,即直推式(transductive)设定,而很难直接应用到测试集中出现新实体的归纳式(inductive)场景。
因此,本子任务评估模型在测试阶段对新实体之间的关系进行预测。在训练阶段,会给定一个知识图谱用于训练(Training KG);在测试阶段有两部分的三元组,且这些三元组中的实体在训练阶段中都没有出现过,分别称为支持集(Support Set)和查询集(Query Set)。支持集用于提供新出现实体的结构关系,最终模型在查询集上进行测试。
任务目标
在查询集中,给定一个头实体关系对(h, r),以及相应的尾实体的候选集合,模型输出候选集合的排序。候选尾实体越有可能是该(h, r)所连接的尾实体,排序越靠前。
输入 | 输出 |
---|---|
头实体、关系对(h,r);尾实体候选集合 | 尾实体候选集合排序 |
首先模型可以在训练数据集上进行训练,训练三元组由编号(index)表示,例如:
0 0 1
2 1 3
4 2 5
6 3 7
8 4 9
其中每一行表示一个三元组,每一行三个数字分别表示训练集中的头实体、关系、尾实体的编号。
训练结束后,模型会在测试数据集上进行测试。根据问题定义,测试数据集中的实体都是训练阶段没有见过的,所以测试集中实体编号和训练集实体编号无法对应,是单独重新编号的,而测试集中关系编号是可以和训练集对应的。
在测试阶段,模型可以利用测试集合中的支持集(support),其格式如下:
0 3 1
2 18 3
4 13 5
6 17 7
8 7 9
但模型并不能在支持集上进行训练及更新。在模型观测到包含新实体的支持集后,模型需要对这些新实体进行链接预测,具体来说,就是完成相应的查询集中的尾实体预测问题,格式如下:
{
"0": {
"head_rel": [1299, 13],
"tails": [2935, 328, 3285, ... ...]
}
"1": {
"head_rel": [2818, 13],
"tails": [209, 1343, 2874, ... ...]
}
}
对于每一个需要被测试的查询三元组,数据会给出需要被预测尾实体的头实体和关系(“head_rel”),以及尾实体的候选集合(“tails”),模型需要给出候选尾实体的排序,越有可能是真实的尾实体,排序越靠前。最终模型输出的结果如下
{
"0": [345, 4356, 23455, ... ...]
"1": [2132, 1324, 4312, ... ...]
}
该结果为查询集中对于每个样例进行尾实体排序后的结果。
数据集介绍
初赛训练集&测试集
训练数据集合,包含26874个三元组,46个关系及4050个实体
训练集:train.txt,每行为一个三元组(head, relation ,tail),其中用数字表示实体和关系的编号,格式如下:
0 3 1
2 18 3
4 13 5
6 17 7
8 7 9
测试数据集合,包含3533个实体,43个关系,其中支持集有11960个三元组,查询集有2110个三元组
支持集:test_support.txt,每行表示一个三元组(head, relation ,tail),其中用数字表示实体和关系的编号。这里的关系编号和训练集合是一致且对应的,但实体编号并不对应。测试集中的实体都是训练集中没见过的新实体。格式和train.txt类似。
查询集:test_query.json,每一个训练样例中,“head_rel”。这里的实体编号和支持集中的一致。格式如下
{
"0": {
"head_rel": [1299, 13],
"tails": [2935, 328, 3285, ... ...]
}
"1": {
"head_rel": [2818, 13],
"tails": [209, 1343, 2874, ... ...]
}
}
复赛测试集
和初赛测试集格式一致,包含3533个实体,42个关系,其中支持集有11449个三元组,查询集有2020个三元组
评测指标
本次任务采用MRR评估对尾实体的预测,MRR值越高,说明对正确尾实体的排序越高,预测越准确。MRR的定义如下:
其中N是测试集中查询集合的大小,为第N个测试头尾实体对所预测的候选尾实体排序中,正确尾实体的排序位置。
基线模型
Baseline模型可以采用基于子图采样的方法GraIL[1],该方法将通过编码头实体和候选尾实体之间的子图结构,从而预测头实体和某个候选尾实体之间是否存在具体的关系。我们提供的基线代码位于[2]。
[1]KomalK.Teru,EtienneG.Denis,WilliamL.Hamilton:Inductive Relation Prediction by Subgraph Reasoning. ICML 2020:9448-9457
[2]GitHub - zjukg/NeuralKG at ind
任务提交说明
比赛期间,参赛队伍通过天池平台下载数据,本地调试算法,在线提交结果,结果文件命名为"参赛队名称_result.json",以utf-8编码格式保存。以json格式进行提交,每一个样例对应测试集的查询集合中的样例,并给出该查询样例的预测出的尾实体排序,格式如下
{
"0": [345, 4356, 23455, ... ...]
"1": [2132, 1324, 4312, ... ...]
}
同时需要注意模型不允许在测试集的支持集上进行训练,只能在训练集上训练。参赛代码最终会进行相关审核。
最终提交文件要求
复赛结束后,组委会将联系获奖参赛队伍提交代码和模型:1)入口运行文件;2)代码及说明;3)方法描述文档。以上三个文件需在复赛结束后3天内发送至邮箱:aliopenkg@service.alibaba.com。邮件的标题为:"天池-CCKS2023任务2-最终提交文件-参赛队名称"。代码及其文档需打包成一个文件(tar,zip,gzip,rar等均可),用"code.归纳式推理.参赛队伍名称"命名,要求提交所有的程序代码及相关的配置说明,确保程序能够正确运行,且所得结果与复赛结果相符。方法描述文档用"归纳式推理.参赛队伍名称.pdf"命名,包含算法描述及参数设置,需用pdf格式存储,页数不超过10页。相关代码建议上传到代码托管平台。