https://github.com/smartdataanalytics/literale
Knowledge Graph Embeddings learned from the structure and literals of knowledge graphs
https://github.com/smartdataanalytics/literale
Last synced: 5 months ago
JSON representation
Knowledge Graph Embeddings learned from the structure and literals of knowledge graphs
- Host: GitHub
- URL: https://github.com/smartdataanalytics/literale
- Owner: SmartDataAnalytics
- License: apache-2.0
- Created: 2018-01-16T07:13:23.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-21T22:48:55.000Z (almost 3 years ago)
- Last Synced: 2024-04-16T07:41:35.151Z (about 1 year ago)
- Language: Python
- Size: 52.2 MB
- Stars: 42
- Watchers: 19
- Forks: 16
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# LiteralE
Knowledge Graph Embeddings learned from the structure and literals of knowledge graphs.ArXiv link for the paper: [Incorporating Literals into Knowledge Graph Embeddings](https://arxiv.org/abs/1802.00934)
### Credits
This work is built on top of Tim Dettmers' ConvE codes: .
### Getting Started
**Note:** Python 3.6+ is required.
Note that we only support computation on GPU (CUDA). We have tested our code with Nvidia Titan Xp (12GB) and RTX 2080Ti (11GB). 6 or 8GB of memory should also be enough though we couldn't test them.
1. Install PyTorch. We have verified that version 1.2.0 works.
2. Install other requirements: `pip install -r requirements.txt`
3. Run `chmod +x preprocess.sh && ./preprocess.sh`
4. Install spacy model: `python -m spacy download en && python -m spacy download en_core_web_md`
5. Preprocess datasets (do these steps for each dataset in `{FB15k, FB15k-237, YAGO3-10}`):
1. `python main_literal.py dataset {FB15k, FB15k-237, YAGO3-10} epochs 0 process True`
2. Numerical literals: `python preprocess_num_lit.py --dataset {FB15k, FB15k-237, YAGO3-10}`
3. Text literals: `python preprocess_txt_lit.py --dataset {FB15k, FB15k-237, YAGO3-10}`### Reproducing Paper's Experiments
For DistMult+LiteralE and ComplEx+LiteralE:
```
python main_literal.py dataset {FB15k, FB15k-237, YAGO3-10} model {DistMult, ComplEx} input_drop 0.2 embedding_dim 100 batch_size 128 epochs 100 lr 0.001 process True
```For ConvE+LiteralE:
```
python main_literal.py dataset {FB15k, FB15k-237, YAGO3-10} model ConvE input_drop 0.2 hidden_drop 0.3 feat_drop 0.2 embedding_dim 200 batch_size 128 epochs 100 lr 0.001 process True
```For DistMult+LiteralE with numerical and textual literals:
```
python main_literal.py dataset {FB15k, FB15k-237, YAGO3-10} model DistMult_text input_drop 0.2 embedding_dim 100 batch_size 128 epochs 100 lr 0.001 process True
```NB: For base models, replace `main_literal.py` with `main.py`.