Giter VIP home page Giter VIP logo

kgpolicy's Introduction

Knowledge Graph Policy Network

This is our Pytorch implementation for the paper:

Xiang Wang, Yaokun Xu, Xiangnan He, Yixin Cao, Meng Wang and Tat-Seng Chua (2020). Reinforced Negative Sampling over Knowledge Graph for Recommendation. Paper in arXiv. In WWW'2020, Taipei, Taiwan, China, April 20–24, 2020.

Author: Dr. Xiang Wang (xiangwang at u.nus.edu) and Mr. Yaokun Xu (xuyaokun98 at gmail.com)

Introduction

Knowledge Graph Policy Network (KGPolicy) is a new negative sampling framework tailored to knowledge-aware personalized recommendation. Exploiting rich connections of knowledge graph, KGPolicy is able to discover high-quality (i.e., informative and factual) items as negative training instances, thus providing better recommendation.

Citation

If you want to use our codes and datasets in your research, please cite:

@inproceedings{KGPolicy20,
  author    = {Xiang Wang and
               Yaokun Xu and
               Xiangnan He and
               Yixin Cao and
               Meng Wang and
               Tat{-}Seng Chua},
  title     = {Reinforced Negative Sampling over Knowledge Graph for Recommendation},
  booktitle = {{WWW}},
  year      = {2020}
}

Reproducibility

To demonstrate the reporducibility of the best performance reported in our paper and faciliate researchers for development and testing purpose, we provide the instructions as follows. Later, we will release the other baselines.

1. Data and Source Code

We follow our previous work, KGAT, and you can get the detailed information about the datasets in KGAT.

i. Create a new directory for this repo

➜ mkdir KG-Policy
➜ cd KG-Policy

ii. Get dataset and pretrain model

➜ wget https://github.com/xiangwang1223/kgpolicy/releases/download/v1.0/Data.zip
➜ unzip Data.zip

iii. Get source code

➜ git clone https://github.com/xiangwang1223/kgpolicy.git

2. Environment

Please use conda to manage the environment.

i. Switch to source code dir

➜ cd kgpolicy

ii. Create a new environment

➜ conda create -n geo python=3.6
➜ conda activate geo

iii. Ensure python version is 3.6. Then install all requirements for this project.

➜ bash setup.sh

Note that: Sometimes there is mismatch between cuda version and torch_geometric version. If you encounter this problem, please try to install a correct cuda version. If you prefer to install all dependences by yourself, please ensure torch_geometric is properly installed. After doing these, now it's ready to train KG-Policy model.

3. Train

i. Train KG-Policy on last-fm. Also, KG-Policy can be trained on other two datasets, amazon-book and yelp2018, check it out in Data.

➜ python main.py

To run on other two datasets

➜ python main.py --regs 1e-4 --dataset yelp2018 --model_path model/best_yelp.ckpt 
➜ python main.py --regs 1e-4 --dataset amazon-book --model_path model/best_ab.ckpt 

Note that: The default regs is 1e-5, while we use 1e-4 as regs when training amazon-book and yelp2018. There are also some others parameters can be tuned for a better performance, check it out at common/config/parser.py.

4. Experiment result

To be consistent to our KGAT, we use the same evaluation metrics (i.e., Recall@K and NDCG@K), use the same codes released in KGAT, and report them in our KGPolicy paper. We note that this implementation of NDCG@K is different from the standard definition, while they reflect similar trendings. Hence here we also report the results in terms of the standard NDCG@K* and please check the implementation at common/test.py.

i. Dataset: last-fm

Model Recall@20 NDCG@20
RNS 0.0687 0.0584
DNS 0.0874 0.0746
IRGAN 0.0755 0.0627
KG-Policy 0.0957 0.0837

ii. Dataset: yelp2018

Model Recall@20 NDCG@20
RNS 0.0465 0.0298
DNS 0.0666 0.0429
IRGAN 0.0538 0.0342
KG-Policy 0.0746 0.0489

iii. Dataset: amazon-book

Model Recall@20 NDCG@20
RNS 0.1239 0.0647
DNS 0.1460 0.0775
IRGAN 0.1330 0.0693
KG-Policy 0.1609 0.0890

Acknowledgement

Any scientific publications that use our codes and datasets should cite the following paper as the reference:

@inproceedings{KGPolicy20,
  author    = {Xiang Wang and
               Yaokun Xu and
               Xiangnan He and
               Yixin Cao and
               Meng Wang and
               Tat{-}Seng Chua},
  title     = {Reinforced Negative Sampling over Knowledge Graph for Recommendation},
  booktitle = {{WWW}},
  year      = {2020}
}

Nobody guarantees the correctness of the data, its suitability for any particular purpose, or the validity of results based on the use of the data set. The data set may be used for any research purposes under the following conditions:

  • The user must acknowledge the use of the data set in publications resulting from the use of the data set.
  • The user may not redistribute the data without separate permission.
  • The user may not try to deanonymise the data.
  • The user may not use this information for any commercial or revenue-bearing purposes without first obtaining permission from us.

kgpolicy's People

Contributors

xiangwang1223 avatar xu-yaokun avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.