Skip to content
EMNLP 2018: HyTE: Hyperplane-based Temporally aware Knowledge Graph Embedding
Branch: master
Clone or download
Latest commit d1f13e9 Jan 23, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE Initial commit Aug 27, 2018 code added Sep 16, 2018 code added Sep 16, 2018
requirements.txt code added Sep 16, 2018 code added Sep 16, 2018
time_proj.png code added Sep 16, 2018


HyTE: Hyperplane-based Temporally aware Knowledge Graph Embedding

Source code and dataset for EMNLP 2018 paper: HyTE: Hyperplane-based Temporally aware Knowledge Graph Embedding.

Overview of HyTE (proposed method). a temporally aware KG embedding method which explicitly incorporates time in the entity-relation space by stitching each timestamp with a corresponding hyperplane. HyTE not only performs KG inference using temporal guidance, but also predicts temporal scopes for relational facts with missing time annotations. Please refer paper for more details.


  • Compatible with TensorFlow 1.x and Python 3.x.
  • Dependencies can be installed using requirements.txt.


  • Download the processed version of WikiData and YAGO datasets.
  • Unzip the .zip file in data directory.
  • Documents are originally taken from YAGO and Wikidata.


  • After installing python dependencies from requirements.txt.
  • contains TensorFlow (1.x) based implementation of HyTE (proposed method).
  • To start training:
    python -data_type yago -margin 10 -model MODEL_NAME -test_freq 25 -<other_optins> ...
  • Some of the important Available options include:
  '-data_type' default ='yago', choices = ['yago','wiki_data'], help ='dataset to choose'
  '-version',  default = 'large', choices = ['large','small'], help = 'data version to choose'
  '-test_freq', 	 default = 25,   	type=int, 	help='testing frequency'
  '-neg_sample', 	 default = 5,   	type=int, 	help='negative samples for training'
  '-gpu', 	 dest="gpu", 		default='1',			help='GPU to use'
  '-name', 	 dest="name", 		help='Name of the run'
  '-lr',	 dest="lr", 		default=0.0001,  type=float,	help='Learning rate'
  '-margin', 	 dest="margin", 	default=1,   	type=float, 	help='margin'
  '-batch', 	 dest="batch_size", 	default= 50000,   	type=int, 	help='Batch size'
  '-epoch', 	 dest="max_epochs", 	default= 5000,   	type=int, 	help='Max epochs'
  '-l2', 	 dest="l2", 		default=0.0, 	type=float, 	help='L2 regularization'
  '-seed', 	 dest="seed", 		default=1234, 	type=int, 	help='Seed for randomization'
  '-inp_dim',  dest="inp_dim", 	default = 128,   	type=int, 	help='')
  '-L1_flag',  dest="L1_flag", 	action='store_false',   	 	help='Hidden state dimension of FC layer'


  • After trainig start validation/test. Use the same model name and test frequency used at training as arguments for the following evalutation--
  • For getting MR and hit@10 for head and tail prediction:
   python -model MODEL_NAME  -test_freq 25
  • For getting MR and hit@10 for relation prediction:
   python -model MODEL_NAME  -test_freq 25


  author = 	"Dasgupta, Shib Sankar
		and Ray, Swayambhu Nath
		and Talukdar, Partha",
  title = 	"HyTE: Hyperplane-based Temporally aware Knowledge Graph Embedding",
  booktitle = 	"Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing",
  year = 	"2018",
  publisher = 	"Association for Computational Linguistics",
  pages = 	"2001--2011",
  location = 	"Brussels, Belgium",
  url = 	""
You can’t perform that action at this time.