This repository provides an implementation of Graph Convolutional Networks (GCNs) for semi-supervised classification on graph-structured data, as introduced in the paper:
Semi-Supervised Classification with Graph Convolutional Networks
by Thomas N. Kipf and Max Welling.
GCNs provide an efficient way to perform convolutional operations directly on graphs, enabling semi-supervised learning by leveraging both the graph structure and node features. Key contributions of the paper include:
- Localized spectral graph convolutions: A first-order approximation for efficient computation.
- Linear scalability: The method scales linearly with the number of graph edges.
- Improved performance: Demonstrates state-of-the-art results on several benchmark datasets.
- End-to-end training: Combines node features and graph structure in a unified framework.
- Scalable: Scales linearly with graph size, making it suitable for large graphs.
- Generalizable: Applicable to various graph-based tasks, including node classification and link prediction.
The implementation supports experiments on common benchmark datasets:
- Cora: A citation network dataset where nodes represent papers and edges represent citations.
- Citeseer: Another citation network dataset.
- PubMed: A larger citation network dataset with labeled documents.
These datasets are automatically downloaded and preprocessed for use.
The following tools and libraries are used in this implementation:
- Python 3.8+
- PyTorch
- PyTorch Geometric
- NumPy
- SciPy (for sparse matrix operations)