HyTE
EMNLP 2018: HyTE: Hyperplane-based Temporally aware Knowledge Graph Embedding
Install / Use
/learn @malllabiisc/HyTEREADME
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
- Compatible with TensorFlow 1.x and Python 3.x.
- Dependencies can be installed using
requirements.txt.
Dataset:
- Download the processed version of WikiData and YAGO datasets.
- Unzip the
.zipfile indatadirectory. - Documents are originally taken from YAGO and Wikidata.
Usage:
- After installing python dependencies from
requirements.txt. time_proj.pycontains TensorFlow (1.x) based implementation of HyTE (proposed method).- To start training:
python time_proj.py -name yago_data_neg_sample_5_mar_10_l2_0.00 -margin 10 -l2 0.00 -neg_sample 5 -gpu 5 -epoch 2000 -data_type yago -version large -test_freq 5 - 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'
Evaluation:
- Validate after Training.
- Use the same model name and test frequency used at training as arguments for the following evalutation--
- For getting best validation MR and hit@10 for head and tail prediction:
python result_eval.py -eval_mode valid -model yago_data_neg_sample_5_mar_10_l2_0.00 -test_freq 5
- For getting best validation MR and hit@10 for relation prediction:
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:
- Test after validation using the best validation weights.
- First run the
time_proj.pyscript once to restore parameters and then dump the predictions corresponding the the test set.
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
- Now evaluate the test predictions to obtain MR and hits@10 using
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"
}
Related Skills
proje
Interactive vocabulary learning platform with smart flashcards and spaced repetition for effective language acquisition.
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
research_rules
Research & Verification Rules Quote Verification Protocol Primary Task "Make sure that the quote is relevant to the chapter and so you we want to make sure that we want to have it identifie
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
