10 ms·
StellarGraph v0.10 Open-Source Python Machine Learning Library for Graphs
StellarGraph is an open-source library featuring state-of-the-art graph machine learning algorithms. The project is delivered as part of CSIRO’s Data61.
Dramatically improved memory usage is the key feature of the 0.10 release of the library, with the StellarGraph and StellarDiGraph classes now backed by NumPy and Pandas. This will enable significant performance benefits.
Version 0.10 (https://github.com/stellargraph/stellargraph/releases/tag/v0.10.0) also features two new algorithms:
- Link prediction with directed GraphSAGE
- GraphWave, which computes structural node embeddings by using wavelet transforms on the graph Laplacian.
Other new algorithms and features remain under active development, but are available in this release as experimental previews. These include:
- Temporal Random Walks: random walks that respect the time that each edge occurred (stored as edge weights)
- Watch Your Step: computes node embeddings by simulating the effect of random walks, rather than doing them
- ComplEx: computes embeddings for nodes and edge types in knowledge graphs, and uses these to perform link prediction
- Neo4j connector: the GraphSAGE algorithm can execute neighbourhood sampling from a Neo4j database, so the edges of a graph do not have to fit into memory.
The new release also incorporates key bug fixes and improvements:
- StellarGraph now supports TensorFlow 2.1
- Demos now focus on Jupyter notebooks
- Supervised GraphSAGE Node Attribute Inference algorithm is now reproducible
- Code for saliency maps/interpretability refactored to have more sharing, making it cleaner and easier to extend
- Demo notebooks predominantly tested on CI using Papermill, so won't become out of date.
Find StellarGraph on GitHub (https://github.com/stellargraph/stellargraph).
We welcome your feedback and contributions.
Until next time, the StellarGraph team.
- nickmancol 7y agoThis looks great. Thank you!
- mooneater 7y agoCool! Can this be used for graphs far larger than core memory? If not what would you suggest for that case?
- StellarGraph 7y agoHi @mooneater. At the moment, the library is focused on graphs that fit in memory. Managing out-of-core data brings a whole extra layer of caching, data transfer and data management complexity; we prefer to focus on extending and increasing the algorithms we support. We think this is the appropriate trade-off because many problems involve relatively small graphs, and, even for larger ones, it’s getting easier and cheaper to rent machines with hundreds of gigabytes or even terabytes of RAM. That said, we do have experimental support for running GraphSAGE against a graph stored in Neo4j, and we’re working towards better support for Neo4j in general, e.g. https://github.com/stellargraph/stellargraph/issues/1034 https://github.com/stellargraph/stellargraph/issues/1034.