DeepGraphLearning / KnowledgeGraphEmbedding

MIT License
1.24k stars 264 forks source link

RotatE: this implementation vs GraphVite #14

Open AndRossi opened 4 years ago

AndRossi commented 4 years ago

Hi, thanks for developing RotatE! I was wondering, why are your results a bit different from the ones obtained by your other project https://graphvite.io/?

Edward-Sun commented 4 years ago

Hi, Thank you for your interest in both projects. The essential differences between this implementation and GraphVite implementation are listed as following:

  1. GraphVite uses ASGD rather than mini-batch SGD,the gradient information in GraphVite is relatively noisier.
  2. Considering the numeric stability in ASGD, GraphVite reduces the number of negative samples from 256 to 64.
  3. For a fair comparison with other large-scale KGE systems, the reported benchmark performance of GraphVite is undertrained. GraphVite can achieve better performance when using a single GPU and train for a longer time.
KiddoZhu commented 4 years ago

@AndRossi All the technical reasons have been pointed out in the author's comment above.

GraphVite is targeted at speed and scalability so there is slight difference in performance. Actually such gap could be easily covered by some hyperparameter hacking (e.g. double the dimension of embedding or training length), but we keep the original setting to make it a clean system work.

If you want to use KGE as an off-the-shelf tool, it is recommended to use GraphVite. If you want to develop new SOTA methods for KGE, it is recommended to use this repo.