AnselCmy / MetaR

Source code for the EMNLP 2019 paper "Meta Relational Learning for Few-Shot Link Prediction in Knowledge Graphs"
Apache License 2.0
111 stars 19 forks source link

Difference between rel2candidates and rel2candidates_in_train #11

Closed yoyozz88 closed 6 months ago

yoyozz88 commented 1 year ago

Hi Mingyang,

请问rel2candidates和rel2candidates_in_train间的区别是什么? 我翻到前面别人有提过类似问题,您有解释rel2candidates_in_train是包含了background的relation和 train data的relation。但我疑惑rel2candidates里包含的relation是什么?以及为何要将它们合并?我猜是不是 test and validation relations的candidate entities?

期待回复,谢谢。

image
AnselCmy commented 11 months ago

这里可以参考论文里面关于In-Train和Pre-Train的设置(文章的Section 5.1)。Pre-Train的设置就像是GMatching论文中会使用background KG先训练一下entity的embedding,然后用单独的training task训练模型。而In-Train的设置是我们不需要提前在background KG上训练entity embedding,而是直接把原本background KG中的triple并入training task中,在训练的过程中直接学习entity embedding就可以。

shannon-paul commented 6 months ago

1.请问“把原本background KG中的triple并入training task中”,这一步是把所有background KG中的三元组并入吗?还是继续选取一部分few shot relation的三元组并入呢? 2.rel2candidates是什么含义呢,是dataset中和该relation一起出现过的实体都作为candidates吗? 3.e1rel_e2文件的含义是什么呢,是将三元组以e1rel_e2形式表示吗,那这部分数据是包含train,valid,test中的所有task的三元组吗,还是包含整个background KG的三元组呢? 期待您的回复,谢谢!:)

AnselCmy commented 6 months ago
  1. 是的,把所有的background KG三元组都放入了;
  2. rel2candidates保存了每一个relation可能的候选实体。用于在测试的时候做type constrain,从而减小链接预测的实体候选数量;
  3. e1rel_e2是由train,valid的三元组组成的,key为e1rel,value为e2的dict。其作用是在链接预测测试的时候,高效实现filter设置,快速filter掉在train和valid中出现的三元组,这些三元组不计入排序。
shannon-paul commented 6 months ago

感谢您的解答 :)