Differentiable Learning of Logical Rules for Knowledge Base Reasoning
Clone or download
Latest commit 288f50a May 12, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
datasets add data and eval scripts May 11, 2018
eval add data and eval scripts May 11, 2018
src add files Nov 2, 2017
.gitignore update May 11, 2018
LICENSE Create LICENSE Nov 2, 2017
README.md Update README.md May 11, 2018

README.md

Neural LP

This is the implementation of Neural Logic Programming, proposed in the following paper:

Differentiable Learning of Logical Rules for Knowledge Base Reasoning. Fan Yang, Zhilin Yang, William W. Cohen. NIPS 2017.

Requirements

  • Python 2.7
  • Numpy
  • Tensorflow 1.0.1

Quick start

The following command starts training a dataset about family relations, and stores the experiment results in the folder exps/demo/.

python src/main.py --datadir=datasets/family --exps_dir=exps/ --exp_name=demo

Wait for around 8 minutes, navigate to exps/demo/, there is rules.txt that contains learned logical rules.

Evaluation

To evaluate the prediction results, follow the steps below. The first two steps is preparation so that we can compute filtered ranks (see TransE for details).

We use the experiment from Quick Start as an example. Change the folder names (datasets/family, exps/dev) for other experiments.

. eval/collect_all_facts.py datasets/family
python eval/get_truths.py datasets/family
python eval/evaluate.py --preds=exps/dev/test_predictions.py --truths=datasets/family/truths.pckl