Announcing StellarGraph library v0.6


Announcing StellarGraph 0.6

The StellarGraph team is happy to announce the latest release of StellarGraph: 0.6.0 and 0.6.1.

StellarGraph is a Python library for machine learning on graph-structured (or equivalently, network-structured) data. The StellarGraph library implements several state-of-the-art algorithms for graph machine learning to discover patterns and predict attributes of nodes and edges using graph-structured data.

This release contains new algorithms for supervised and unsupervised learning on graph structured data as well as new functionality to obtain probibalistic certainty estimates using an ensemble of trained models.


Graph Attention (GAT)

Graph Attention Networks incorporates weighting factors that are calculated using a trainable attention mechanism This allows the GAT model to learn to use the neighbouring nodes that are most important. StellarGraph includes a GAT layer and a GAT model (stack of layers), as well as an example of using these for node classification.

Paper: Graph Attention Networks. P. Velickovic et al. ICLR 2018

Unsupervised GraphSage

GraphSage can be used for both supervised and unsupervised learning. Supervised learning with GraphSage was covered in the previous releases of the library. This release includes an example of using GraphSage to compute node embeddings without node labels, in unsupervised way. These embeddings can be used in numerous downstream tasks such as node attribute inference, link prediction, and community detection.

Community detection aims to group nodes in a graph into subgraphs of highly related nodes that share some important features. StellarGraph now has an example of performing community detection on embeddings computed via unsupervised GraphSage.

Model Ensembles

Ensembles can improve model performance as well as estimate prediction uncertainty, by aggregating the predictions of multiple models. This release includes an Ensemble class that works with any of the Graph Neural Network models provided by StellarGraph, along with examples of node classification and link prediction using ensembles.

Other Enhancements and Bug Fixes

  • The head nodes or edges in node and link generators are now shuffled at training time after each epoch when the shuffle=True option is passed to the .flow method;

  • Added a user-specified random seed value for generators;

  • Bug where seed was not passed to sampler in GraphSAGELinkGenerator constructor is fixed;

  • UniformRandomMetaPathWalk bug fixed where it didn’t update the current node neighbors;

  • A graph adjacency matrix can now be passed as the func_opt optional argument in the FullBatchNodeGenerator class;

  • Fixed a bug where the incorrect argument was used to pass the optional function to the generator for GCN node classification example;

See the release notes for 0.6.0 and 0.6.1 for more info.