Home

Awesome

HyTE

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.

Dependencies

Dataset:

Usage:

'-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'

Evaluation:

   python result_eval.py -eval_mode valid -model yago_data_neg_sample_5_mar_10_l2_0.00 -test_freq 5
   python result_eval_relation.py -eval_mode valid -model yago_data_neg_sample_5_mar_10_l2_0.00  -test_freq 5

The Evaluation run will output the Best Validation Rank and the corresponding Best Validation Epoch when it was achieved. Note them down for obtaining results on test set.

Testing:

 python time_proj.py -res_epoch `Best Validation Epoch` -onlyTest -restore -name yago_data_neg_sample_5_mar_10_l2_0.00 -margin 10 -l2 0.00 -neg_sample 5 -gpu 0 -data_type yago -version large
python result_eval.py -eval_mode test -test_freq `Best Validation Epoch` -model yago_data_neg_sample_5_mar_10_l2_0.00

Citing:

InProceedings{D18-1225,
  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 = 	"http://aclweb.org/anthology/D18-1225"
}