Skip to content
Belief Propagation Network for Hard Inductive Semi-Supervised Learning (IJCAI 2019)
Python Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

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.


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


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.



You can run a demo script 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



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 -


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

  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},
You can’t perform that action at this time.