Skip to content
/ BPN Public
forked from snudatalab/BPN

Belief Propagation Network for Hard Inductive Semi-Supervised Learning (IJCAI 2019)

License

Notifications You must be signed in to change notification settings

Varunia/BPN

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Belief Propagation Networks

This project is a PyTorch implementation of Belief Propagation Network for Hard Inductive Semi-Supervised Learning, published as a conference proceeding at IJCAI 2019. This paper proposes a novel approach for hard inductive learning on graph-structured data, where the graph is not given at the test time and thus previous approaches fail with low accuracy.

License

This software may be used only for research evaluation purposes. For other purposes (e.g., commercial), please contact the authors.

Abstract

Given graph-structured data, how can we train a robust classifier in a semi-supervised setting that performs well without neighborhood information? In this work, we propose belief propagation networks (BPN), a novel approach to train a deep neural network in a hard inductive setting, where the test data are given without neighborhood information. BPN uses a differentiable classifier to compute the prior distributions of nodes, and then diffuses the priors through the graphical structure, independently from the prior computation. This separable structure improves the generalization performance of BPN for isolated test instances, compared with previous approaches that jointly use the feature and neighborhood without distinction. As a result, BPN outperforms state-of-the-art methods in four datasets with an average margin of 2.4% points in accuracy.

Prerequisites

Usage

You can run a demo script demo.sh that reproduces the experimental results in the paper by the following command. Three of the four datasets are included except the Amazon dataset. You can change the hyperparameters by modifying main.py.

bash demo.sh

Datasets

Preprocessed data are downloaded from here and included in the data directory. Functions for loading the data are based on the implementation of a graph convolutional network (GCN). You can use your own data if it is a graph, each node contains a feature vector, and at least a few labels have been observed.

Name Nodes Edges Attributes Labels Download
Pubmed 19,717 44,324 500 3 Link
Cora 2,708 5,278 1,433 7 Link
Citeseer 3,327 4,552 3,703 6 Link
Amazon 32,966 63,285 3,000 3 -

Reference

Please cite our paper if you use this code in your own work:

@inproceedings{YooJK19,
  author    = {Jaemin Yoo and Hyunsik Jeon and U Kang},
  title     = {Belief Propagation Network for Hard Inductive Semi-Supervised Learning},
  booktitle = {International Joint Conference on Artificial Intelligence (IJCAI)},
  year      = {2019},
}

About

Belief Propagation Network for Hard Inductive Semi-Supervised Learning (IJCAI 2019)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.8%
  • Shell 0.2%