Neph0s / LMKE

Code for the paper 'Language Models as Knowledge Embeddings'
53 stars 7 forks source link

head, tail? #4

Closed yinjiexidian closed 1 year ago

yinjiexidian commented 1 year ago

你好,我想问一下在一个新数据集上为什么预测头得分很低而预测尾效果很好呢? MR 22515.76220 MRR 0.00831 hits 1 0.00180 3 0.00520 10 0.01660, Setting: raw Target: head MR 21534.04280 MRR 0.01027 hits 1 0.00220 3 0.00700 10 0.02340, Setting: filter Target: head 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 5000/5000 [01:58<00:00, 42.20it/s] MR 146.70980 MRR 0.75092 hits 1 0.64540 3 0.83660 10 0.93000, Setting: raw Target: tail MR 146.70980 MRR 0.75092 hits 1 0.64540 3 0.83660 10 0.93000, Setting: filter Target: tail

Neph0s commented 1 year ago

Did this phenomenon exist when other methods are applied? It's common that the results of predicting over heads / tails differ largely (say, MRR 0.6 for tail and 0.2 for head), because the actual candidate head / tail entities are limited. Say, models may learn to choose head from 10000 candidates and tail from 1000 candidates. However, the difference in your case is still too significant. It might result from statistics of your dataset.

yinjiexidian commented 1 year ago

感谢您的回答,我有另外的一个问题,我看预测tail的过程中用到了groundtruth,如果我的test中只有头实体和关系,尾实体是缺失的,我该怎么输出预测结果,或者,这个需要改哪里才可以预测呢?

Neph0s commented 1 year ago

你可以随机使用一个实体替代expects[0]填入,来进行预测。 不过非常抱歉的是,目前的代码版本存在一个问题,对模型表现存在影响,我们正在修正该问题并进行相应实验,之后会进行相应的更新。

3

建议你先参考与我们相同的工作的代码https://github.com/intfloat/SimKGC

yinjiexidian commented 1 year ago

是的,我将tail全部用0代替了,但是预测出来的hit(1,3,10),mrr几乎都是0

Neph0s commented 1 year ago

原来如此。非常抱歉由我们的代码问题造成的问题,我们会尽快修复这一问题。

YongqingQI commented 1 year ago

哪个数据集呀