Stellargraph

Latest version: v1.2.1

Safety actively analyzes 613797 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

1.2.0

[Full Changelog](https://github.com/stellargraph/stellargraph/compare/v1.1.0...v1.2.0)

Jump in to this release, with the new and improved [demos and examples][demos-1.2.0]:

- [Comparison of link prediction with random walks based node embedding][lp-comparison-1.2.0]
- [Unsupervised training of a Cluster-GCN model with Deep Graph Infomax][dgi-1.2.0]

[demos-1.2.0]: https://stellargraph.readthedocs.io/en/v1.2.0/demos/index.html
[lp-comparison-1.2.0]: https://stellargraph.readthedocs.io/en/v1.2.0/demos/link-prediction/homogeneous-comparison-link-prediction.html
[dgi-1.2.0]: https://stellargraph.readthedocs.io/en/v1.2.0/demos/embeddings/deep-graph-infomax-embeddings.html

Major features and improvements

- Better Windows support: StellarGraph's existing ability to run on Windows has been improved, with all tests running on CI ([\1696](https://github.com/stellargraph/stellargraph/pull/1696)) and several small fixes ([\1671](https://github.com/stellargraph/stellargraph/pull/1671), [\1704](https://github.com/stellargraph/stellargraph/pull/1704), [\1705](https://github.com/stellargraph/stellargraph/pull/1705)).
- Edge weights are supported in GraphSAGE ([\1667](https://github.com/stellargraph/stellargraph/pull/1667)) and Watch Your Step ([\1604](https://github.com/stellargraph/stellargraph/pull/1604)). This is in addition to the existing support for edge weights in GCN, GAT, APPNP, PPNP, RGCN, GCN graph classification, DeepGraphCNN and Node2Vec sampling.
- Better and more demonstration notebooks and documentation to make the library more accessible to new and existing users:
- [A demo notebook][lp-comparison-1.2.0] for a comparison of link prediction with random walks based node embedding, showing Node2Vec, Attri2Vec, GraphSAGE and GCN [\1658](https://github.com/stellargraph/stellargraph/pull/1658)
- [The demo notebook][dgi-1.2.0] for unsupervised training with Deep Graph Infomax has been expanded with more explanation and links [\1257](https://github.com/stellargraph/stellargraph/pull/1257)
- The documentation for models, generators and other elements now has many more links to other relevant items in a "See also" box, making it easier to fit pieces together (examples: [`GraphSAGE`][gs-docs-1.2.0], [`GraphSAGENodeGenerator`][gs-gen-docs-1.2.0], [`BiasedRandomWalk`][brw-docs-1.2.0]) [\1718](https://github.com/stellargraph/stellargraph/pull/1718)
- The Cluster-GCN training procedure supports unsupervised training via Deep Graph Infomax; this allows for scalable training of GCN, APPNP and GAT models, and includes connecting to Neo4j for large graphs [demo][dgi-1.2.0] ([\1257](https://github.com/stellargraph/stellargraph/pull/1257))
- `KGTripleGenerator` now supports the self-adversarial negative sampling training procedure for knowledge graph algorithms (from RotatE), via `generator.flow(..., sample_strategy="self-adversarial")` [docs][self-adv-1.2.0]

[self-adv-1.2.0]: https://stellargraph.readthedocs.io/en/v1.2.0/api.htmlstellargraph.mapper.KGTripleGenerator.flow
[gs-docs-1.2.0]: https://stellargraph.readthedocs.io/en/v1.2.0/api.htmlstellargraph.layer.GraphSAGE
[gs-gen-docs-1.2.0]: https://stellargraph.readthedocs.io/en/v1.2.0/api.htmlstellargraph.mapper.GraphSAGENodeGenerator
[brw-docs-1.2.0]: https://stellargraph.readthedocs.io/en/v1.2.0/api.htmlstellargraph.data.BiasedRandomWalk

Deprecations

- The `ClusterGCN` model has been replaced with the `GCN` class. In the previous 1.1.0 release, GCN, APPNP and GAT were generalised to support the Cluster-GCN training procedure via `ClusterNodeGenerator` (which includes Neo4j support). The `ClusterGCN` model is now redundant and thus is deprecated: however, it still works without behaviour change.

Experimental features

Some new algorithms and features are still under active development, and are available as an experimental preview. However, they may not be easy to use: their documentation or testing may be incomplete, and they may change dramatically from release to release. The experimental status is noted in the documentation and at runtime via prominent warnings.

- `RotE`, `RotH`: knowledge graph link prediction algorithms that combine TransE and RotatE in Euclidean or hyperbolic space, respectively [\1539](https://github.com/stellargraph/stellargraph/pull/1539)

Bug fixes and other changes

- There are now tests for saving and loading a Keras `Model` constructed every model in StellarGraph [\1676](https://github.com/stellargraph/stellargraph/pull/1676). This includes fixes for some models ([\1677](https://github.com/stellargraph/stellargraph/pull/1677), [\1682](https://github.com/stellargraph/stellargraph/pull/1682)). Known issues: sparse models such as GCN and RGCN (see [\1251](https://github.com/stellargraph/stellargraph/issues/1251) for more info and a work-around using `tf-nightly`), experimental GCN-LSTM ([1681](https://github.com/stellargraph/stellargraph/issues/1681)).
- Various documentation, demo and error message fixes and improvements: better internal linking [\1404](https://github.com/stellargraph/stellargraph/pull/1404), automated spell checking [\1583](https://github.com/stellargraph/stellargraph/pull/1583), [\1663](https://github.com/stellargraph/stellargraph/pull/1663), [\1665](https://github.com/stellargraph/stellargraph/pull/1665), [\1684](https://github.com/stellargraph/stellargraph/pull/1684), improved rendering [\1722](https://github.com/stellargraph/stellargraph/pull/1722) including a better sidebar [\1512](https://github.com/stellargraph/stellargraph/pull/1512), [\1729](https://github.com/stellargraph/stellargraph/pull/1729), [\1730](https://github.com/stellargraph/stellargraph/pull/1730)
- DevOps changes:
- CI has been moved from Buildkite to GitHub Actions (tracking issue: [\1687](https://github.com/stellargraph/stellargraph/issues/1687); pull requests: [\1688](https://github.com/stellargraph/stellargraph/pull/1688), [\1692](https://github.com/stellargraph/stellargraph/pull/1692), [\1690](https://github.com/stellargraph/stellargraph/pull/1690), [\1691](https://github.com/stellargraph/stellargraph/pull/1691), [\1693](https://github.com/stellargraph/stellargraph/pull/1693), [\1694](https://github.com/stellargraph/stellargraph/pull/1694), [\1701](https://github.com/stellargraph/stellargraph/pull/1701), [\1707](https://github.com/stellargraph/stellargraph/pull/1707), [\1712](https://github.com/stellargraph/stellargraph/pull/1712), [\1714](https://github.com/stellargraph/stellargraph/pull/1714), [\1715](https://github.com/stellargraph/stellargraph/pull/1715), [\1717](https://github.com/stellargraph/stellargraph/pull/1717), [\1719](https://github.com/stellargraph/stellargraph/pull/1719))
- CI: [\1655](https://github.com/stellargraph/stellargraph/pull/1655), [\1672](https://github.com/stellargraph/stellargraph/pull/1672), [\1673](https://github.com/stellargraph/stellargraph/pull/1673), [\1679](https://github.com/stellargraph/stellargraph/pull/1679), [\1710](https://github.com/stellargraph/stellargraph/pull/1710), [\1721](https://github.com/stellargraph/stellargraph/pull/1721), [\1724](https://github.com/stellargraph/stellargraph/pull/1724)

1.1.0

[Full Changelog](https://github.com/stellargraph/stellargraph/compare/v1.0.0...v1.1.0)

Jump in to this release, with the new and improved [demos and examples][demos-1.1.0]:

- Neo4j graph database support: [Cluster-GCN][neo4j-cluster-1.1.0], [GraphSAGE][neo4j-gs-1.1.0], [all demos][neo4j-demos-1.1.0]
- [Semi-supervised node classification via GCN, Deep Graph Infomax and fine-tuning][dgi-fine-tuning-1.1.0]
- [Loading data into StellarGraph from NumPy][loading-numpy-1.1.0]
- [Link prediction with Metapath2Vec][metapath-lp-1.1.0]
- [Unsupervised graph classification/representation learning via distances][unsup-graph-rl-1.1.0]
- [RGCN section of Node representation learning with Deep Graph Infomax][unsup-rgcn-1.1.0]
- Node2Vec with StellarGraph components: [representation learning][keras-n2v-rl-1.1.0], [node classification][keras-n2v-nc-1.1.0]
- Expanded Attri2Vec explanation: [representation learning][a2v-rl-1.1.0], [node classification][a2v-nc-1.1.0], [link prediction][a2v-lp-1.1.0]

[demos-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/index.html
[neo4j-demos-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/connector/neo4j/index.html
[neo4j-cluster-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/connector/neo4j/cluster-gcn-on-cora-neo4j-example.html
[neo4j-gs-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/connector/neo4j/undirected-graphsage-on-cora-neo4j-example.html
[dgi-fine-tuning-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/node-classification/gcn-deep-graph-infomax-fine-tuning-node-classification.html
[loading-numpy-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/basics/loading-numpy.html
[metapath-lp-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/link-prediction/metapath2vec-link-prediction.html
[unsup-graph-rl-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/embeddings/gcn-unsupervised-graph-embeddings.html
[unsup-rgcn-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/embeddings/deep-graph-infomax-embeddings.htmlHeteogeneous-models
[keras-n2v-rl-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/embeddings/keras-node2vec-embeddings.html
[keras-n2v-nc-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/node-classification/keras-node2vec-node-classification.html
[a2v-rl-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/embeddings/attri2vec-embeddings.html
[a2v-nc-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/node-classification/attri2vec-node-classification.html
[a2v-lp-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/link-prediction/attri2vec-link-prediction.html

Major features and improvements

- Support for the Neo4j graph database has been significantly improved:
- There is now [a `Neo4jStellarGraph` class][neo4j-sg-1.1.0] that packages up a connection to a Neo4j instance, and allows it to be used for machine learning algorithms including the existing Neo4j and GraphSAGE functionality [demo][neo4j-gs-1.1.0], [\1595](https://github.com/stellargraph/stellargraph/pull/1595), [\1598](https://github.com/stellargraph/stellargraph/pull/1598).
- The `ClusterNodeGenerator` class now supports `Neo4jStellarGraph` in addition to the in-memory `StellarGraph` class, allowing it to be used to train models like GCN and GAT with data stored entirely in Neo4j [demo][neo4j-cluster-1.1.0] ([\1561](https://github.com/stellargraph/stellargraph/pull/1561), [\1594](https://github.com/stellargraph/stellargraph/pull/1594), [\1613](https://github.com/stellargraph/stellargraph/pull/1613))
- Better and more demonstration notebooks and documentation to make the library more accessible to new and existing users:
- There is now [a glossary][glossary-1.1.0] that explains some terms specific to graphs, machine learning and graph machine learning [\1570](https://github.com/stellargraph/stellargraph/pull/1570)
- [A new demo notebook][dgi-fine-tuning-1.1.0] for semi-supervised node classification using Deep Graph Infomax and GCN [\1587](https://github.com/stellargraph/stellargraph/pull/1587)
- [A new demo notebook][metapath-lp-1.1.0] for link prediction using the Metapath2Vec algorithm [\1614](https://github.com/stellargraph/stellargraph/pull/1614)
- New algorithms:
- Unsupervised graph representation learning [demo][unsup-graph-rl-1.1.0] ([\1626](https://github.com/stellargraph/stellargraph/pull/1626))
- Unsupervised RGCN with Deep Graph Infomax [demo][unsup-rgcn-1.1.0] ([\1258](https://github.com/stellargraph/stellargraph/pull/1258))
- Native Node2Vec using TensorFlow Keras, not the gensim library, [demo of representation learning][keras-n2v-rl-1.1.0], [demo of node classification][keras-n2v-nc-1.1.0] ([\536](https://github.com/stellargraph/stellargraph/pull/536), [\1566](https://github.com/stellargraph/stellargraph/pull/1566))
- The `ClusterNodeGenerator` class can be used to train GCN, GAT, APPNP and PPNP models in addition to the ClusterGCN model [\1585](https://github.com/stellargraph/stellargraph/pull/1585)
- The `StellarGraph` class continues to get smaller, faster and more flexible:
- Node features can now be specified as NumPy arrays or the newly added thin `IndexedArray` wrapper, which does no copies and has minimal runtime overhead [demo][loading-numpy-1.1.0] ([\1535](https://github.com/stellargraph/stellargraph/pull/1535), [\1556](https://github.com/stellargraph/stellargraph/pull/1556), [\1599](https://github.com/stellargraph/stellargraph/pull/1599)). They can also now be multidimensional for each node [\1561](https://github.com/stellargraph/stellargraph/pull/1561).
- Edges can now have features, taken as any extra/unused columns in the input DataFrames [demo][edge-features-1.1.0] [\1574](https://github.com/stellargraph/stellargraph/pull/1574)
- Adjacency lists used for random walks and GraphSAGE/HinSAGE are constructed with NumPy and stored as contiguous arrays instead of dictionaries, cutting the time and memory or construction by an order of magnitude [\1296](https://github.com/stellargraph/stellargraph/pull/1296)
- The peak memory usage of construction and adjacency list building is now monitored to ensure that there are not large spikes for large graphs, that exceed available memory [\1546](https://github.com/stellargraph/stellargraph/pull/1546). This peak usage has thus been optimised: [\1551](https://github.com/stellargraph/stellargraph/pull/1551),
- Other optimisations: the `edge_arrays`, `neighbor_arrays`, `in_node_arrays` and `out_node_arrays` methods have been added, reducing time and memory overhead by leaving data as its underlying NumPy array [\1253](https://github.com/stellargraph/stellargraph/pull/1253); the `node_type` method now supports multiple nodes as input, making algorithms like HinSAGE and Metapath2Vec much faster [\1452](https://github.com/stellargraph/stellargraph/pull/1452); the default edge weight of 1 no longer consumes significant memory [\1610](https://github.com/stellargraph/stellargraph/pull/1610).
- Overall performance and memory usage improvements since 1.0.0, in numbers:
- A reddit graph has 233 thousand nodes and 11.6 million edges:
- construction without node features is now 2.3× faster, uses 31% less memory and has a memory peak 57% smaller.
- construction with node features from NumPy arrays is 6.8× faster, uses 6.5% less memory overall and 85% less new memory (the majority of the memory is shared with the original NumPy arrays), and has a memory peak (above the raw data set) 70% smaller, compared to Pandas DataFrames in 1.0.0.
- adjacency lists are 4.7-5.0× faster to construct, use 28% less memory and have a memory peak 60% smaller.
- Various random walkers are faster: `BiasedRandomWalk` is up to 30× faster with weights and 5× faster without weights on MovieLens and up to 100× faster on some synthetic datasets, `UniformRandomMetapathWalk` is up to 17× faster (on MovieLens), `UniformRandomWalk` is up to 1.4× (on MovieLens).
- TensorFlow 2.2 and thus Python 3.8 are now supported [\1278](https://github.com/stellargraph/stellargraph/pull/1278)

[glossary-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/glossary.html
[neo4j-sg-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/api.htmlstellargraph.connector.neo4j.Neo4jStellarGraph
[edge-features-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/basics/loading-pandas.htmlEdge-features


Experimental features

Some new algorithms and features are still under active development, and are available as an experimental preview. However, they may not be easy to use: their documentation or testing may be incomplete, and they may change dramatically from release to release. The experimental status is noted in the documentation and at runtime via prominent warnings.

- `RotatE`: a knowledge graph link prediction algorithm that uses complex rotations (`|z| = 1`) to encode relations [\1522](https://github.com/stellargraph/stellargraph/pull/1522)
- `GCN_LSTM` (renamed from `GraphConvolutionLSTM`): time series prediction on spatio-temporal data. It is still experimental, but has been improved since last release:
- [the `SlidingFeaturesNodeGenerator` class][sliding-1.1.0] has been added to yield data appropriate for the model, straight from a `StellarGraph` instance containing time series data as node features [\1564](https://github.com/stellargraph/stellargraph/pull/1564)
- the hidden graph convolution layers can now have a custom output size [\1555](https://github.com/stellargraph/stellargraph/pull/1555)
- the model now supports multivariate input and output, including via the `SlidingFeaturesNodeGenerator` class (with multidimensional node features) [\1580](https://github.com/stellargraph/stellargraph/pull/1580)
- unit tests have been added [\1560](https://github.com/stellargraph/stellargraph/pull/1560)
- Neo4j support: some classes have been renamed from `Neo4J...` (uppercase `J`) to `Neo4j...` (lowercase `j`).

[sliding-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/api.htmlstellargraph.mapper.SlidingFeaturesNodeGenerator

Bug fixes and other changes

- Edge weights are supported in methods using `FullBatchNodeGenerator` (GCN, GAT, APPNP, PPNP), `RelationalFullBatchNodeGenerator` (RGCN) and `PaddedGraphGenerator` (GCN graph classification, DeepGraphCNN), via the `weighted=True` parameter [\1600](https://github.com/stellargraph/stellargraph/pull/1600)
- The `StellarGraph` class now supports conversion between node type and edge type names and equivalent ilocs [\1366](https://github.com/stellargraph/stellargraph/pull/1366), which allows optimising some algorithms ([\1367](https://github.com/stellargraph/stellargraph/pull/1367) optimises ranking with the DistMult algorithm from 42.6s to 20.7s on the FB15k dataset)
- `EdgeSplitter` no longer prints progress updates [\1619](https://github.com/stellargraph/stellargraph/pull/1619)
- The `info` method now merges edge types triples like `A-[r]->B` and `B-[r]->A` in undirected graphs [\1650](https://github.com/stellargraph/stellargraph/pull/1650)
- There is now [a notebook][resource-usage-1.1.0] capturing time and memory resource usage on non-synthetic datasets, designed to help StellarGraph contributors understand and optimise the `StellarGraph` class [\1547](https://github.com/stellargraph/stellargraph/pull/1547)
- Various documentation, demo and error message fixes and improvements: [\1516](https://github.com/stellargraph/stellargraph/pull/1516) (thanks thatlittleboy), [\1519](https://github.com/stellargraph/stellargraph/pull/1519), [\1520](https://github.com/stellargraph/stellargraph/pull/1520), [\1537](https://github.com/stellargraph/stellargraph/pull/1537), [\1541](https://github.com/stellargraph/stellargraph/pull/1541), [\1542](https://github.com/stellargraph/stellargraph/pull/1542), [\1577](https://github.com/stellargraph/stellargraph/pull/1577), [\1605](https://github.com/stellargraph/stellargraph/pull/1605), [\1606](https://github.com/stellargraph/stellargraph/pull/1606), [\1608](https://github.com/stellargraph/stellargraph/pull/1608), [\1624](https://github.com/stellargraph/stellargraph/pull/1624), [\1628](https://github.com/stellargraph/stellargraph/pull/1628), [\1632](https://github.com/stellargraph/stellargraph/pull/1632), [\1634](https://github.com/stellargraph/stellargraph/pull/1634), [\1636](https://github.com/stellargraph/stellargraph/pull/1636), [\1643](https://github.com/stellargraph/stellargraph/pull/1643), [\1645](https://github.com/stellargraph/stellargraph/pull/1645), [\1649](https://github.com/stellargraph/stellargraph/pull/1649), [\1652](https://github.com/stellargraph/stellargraph/pull/1652)
- DevOps changes:
- CI: [\1518](https://github.com/stellargraph/stellargraph/pull/1518), tests are run regularly on a GPU [\1249](https://github.com/stellargraph/stellargraph/pull/1249), [\1647](https://github.com/stellargraph/stellargraph/pull/1647), [\1653](https://github.com/stellargraph/stellargraph/pull/1653)
- Other: [\1558](https://github.com/stellargraph/stellargraph/pull/1558)

[resource-usage-1.1.0]: https://stellargraph.readthedocs.io/en/v1.1.0/demos/zzz-internal-developers/graph-resource-usage.html

1.0.0

[Full Changelog](https://github.com/stellargraph/stellargraph/compare/v0.11.0...v1.0.0)

This 1.0 release of StellarGraph is the culmination of three years of active research and engineering to deliver an open-source, user-friendly library for machine learning (ML) on graphs and networks.

Jump in to this release, with the new demos and examples:

- [More helpful indexing and guidance for demos in our API documentation][demos-1.0.0]
- [Loading from Neo4j][neo4j-1.0.0]
- [More explanatory Node2Vec link prediction][n2v-lp-1.0.0]
- [Unsupervised `GraphSAGE` and `HinSAGE` via `DeepGraphInfomax`][dgi-1.0.0]
- Graph classification [with `GCNSupervisedGraphClassification`][gc-gcn-1.0.0] and [with `DeepGraphCNN`][gc-dgcnn-1.0.0]
- [Time series prediction using spatial information, using `GraphConvolutionLSTM`][gcn-lstm-1.0.0] (experimental)

[neo4j-1.0.0]: https://stellargraph.readthedocs.io/en/v1.0.0/demos/basics/loading-saving-neo4j.html
[n2v-lp-1.0.0]: https://stellargraph.readthedocs.io/en/v1.0.0/demos/link-prediction/node2vec-link-prediction.html
[dgi-1.0.0]: https://stellargraph.readthedocs.io/en/v1.0.0/demos/embeddings/deep-graph-infomax-embeddings.html
[gc-gcn-1.0.0]: https://stellargraph.readthedocs.io/en/v1.0.0/demos/graph-classification/gcn-supervised-graph-classification.html
[gc-dgcnn-1.0.0]: https://stellargraph.readthedocs.io/en/v1.0.0/demos/graph-classification/dgcnn-graph-classification.html
[gcn-lstm-1.0.0]: https://stellargraph.readthedocs.io/en/v1.0.0/demos/time-series/gcn-lstm-time-series.html

Major features and improvements

- Better demonstration notebooks and documentation to make the library more accessible to new and existing users:
- Notebooks are [now published in the API documentation][demos-1.0.0], for better & faster rendering and more convenient access [\1279](https://github.com/stellargraph/stellargraph/pull/1279) [\1433](https://github.com/stellargraph/stellargraph/pull/1433) [\1448](https://github.com/stellargraph/stellargraph/pull/1448)
- The [demos indices][demos-1.0.0] and [READMEs](demos/) now contain more guidance and explanation to make it easier to find a relevant example [\1200](https://github.com/stellargraph/stellargraph/pull/1200)
- Several demos have been added or rewritten: [loading data from Neo4j][neo4j-1.0.0] [\1184](https://github.com/stellargraph/stellargraph/pull/1184), [link prediction using Node2Vec][n2v-lp-1.0.0] [\1190](https://github.com/stellargraph/stellargraph/pull/1190), [graph classification with GCN][gc-gcn-1.0.0], [graph classification with DGCNN][gc-dgcnn-1.0.0]
- Notebooks now detect if they're being used with an incorrect version of the StellarGraph library, eliminating confusion about version mismatches [\1242](https://github.com/stellargraph/stellargraph/pull/1242)
- Notebooks are easier to download, both individually via a button on each in the API documentation [\1460](https://github.com/stellargraph/stellargraph/pull/1460) and in bulk [\1377](https://github.com/stellargraph/stellargraph/pull/1377) [\1459](https://github.com/stellargraph/stellargraph/pull/1459)
- Notebooks have been re-arranged and renamed to be more consistent and easier to find [\1471](https://github.com/stellargraph/stellargraph/pull/1471)
- New algorithms:
- `GCNSupervisedGraphClassification`: supervised graph classification model based on Graph Convolutional layers (GCN) [\929](https://github.com/stellargraph/stellargraph/issues/929), [demo][gc-gcn-1.0.0].
- `DeepGraphCNN` (DGCNN): supervised graph classification using a stack of graph convolutional layers followed by `SortPooling`, and standard convolutional and pooling (such as `Conv1D` and `MaxPool1D`) [\1212](https://github.com/stellargraph/stellargraph/pull/1212) [\1265](https://github.com/stellargraph/stellargraph/pull/1265), [demo][gc-dgcnn-1.0.0]
- `SortPooling` layer: the node pooling layer introduced in [Zhang et al](https://www.cse.wustl.edu/~muhan/papers/AAAI_2018_DGCNN.pdf) [\1210](https://github.com/stellargraph/stellargraph/pull/1210)
- `DeepGraphInfomax` can be used to train almost any model in an unsupervised way, via the `corrupt_index_groups` parameter to `CorruptedGenerator` [\1243](https://github.com/stellargraph/stellargraph/pull/1243), [demo][dgi-1.0.0]. Additionally, many algorithms provide defaults and so can be used with `DeepGraphInfomax` without specifying this parameter:
- any model using `FullBatchNodeGenerator`, including models supported in StellarGraph 0.11: `GCN`, `GAT`, `PPNP` and `APPNP`
- `GraphSAGE` [\1162](https://github.com/stellargraph/stellargraph/pull/1162)
- `HinSAGE` for heterogeneous graphs with node features [\1254](https://github.com/stellargraph/stellargraph/pull/1254)
- `UnsupervisedSampler` supports a `walker` parameter to use other random walking algorithms such as `BiasedRandomWalk`, in addition to the default `UniformRandomWalk`. [\1187](https://github.com/stellargraph/stellargraph/pull/1187)
- The `StellarGraph` class is now smaller, faster and easier to construct and use:
- The `StellarGraph(..., edge_type_column=...)` parameter can be used to construct a heterogeneous graph from a single flat `DataFrame`, containing a column of the edge types [\1284](https://github.com/stellargraph/stellargraph/pull/1284). This avoids the need to build separate `DataFrame`s for each type, and is significantly faster when there are many types. Using `edge_type_column` gives a 2.6× speedup for loading the `stellargraph.datasets.FB15k` dataset (with almost 600 thousand edges across 1345 types).
- `StellarGraph`'s internal cache of node adjacencies is now computed lazily [\1291](https://github.com/stellargraph/stellargraph/pull/1291) and takes into account whether the graph is directed or not [\1463](https://github.com/stellargraph/stellargraph/pull/1463), and they now use the smallest integer type they can [\1289](https://github.com/stellargraph/stellargraph/pull/1289)
- `StellarGraph`'s internal list of source and target nodes are now stored using integer "ilocs" [\1267](https://github.com/stellargraph/stellargraph/pull/1267), reducing memory use and making some functionality significantly faster [\1444](https://github.com/stellargraph/stellargraph/pull/1444) [\1446](https://github.com/stellargraph/stellargraph/pull/1446))
- Functions like `graph.node_features()` no longer needs `node_type` specified if `graph` has only one node type (this includes classes like `HinSAGENodeGenerator`, which no longer needs `head_node_type` if there is only one node type) [\1375](https://github.com/stellargraph/stellargraph/pull/1375)
- Overall performance and memory usage improvements since 0.11, in numbers:
- The FB15k graph has 15 thousand nodes and 483 thousand edges: it is now 7× faster and 4× smaller to construct (without adjacency lists). It is still about 2× smaller when directed or undirected adjacency lists are computed.
- Directed adjacency matrix construction is up to 2× faster
- Various samplers and random walkers are faster: `HinSAGENodeGenerator` is 3× faster (on `MovieLens`), `Attri2VecNodeGenerator` is 4× faster (on `CiteSeer`), weighted `BiasedRandomWalk` is up to 3× faster, `UniformRandomMetapathWalk` is up to 7× faster


[demos-1.0.0]: https://stellargraph.readthedocs.io/en/v1.0.0/demos/index.html

Breaking changes

- The `stellargraph/stellargraph` docker image wasn't being published in an optimal way, so we have stopped updating it for now [\1455](https://github.com/stellargraph/stellargraph/pull/1455)
- Edge weights are now validated to be numeric when creating a `StellarGraph`. Previously edge weights could be any type, but all algorithms that use them would fail with non-numeric types. [\1191](https://github.com/stellargraph/stellargraph/pull/1191)
- Full batch layers no longer support an "output indices" tensor to filter the output rows to a selected set of nodes [\1204](https://github.com/stellargraph/stellargraph/pull/1204) (this does **not** affect models like `GCN`, only the layers within them: `APPNPPropagationLayer`, `ClusterGraphConvolution`, `GraphConvolution`, `GraphAttention`, `GraphAttentionSparse`, `PPNPPropagationLayer`, `RelationalGraphConvolution`). Migration: post-process the output using `tf.gather` manually or the new `sg.layer.misc.GatherIndices` layer.
- `GraphConvolution` has been generalised to work with batch size > 1, subsuming the functionality of the now-deprecated `ClusterGraphConvolution` (and `GraphClassificationConvolution`) [\1205](https://github.com/stellargraph/stellargraph/pull/1205). Migration: replace `stellargraph.layer.ClusterGraphConvolution` with `stellargraph.layer.GraphConvolution`.
- `BiasedRandomWalk` now takes multi-edges into consideration instead of collapsing them when traversing the graph. It previously required all multi-edges had to same weight and only counted one of them when considering where to walk, but now a multi-edge is equivalent to having an edge whose weight is the sum of the weights of all edges in the multi-edge [\1444](https://github.com/stellargraph/stellargraph/pull/1444)

Experimental features

Some new algorithms and features are still under active development, and are available as an experimental preview. However, they may not be easy to use: their documentation or testing may be incomplete, and they may change dramatically from release to release. The experimental status is noted in the documentation and at runtime via prominent warnings.

- `GraphConvolutionLSTM`: time series prediction on spatio-temporal data, combining GCN with a [LSTM](https://en.wikipedia.org/wiki/Long_short-term_memory) model to augment the conventional time-series model with information from nearby data points [\1085](https://github.com/stellargraph/stellargraph/pull/1085), [demo][gcn-lstm-1.0.0]

Bug fixes and other changes

- Random walk classes like `UniformRandomWalk` and `BiasedRandomWalk` can have their hyperparameters set on construction, in addition to in each call to `run` [\1179](https://github.com/stellargraph/stellargraph/pull/1179)
- Node feature sampling was made ~4× faster by ensuring a better data layout, this makes some configurations of `GraphSAGE` (and `HinSAGE`) noticeably faster [\1225](https://github.com/stellargraph/stellargraph/pull/1225)
- The `PROTEINS` dataset has been added to `stellargraph.datasets`, for graph classification [\1282](https://github.com/stellargraph/stellargraph/pull/1282)
- The `BlogCatalog3` dataset can now be successfully downloaded again [\1283](https://github.com/stellargraph/stellargraph/pull/1283)
- Knowledge graph model evaluation via `rank_edges_against_all_nodes` now defaults to the `random` strategy for breaking ties, and supports `top` (previous default) and `bottom` as alternatives [\1223](https://github.com/stellargraph/stellargraph/pull/1223)
- Creating a `RelationalFullBatchNodeGenerator` is now significantly faster and requires much less memory (18× speedup and 560× smaller for the `stellargraph.datasets.AIFB` dataset) [\1274](https://github.com/stellargraph/stellargraph/pull/1274)
- Creating a `FullBatchNodeGenerator` or `FullBatchLinkGenerator` is now significantly faster and requires much less memory (3× speedup and 480× smaller for the `stellargraph.datasets.PubMedDiabetes` dataset) [\1277](https://github.com/stellargraph/stellargraph/pull/1277)
- `StellarGraph.info` now shows a summary of the edge weights for each edge type [\1240](https://github.com/stellargraph/stellargraph/pull/1240)
- The `plot_history` function accepts a `return_figure` parameter to return the `matplotlib.figure.Figure` value, for further manipulation [\1309](https://github.com/stellargraph/stellargraph/pull/1309) (Thanks LarsNeR)
- Tests now pass against the TensorFlow 2.2.0 release candidates, in preparation for the full 2.2.0 release [\1175](https://github.com/stellargraph/stellargraph/pull/1175)
- Some functions no longer fail for some particular cases of empty graphs: `StellarGraph.to_adjacency_matrix` [\1378](https://github.com/stellargraph/stellargraph/pull/1378), `StellarGraph.from_networkx` [\1401](https://github.com/stellargraph/stellargraph/pull/1401)
- `CorruptedGenerator` on a `FullBatchNodeGenerator` can be used to train `DeepGraphInfomax` on a subset of the nodes in a graph, instead of all of them [\1415](https://github.com/stellargraph/stellargraph/pull/1415)
- The `stellargraph.custom_keras_layers` dictionary for use when loading a Keras model now includes all of StellarGraph's layers [\1280](https://github.com/stellargraph/stellargraph/pull/1280)
- `PaddedGraphGenerator.flow` now also accepts a list of `StellarGraph` objects as input [\1458](https://github.com/stellargraph/stellargraph/pull/1458)
- Supervised Graph Classification demo now prints progress update messages during training [\1485](https://github.com/stellargraph/stellargraph/pull/1485)
- Explicit contributors file has been removed to avoid inconsistent acknowledgement [\1484](https://github.com/stellargraph/stellargraph/pull/1484). Please refer to the [GitHub display for contributors](https://github.com/stellargraph/stellargraph/graphs/contributors) instead.
- Various documentation, demo and error message fixes and improvements: [\1141](https://github.com/stellargraph/stellargraph/pull/1141), [\1219](https://github.com/stellargraph/stellargraph/pull/1219), [\1246](https://github.com/stellargraph/stellargraph/pull/1246), [\1260](https://github.com/stellargraph/stellargraph/pull/1260), [\1266](https://github.com/stellargraph/stellargraph/pull/1266), [\1361](https://github.com/stellargraph/stellargraph/pull/1361), [\1362](https://github.com/stellargraph/stellargraph/pull/1362), [\1385](https://github.com/stellargraph/stellargraph/pull/1385), [\1386](https://github.com/stellargraph/stellargraph/pull/1386), [\1363](https://github.com/stellargraph/stellargraph/pull/1363), [\1376](https://github.com/stellargraph/stellargraph/pull/1376), [\1405](https://github.com/stellargraph/stellargraph/pull/1405) (thanks thatlittleboy), [\1408](https://github.com/stellargraph/stellargraph/pull/1408), [\1393](https://github.com/stellargraph/stellargraph/pull/1393), [\1403](https://github.com/stellargraph/stellargraph/pull/1403), [\1401](https://github.com/stellargraph/stellargraph/pull/1401), [\1397](https://github.com/stellargraph/stellargraph/pull/1397), [\1396](https://github.com/stellargraph/stellargraph/pull/1396), [\1391](https://github.com/stellargraph/stellargraph/pull/1391), [\1394](https://github.com/stellargraph/stellargraph/pull/1394), [\1434](https://github.com/stellargraph/stellargraph/pull/1434) (thanks thatlittleboy), [\1442](https://github.com/stellargraph/stellargraph/pull/1442), [\1438](https://github.com/stellargraph/stellargraph/pull/1438) (thanks thatlittleboy), [\1413](https://github.com/stellargraph/stellargraph/pull/1413), [\1450](https://github.com/stellargraph/stellargraph/pull/1450), [\1440](https://github.com/stellargraph/stellargraph/pull/1440), [\1453](https://github.com/stellargraph/stellargraph/pull/1453), [\1447](https://github.com/stellargraph/stellargraph/pull/1447), [\1467](https://github.com/stellargraph/stellargraph/pull/1467), [\1465](https://github.com/stellargraph/stellargraph/pull/1465) (thanks thatlittlboy), [\1470](https://github.com/stellargraph/stellargraph/pull/1470), [\1475](https://github.com/stellargraph/stellargraph/pull/1475), [\1480](https://github.com/stellargraph/stellargraph/pull/1480), [\1468](https://github.com/stellargraph/stellargraph/pull/1468), [\1472](https://github.com/stellargraph/stellargraph/pull/1472), [\1474](https://github.com/stellargraph/stellargraph/pull/1474)
- DevOps changes:
- CI: [\1161](https://github.com/stellargraph/stellargraph/pull/1161), [\1189](https://github.com/stellargraph/stellargraph/pull/1189), [\1230](https://github.com/stellargraph/stellargraph/pull/1230), [\1122](https://github.com/stellargraph/stellargraph/pull/1122), [\1421](https://github.com/stellargraph/stellargraph/pull/1421)
- Other: [\1197](https://github.com/stellargraph/stellargraph/pull/1197), [\1322](https://github.com/stellargraph/stellargraph/pull/1322), [\1407](https://github.com/stellargraph/stellargraph/pull/1407)

1.0.0rc1

[Full Changelog](https://github.com/stellargraph/stellargraph/compare/v0.11.0...v1.0.0rc1)

This is the first release candidate for StellarGraph 1.0. The 1.0 release will be the culmination of 2 years of activate development, and this release candidate is the first milestone for that release.

Jump in to this release, with the new demos and examples:

- [More helpful indexing and guidance in demo READMEs](demos/)
- [Loading from Neo4j][neo4j]
- [More explanatory Node2Vec link prediction][n2v-lp]
- [Unsupervised `GraphSAGE` and `HinSAGE` via `DeepGraphInfomax`][dgi]
- [Graph classification with `GCNSupervisedGraphClassification`][gc]
- [Time series prediction using spatial information, using `GraphConvolutionLSTM`][gcn-lstm] (experimental)

[neo4j]: demos/basics/loading-saving-neo4j.ipynb
[n2v-lp]: demos/link-prediction/random-walks/cora-lp-demo.ipynb
[dgi]: demos/embeddings/deep-graph-infomax-cora.ipynb
[gc]: demos/graph-classification/supervised-graph-classification.ipynb
[gcn-lstm]: demos/spatio-temporal/gcn-lstm-LA.ipynb

Major features and improvements

- Better demonstration notebooks and documentation to make the library more accessible to new and existing users:
- The [demos READMEs](demos/) now contain more guidance and explanation to make it easier to find a relevant example [\1200](https://github.com/stellargraph/stellargraph/pull/1200)
- A [demo for loading data from Neo4j][neo4j] has been added [\1184](https://github.com/stellargraph/stellargraph/pull/1184)
- The [demo for link prediction using Node2Vec][n2v-lp] has been rewritten to be clearer [\1190](https://github.com/stellargraph/stellargraph/pull/1190)
- Notebooks are [now included in the API documentation](https://stellargraph.readthedocs.io/en/latest/demos/index.html), for more convenient access [\1279](https://github.com/stellargraph/stellargraph/pull/1279)
- Notebooks now detect if they're being used with an incorrect version of the StellarGraph library, elimanting confusion about version mismatches [\1242](https://github.com/stellargraph/stellargraph/pull/1242)
- New algorithms:
- `GCNSupervisedGraphClassification`: supervised graph classification model based on Graph Convolutional layers (GCN) [\929](https://github.com/stellargraph/stellargraph/issues/929), [demo][gc].
- `DeepGraphInfomax` can be used to train almost any model in an unsupervised way, via the `corrupt_index_groups` parameter to `CorruptedGenerator` [\1243](https://github.com/stellargraph/stellargraph/pull/1243), [demo][dgi]. Additionally, many algorithms provide defaults and so can be used with `DeepGraphInfomax` without specifying this parameter:
- any model using `FullBatchNodeGenerator`, including models supported in StellarGraph 0.11: `GCN`, `GAT`, `PPNP` and `APPNP`
- `GraphSAGE` [\1162](https://github.com/stellargraph/stellargraph/pull/1162)
- `HinSAGE` for heterogeneous graphs with node features [\1254](https://github.com/stellargraph/stellargraph/pull/1254)
- `UnsupervisedSampler` supports a `walker` parameter to use other random walking algorithms such as `BiasedRandomWalk`, in addition to the default `UniformRandomWalk`. [\1187](https://github.com/stellargraph/stellargraph/pull/1187)
- The `StellarGraph` class is now smaller, faster and easier to construct:
- The `StellarGraph(..., edge_type_column=...)` parameter can be used to construct a heterogeneous graph from a single flat `DataFrame`, containing a column of the edge types [\1284](https://github.com/stellargraph/stellargraph/pull/1284). This avoids the need to build separate `DataFrame`s for each type, and is significantly faster when there are many types. Using `edge_type_column` gives a 2.6× speedup for loading the `stellargraph.datasets.FB15k` dataset (with almost 600 thousand edges across 1345 types).
- `StellarGraph`'s internal cache of node adjacencies now uses the smallest integer type it can [\1289](https://github.com/stellargraph/stellargraph/pull/1289). This reduces memory use by 31% on the `FB15k` dataset, and 36% on a reddit dataset (with 11.6 million edges).

Breaking changes

- Edge weights are now validated to be numeric when creating a `StellarGraph`, previously edge weights could be any type, but all algorithms that use them would fail. [\1191](https://github.com/stellargraph/stellargraph/pull/1191)
- Full batch layers no longer support an "output indices" tensor to filter the output rows to a selected set of nodes [\1204](https://github.com/stellargraph/stellargraph/pull/1204) (this does **not** affect models like `GCN`, only the layers within them: `APPNPPropagationLayer`, `ClusterGraphConvolution`, `GraphConvolution`, `GraphAttention`, `GraphAttentionSparse`, `PPNPPropagationLayer`, `RelationalGraphConvolution`). Migration: post-process the output using `tf.gather` manually or the new `sg.layer.misc.GatherIndices` layer.
- `GraphConvolution` has been generalised to work with batch size > 1, subsuming the functionality of the now-deprecated `ClusterGraphConvolution` (and `GraphClassificationConvolution`) [\1205](https://github.com/stellargraph/stellargraph/pull/1205). Migration: replace `stellargraph.layer.ClusterGraphConvolution` with `stellargraph.layer.GraphConvolution`.

Experimental features

Some new algorithms and features are still under active development, and are available as an experimental preview. However, they may not be easy to use: their documentation or testing may be incomplete, and they may change dramatically from release to release. The experimental status is noted in the documentation and at runtime via prominent warnings.

- `SortPooling` layer: the node pooling layer introduced in [Zhang et al](https://www.cse.wustl.edu/~muhan/papers/AAAI_2018_DGCNN.pdf) [\1210](https://github.com/stellargraph/stellargraph/pull/1210)
- `DeepGraphConvolutionalNeuralNetwork` (DGCNN): supervised graph classification using a stack of graph convolutional layers followed by `SortPooling`, and standard convolutional and pooling (such as `Conv1D` and `MaxPool1D`) [\1212](https://github.com/stellargraph/stellargraph/pull/1212) [\1265](https://github.com/stellargraph/stellargraph/pull/1265)
- `GraphConvolutionLSTM`: time series prediction on spatio-temporal data, combining GCN with a [LSTM](https://en.wikipedia.org/wiki/Long_short-term_memory) model to augment the conventional time-series model with information from nearby data points [\1085](https://github.com/stellargraph/stellargraph/pull/1085), [demo][gcn-lstm]

Bug fixes and other changes

- Random walk classes like `UniformRandomWalk` and `BiasedRandomWalk` can have their hyperparameters set on construction, in addition to in each call to `run` [\1179](https://github.com/stellargraph/stellargraph/pull/1179)
- Node feature sampling was made ~4× faster by ensuring a better data layout, this makes some configurations of `GraphSAGE` (and `HinSAGE`) noticeably faster [\1225](https://github.com/stellargraph/stellargraph/pull/1225)
- The `PROTEINS` dataset has been added to `stellargraph.datasets`, for graph classification [\1282](https://github.com/stellargraph/stellargraph/pull/1282)
- The `BlogCatalog3` dataset can now be successfully downloaded again [\1283](https://github.com/stellargraph/stellargraph/pull/1283)
- Knowledge graph model evaluation via `rank_edges_against_all_nodes` now defaults to the `random` strategy for breaking ties, and supports `top` (previous default) and `bottom` as alternatives [\1223](https://github.com/stellargraph/stellargraph/pull/1223)
- Creating a `RelationalFullBatchNodeGenerator` is now significantly faster and requires much less memory (18× speedup and 560× smaller for the `stellargraph.datasets.AIFB` dataset) [\1274](https://github.com/stellargraph/stellargraph/pull/1274)
- `StellarGraph.info` now shows a summary of the edge weights for each edge type [\1240](https://github.com/stellargraph/stellargraph/pull/1240)
- Various documentation, demo and error message fixes and improvements: [\1141](https://github.com/stellargraph/stellargraph/pull/1141), [\1219](https://github.com/stellargraph/stellargraph/pull/1219), [\1246](https://github.com/stellargraph/stellargraph/pull/1246), [\1260](https://github.com/stellargraph/stellargraph/pull/1260), [\1266](https://github.com/stellargraph/stellargraph/pull/1266)
- DevOps changes:
- CI: [\1161](https://github.com/stellargraph/stellargraph/pull/1161), [\1189](https://github.com/stellargraph/stellargraph/pull/1189), [\1230](https://github.com/stellargraph/stellargraph/pull/1230), [\1122](https://github.com/stellargraph/stellargraph/pull/1122)
- Other: [\1197](https://github.com/stellargraph/stellargraph/pull/1197)

0.11.1

[Full Changelog](https://github.com/stellargraph/stellargraph/compare/v0.11.0...v0.11.1)

This bugfix release contains the same code as 0.11.0, and just fixes the metadata in the Anaconda package so that it can be installed successfully.

Bug fixes and other changes

- The [Conda package for StellarGraph](https://anaconda.org/stellargraph/stellargraph) has been updated to require TensorFlow 2.1, as TensorFlow 2.0 is no longer supported. As a result, StellarGraph will currently install via Conda on Linux and Windows - Mac support is waiting on the [TensorFlow 2.1 osx-64 release to Conda](https://github.com/ContinuumIO/anaconda-issues/issues/11697). [\1165](https://github.com/stellargraph/stellargraph/pull/1165)

0.11.0

[Full Changelog](https://github.com/stellargraph/stellargraph/compare/v0.10.0...v0.11.0)

Major features and improvements

- The onboarding/getting-started process has been optimised and improved:
- The README has been rewritten to highlight our numerous demos, and how to get help [\1081](https://github.com/stellargraph/stellargraph/pull/1081)
- [Example Jupyter notebooks](https://github.com/stellargraph/stellargraph/tree/master/demos/) can now be run directly in [Google Colab](https://colab.research.google.com) and [Binder](https://mybinder.org), providing an easy way to get started with StellarGraph - simply click the ![](https://colab.research.google.com/assets/colab-badge.svg) and ![](https://mybinder.org/badge_logo.svg) badges within each notebook. [\1119](https://github.com/stellargraph/stellargraph/pull/1119).
- The [new `demos/basics` directory](demos/basics) contains two notebooks demonstrating how to construct a `StellarGraph` object from Pandas, and from NetworkX [\1074](https://github.com/stellargraph/stellargraph/pull/1074)
- The [GCN node classification demo](demos/node-classification/gcn/gcn-cora-node-classification-example.ipynb) now has more explanation, to serve as an introduction to graph machine learning using StellarGraph [\1125](https://github.com/stellargraph/stellargraph/pull/1125)
- New algorithms:
- Watch Your Step: computes node embeddings by simulating the effect of random walks, rather than doing them. [\750](https://github.com/stellargraph/stellargraph/pull/750).
- Deep Graph Infomax: performs unsupervised node representation learning [\978](https://github.com/stellargraph/stellargraph/issues/978).
- Temporal Random Walks (Continuous-Time Dynamic Network Embeddings): random walks that respect the time that each edge occurred (stored as edge weights) [\1120](https://github.com/stellargraph/stellargraph/issues/1120).
- ComplEx: computes multiplicative complex-number embeddings for entities and relationships (edge types) in knowledge graphs, which can be used for link prediction. [\901](https://github.com/stellargraph/stellargraph/pull/901) [\1080](https://github.com/stellargraph/stellargraph/pull/1080)
- DistMult: computes multiplicative real-number embeddings for entities and relationships (edge types) in knowledge graphs, which can be used for link prediction. [\755](https://github.com/stellargraph/stellargraph/issues/755) [\865](https://github.com/stellargraph/stellargraph/pull/865) [\1136](https://github.com/stellargraph/stellargraph/pull/1136)

Breaking changes

- StellarGraph now requires TensorFlow 2.1 or greater, TensorFlow 2.0 is no longer supported [\1008](https://github.com/stellargraph/stellargraph/pull/1008)
- The legacy constructor using NetworkX graphs has been deprecated [\1027](https://github.com/stellargraph/stellargraph/pull/1027). Migration: replace `StellarGraph(some_networkx_graph)` with `StellarGraph.from_networkx(some_networkx_graph)`, and similarly for `StellarDiGraph`.
- The `build` method on model classes (such as `GCN`) has been renamed to `in_out_tensors` [\1140](https://github.com/stellargraph/stellargraph/pull/1140). Migration: replace `model.build()` with `model.in_out_tensors()`.
- The `node_model` and `link_model` methods on model classes has been replaced by `in_out_tensors` [\1140](https://github.com/stellargraph/stellargraph/pull/1140) (see that PR for the exact list of types). Migration: replace `model.node_model()` with `model.in_out_tensors()` or `model.in_out_tensors(multiplicity=1)`, and `model.node_model()` with `model.in_out_tensors()` or `model.in_out_tensors(multiplicity=2)`.
- Re-exports of calibration and ensembling functionality from the top-level of the `stellargraph` module were deprecated, in favour of importing from the `stellargraph.calibration` or `stellargraph.ensemble` submodules directly [\1107](https://github.com/stellargraph/stellargraph/pull/1107). Migration: replace uses of `stellargraph.Ensemble` with `stellargraph.ensemble.Ensemble`, and similarly for the other names (see [\1107](https://github.com/stellargraph/stellargraph/pull/1107) for all replacements).
- `StellarGraph.to_networkx` parameters now use `attr` to refer to NetworkX attributes, not `name` or `label` [\973](https://github.com/stellargraph/stellargraph/pull/973). Migration: for any named parameters in `graph.to_networkx(...)`, change `node_type_name=...` to `node_type_attr=...` and similarly `edge_type_name` to `edge_type_attr`, `edge_weight_label` to `edge_weight_attr`, `feature_name` to `feature_attr`.
- `StellarGraph.nodes_of_type` is deprecated in favour of the `nodes` method [\1111](https://github.com/stellargraph/stellargraph/pull/1111). Migration: replace `some_graph.nodes_of_type(some_type)` with `some_graph.nodes(node_type=some_type)`.
- `StellarGraph.info` parameters `show_attributes` and `sample` were deprecated [\1110](https://github.com/stellargraph/stellargraph/pull/1110)
- Some more layers and models had many parameters move from `**kwargs` to real arguments: `Attri2Vec` ([\1128](https://github.com/stellargraph/stellargraph/pull/1128)), `ClusterGCN` ([\1129](https://github.com/stellargraph/stellargraph/pull/1129)), `GraphAttention` & `GAT` ([\1130](https://github.com/stellargraph/stellargraph/pull/1130)), `GraphSAGE` & its aggregators ([\1142](https://github.com/stellargraph/stellargraph/pull/1142)), `HinSAGE` & its aggregators ([\1143](https://github.com/stellargraph/stellargraph/pull/1143)), `RelationalGraphConvolution` & `RGCN` ([\1148](https://github.com/stellargraph/stellargraph/pull/1148)). Invalid (e.g. incorrectly spelled) arguments would have been ignored previously, but now may fail with a `TypeError`; to fix, remove or correct the arguments.
- The `method="chebyshev"` option to `FullBatchNodeGenerator`, `FullBatchLinkGenerator` and `GCN_Aadj_feats_op` has been removed for now, because it needed significant revision to be correctly implemented [\1028](https://github.com/stellargraph/stellargraph/pull/1028)
- The `fit_generator`, `evaluate_generator` and `predict_generator` methods on `Ensemble` and `BaggingEnsemble` have been renamed to `fit`, `evaluate` and `predict`, to match the deprecation in TensorFlow 2.1 of the `tensorflow.keras.Model` methods of the same name [\1065](https://github.com/stellargraph/stellargraph/pull/1065). Migration: remove the `_generator` suffix on these methods.
- The `default_model` method on `Attri2Vec`, `GraphSAGE` and `HinSAGE` has been deprecated, in favour of `in_out_tensors` [\1145](https://github.com/stellargraph/stellargraph/pull/1145). Migration: replace `model.default_model()` with `model.in_out_tensors()`.

Experimental features

Some new algorithms and features are still under active development, and are available as an experimental preview. However, they may not be easy to use: their documentation or testing may be incomplete, and they may change dramatically from release to release. The experimental status is noted in the documentation and at runtime via prominent warnings.

- GCNSupervisedGraphClassification: supervised graph classification model based on Graph Convolutional layers (GCN) [\929](https://github.com/stellargraph/stellargraph/issues/929).

Bug fixes and other changes

- `StellarGraph.to_adjacency_matrix` is at least 15× faster on undirected graphs [\932](https://github.com/stellargraph/stellargraph/pull/932)
- `ClusterNodeGenerator` is now noticeably faster, which makes training and predicting with a `ClusterGCN` model faster [\1095](https://github.com/stellargraph/stellargraph/pull/1095). On a random graph with 1000 nodes and 5000 edges and 10 clusters, iterating over an epoch with `q=1` (each clusters individually) is 2× faster, and is even faster for larger `q`. The model in the Cluster-GCN demo notebook using Cora trains 2× faster overall.
- The `node_features=...` parameter to `StellarGraph.from_networkx` now only needs to mention the node types that have features, when passing a dictionary of Pandas DataFrames. Node types that aren't mentioned will automatically have no features (zero-length feature vectors). [\1082](https://github.com/stellargraph/stellargraph/pull/1082)
- A `subgraph` method was added to `StellarGraph` for computing a node-induced subgraph [\958](https://github.com/stellargraph/stellargraph/pull/958)
- A `connected_components` method was added to `StellarGraph` for computing the nodes involved in each connected component in a `StellarGraph` [\958](https://github.com/stellargraph/stellargraph/pull/958)
- The `info` method on `StellarGraph` now shows only 20 node and edge types by default to be more useful for graphs with many types [\993](https://github.com/stellargraph/stellargraph/pull/993). This behaviour can be customized with the `truncate=...` parameter.
- The `info` method on `StellarGraph` now shows information about the size and type of each node type's feature vectors [\979](https://github.com/stellargraph/stellargraph/pull/979)
- The `EdgeSplitter` class supports `StellarGraph` input (and will output `StellarGraph`s in this case), in addition to NetworkX graphs [\1032](https://github.com/stellargraph/stellargraph/pull/1032)
- The `Attri2Vec` model class stores its weights statefully, so they are shared between all tensors computed by `build` [\1101](https://github.com/stellargraph/stellargraph/pull/1101)
- The `GCN` model defaults for some parameters now match the `GraphConvolution` layer's defaults: specifically `kernel_initializer` (`glorot_uniform`) and `bias_initializer` (`zeros`) [\1147](https://github.com/stellargraph/stellargraph/pull/1147)
- The `datasets` submodule is now accessible as `stellargraph.datasets`, after just `import stellargraph` [\1113](https://github.com/stellargraph/stellargraph/pull/1113)
- All datasets in `stellargraph.datasets` now support a `load` method to create a `StellarGraph` object (and other information): `AIFB` ([\982](https://github.com/stellargraph/stellargraph/pull/982)), `CiteSeer` ([\989](https://github.com/stellargraph/stellargraph/pull/989)), `Cora` ([\913](https://github.com/stellargraph/stellargraph/pull/913)), `MovieLens` ([\947](https://github.com/stellargraph/stellargraph/pull/947)), `PubMedDiabetes` ([\986](https://github.com/stellargraph/stellargraph/pull/986)). The demo notebooks using these datasets are now cleaner.
- Some new datasets were added to `stellargraph.datasets`:
- `MUTAG`: a collection of graphs representing chemical compounds [\960](https://github.com/stellargraph/stellargraph/pull/960)
- `WN18`, `WN18RR`: knowledge graphs based on the WordNet linguistics data [\977](https://github.com/stellargraph/stellargraph/pull/977)
- `FB15k`, `FB15k_237`: knowledge graphs based on the FreeBase knowledge base [\977](https://github.com/stellargraph/stellargraph/pull/977)
- `IAEnronEmployees`: a small set of employees of Enron, and the many emails between them [\1058](https://github.com/stellargraph/stellargraph/pull/1058)
- Warnings now point to the call site of the function causing the warning, not the `warnings.warn` call inside StellarGraph; this means `DeprecationWarning`s will be visible in Jupyter notebooks and scripts run with Python 3.7 [\1144](https://github.com/stellargraph/stellargraph/pull/1144)
- Some code that triggered warnings from other libraries was fixed or removed [\995](https://github.com/stellargraph/stellargraph/pull/995) [\1008](https://github.com/stellargraph/stellargraph/pull/1008), [\1051](https://github.com/stellargraph/stellargraph/pull/1051), [\1064](https://github.com/stellargraph/stellargraph/pull/1064), [\1066](https://github.com/stellargraph/stellargraph/pull/1066)
- Some demo notebooks have been updated or fixed: `demos/use-cases/hateful-twitters.ipynb` ([\1019](https://github.com/stellargraph/stellargraph/pull/1019)), `rgcn-aifb-node-classification-example.ipynb` ([\983](https://github.com/stellargraph/stellargraph/pull/983))
- The documentation "quick start" guide duplicated a lot of the information in the README, and so has been replaced with the latter [\1096](https://github.com/stellargraph/stellargraph/pull/1096)
- API documentation now lists items under their recommended import path, not their definition. For instance, `stellargraph.StellarGraph` instead of `stellargraph.core.StellarGraph` ([\1127](https://github.com/stellargraph/stellargraph/pull/1127)), `stellargraph.layer.GCN` instead of `stellargraph.layer.gcn.GCN` ([\1150](https://github.com/stellargraph/stellargraph/pull/1150)) and `stellargraph.datasets.Cora` instead of `stellargraph.datasets.datasets.Cora` ([\1157](https://github.com/stellargraph/stellargraph/pull/1157))
- Some API documentation is now formatted better [\1061](https://github.com/stellargraph/stellargraph/pull/1061), [\1068](https://github.com/stellargraph/stellargraph/pull/1068), [\1070](https://github.com/stellargraph/stellargraph/pull/1070), [\1071](https://github.com/stellargraph/stellargraph/pull/1071)
- DevOps changes:
- Neo4j functionality is now tested on CI, and so will continue working [\1046](https://github.com/stellargraph/stellargraph/pull/1046) [\1050](https://github.com/stellargraph/stellargraph/pull/1050)
- CI: [\967](https://github.com/stellargraph/stellargraph/pull/967), [\968](https://github.com/stellargraph/stellargraph/pull/968), [\1036](https://github.com/stellargraph/stellargraph/pull/1036), [\1067](https://github.com/stellargraph/stellargraph/pull/1067), [\1097](https://github.com/stellargraph/stellargraph/pull/1097)
- Other: [\956](https://github.com/stellargraph/stellargraph/pull/956), [\962](https://github.com/stellargraph/stellargraph/pull/962), [\974](https://github.com/stellargraph/stellargraph/pull/974)

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.