jinlong22 / Analysis-relational-patterns-and-SPA

This repository contains code for: A Comprehensive Study on Knowledge Graph Embedding over Relational Patterns Based on Rule Learning

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Quantitative analysis over relational patterns and SPA

This repository contains code for:

-A Comprehensive Study on Knowledge Graph Embedding over Relational Patterns Based on Rule Learning

Model Architecture

architecture

Dependencies

  • Python 3
  • Java >= 8
  • ipython==8.4.0
  • numpy==1.19.5
  • pytorch_lightning==1.5.10
  • PyYAML==6.0
  • requests==2.25.1
  • torch==1.8.0
  • tqdm==4.61.2
  • wandb==0.12.21
  • All experiments are performed with one RTX 3090 GPU.

Usage

  • src/:
    • SPA/: include SPA codes.
  • dataset/:
    • dataset/FB15K237/: FB15k-237 dataset resources
    • dataset/WN18RR/: WN18RR dataset resources
    • dataset/amie3.jar: rule mining tool AMIE3
    • dataset/classify.py: Quantitative analysis over relational patterns
  • output/:
    • output/link_prediciton/FB15K237/: model outputs for FB15k-237 dataset
    • output/link_prediciton/WN18RR/: model outputs for WN18RR dataset
  • logging/: include train logging files.
  • scripts/: include train and SPA shell files.
  • quantitative_analysis.py: Quantitative analysis over relational patterns
  • readme.md: Help

Training and Testing

Step1 Create a virtual environment using Anaconda and enter it

conda create -n spa python=3.8
conda activate spa

Step2 Install package

pip install torch==1.9.1+cu111 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt

Step3 Classify relations and triples with AMIE3

# python dataset/classify.py arg1 arg2 arg3
# arg1 is the dataset be chosen which FB15k237 and WN18RR are available
# arg2 is the PCA with AMIE3
# arg3 is the HC  with AMIE3
python dataset/classify.py FB15k237 0.8 0.5

Step4 Train and test KGE model

# FB15k-237
sh scripts/FreeBase/TransE_FB.sh
sh scripts/FreeBase/RotatE_FB.sh
sh scripts/FreeBase/HAKE_FB.sh
sh scripts/FreeBase/DistMult_FB.sh
sh scripts/FreeBase/ComplEx_FB.sh
sh scripts/FreeBase/DualE_FB.sh
sh scripts/FreeBase/PairRE_FB.sh
# WN18RR
sh scripts/WordNet/TransE_WN.sh
sh scripts/WordNet/RotatE_WN.sh
sh scripts/WordNet/HAKE_WN.sh
sh scripts/WordNet/DistMult_WN.sh
sh scripts/WordNet/ComplEx_WN.sh
sh scripts/WordNet/DualE_WN.sh
sh scripts/WordNet/PairRE_WN.sh

Step5 Quantitative analysis over relational patterns (please make sure the path of trained model is correct on checkpoint_dir and set --test_only in scripts/FreeBase/Model.sh.)

python quantitative_analysis.py

Step6 Combine KGE socre with SPA score (please make sure the path of trained model is correct on checkpoint_dir and set --test_only in scripts/FreeBase_SPA/Model.sh.)

# FB15k-237
sh scripts/FreeBase_SPA/TransE_FB.sh
sh scripts/FreeBase_SPA/RotatE_FB.sh
sh scripts/FreeBase_SPA/HAKE_FB.sh
sh scripts/FreeBase_SPA/DistMult_FB.sh
sh scripts/FreeBase_SPA/ComplEx_FB.sh
sh scripts/FreeBase_SPA/DualE_FB.sh
sh scripts/FreeBase_SPA/PairRE_FB.sh
# WN18RR
sh scripts/WordNet_SPA/TransE_WN.sh
sh scripts/WordNet_SPA/RotatE_WN.sh
sh scripts/WordNet_SPA/HAKE_WN.sh
sh scripts/WordNet_SPA/DistMult_WN.sh
sh scripts/WordNet_SPA/ComplEx_WN.sh
sh scripts/WordNet_SPA/DualE_WN.sh
sh scripts/WordNet_SPA/PairRE_WN.sh

Note:

  • Default .sh files have been set the best hyperparameters, you can open the .sh file for parameter modification.
  • Before Step5 and Step6, please make sure the path of trained model is correct on checkpoint_dir.
  • To obtain the SPA results over different relational patterns in Step6, you need to first replace the data in the test dataset with the data over specific patterns dataset.
# FB15k-237 with symmetric 
cat dataset/FB15K237/relation_classify/minhc_0.5_minpca_0.8_maxad_4/symmetric/num_constrain_0.txt > dataset/FB15K237/test.txt
# FB15k-237 with inverse 
cat dataset/FB15K237/relation_classify/minhc_0.5_minpca_0.8_maxad_4/inverse/num_constrain_0.txt > dataset/FB15K237/test.txt
# FB15k-237 with multiple 
cat dataset/FB15K237/relation_classify/minhc_0.5_minpca_0.8_maxad_4/multiple/num_constrain_0.txt > dataset/FB15K237/test.txt
# FB15k-237 with compositional 
cat dataset/FB15K237/relation_classify/minhc_0.5_minpca_0.8_maxad_4/compose2/num_constrain_0.txt > dataset/FB15K237/test.txt

# WN18RR with symmetric 
cat dataset/WN18RR/relation_classify/minhc_0.5_minpca_0.8_maxad_4/symmetric/num_constrain_0.txt > dataset/WN18RR/test.txt
# WN18RR with inverse 
cat dataset/WN18RR/relation_classify/minhc_0.5_minpca_0.8_maxad_4/inverse/num_constrain_0.txt > dataset/WN18RR/test.txt
# WN18RR with multiple 
cat dataset/WN18RR/relation_classify/minhc_0.5_minpca_0.8_maxad_4/multiple/num_constrain_0.txt > dataset/WN18RR/test.txt
# WN18RR with compositional 
cat dataset/WN18RR/relation_classify/minhc_0.5_minpca_0.8_maxad_4/compose2/num_constrain_0.txt > dataset/WN18RR/test.txt

About

This repository contains code for: A Comprehensive Study on Knowledge Graph Embedding over Relational Patterns Based on Rule Learning


Languages

Language:Python 87.4%Language:Shell 12.6%