Release Date: 29 January 2021
Warning: This is a preview release and not intended for production use. If you have any feedback, please let us know: https://github.com/neo4j/graph-data-science/issues
GDS 1.5 is compatible with Neo4j 4.0 and 4.1, but not Neo4j 3.5.x. For a 3.5 compatible release, please see GDS 1.1.6.
Breaking changes
- Promote several shortest path algorithms to
betatier: Dijkstra, A*, and Yens k-shortest paths. The APIs have been standardized, and all include the ability to return source/target nodes, nodes traversed, and paths.- This adds procedures
gds.beta.shortestPath.dijkstra.mutategds.beta.shortestPath.dijkstra.mutate.estimategds.beta.shortestPath.dijkstra.streamgds.beta.shortestPath.dijkstra.stream.estimategds.beta.shortestPath.dijkstra.writegds.beta.shortestPath.dijkstra.write.estimategds.beta.shortestPath.astar.mutategds.beta.shortestPath.astar.mutate.estimategds.beta.shortestPath.astar.streamgds.beta.shortestPath.astar.stream.estimategds.beta.shortestPath.astar.writegds.beta.shortestPath.astar.write.estimategds.beta.shortestPath.yens.mutategds.beta.shortestPath.yens.mutate.estimategds.beta.shortestPath.yens.streamgds.beta.shortestPath.yens.stream.estimategds.beta.shortestPath.yens.writegds.beta.shortestPath.yens.write.estimategds.beta.allShortestPaths.dijkstra.mutategds.beta.allShortestPaths.dijkstra.mutate.estimategds.beta.allShortestPaths.dijkstra.streamgds.beta.allShortestPaths.dijkstra.stream.estimategds.beta.allShortestPaths.dijkstra.writegds.beta.allShortestPaths.dijkstra.write.estimate
- And removes alpha procedures
gds.alpha.shortestPath.streamgds.alpha.shortestPath.writegds.alpha.shortestPath.astar.streamgds.alpha.kShortestPaths.streamgds.alpha.kShortestPaths.writegds.alpha.shortestPaths.streamgds.alpha.shortestPaths.write
- This adds procedures
- GDS will now throw an error when a user tries to use a mutate procedure on graphs not stored in the graph catalog (anonymous graphs)
New Features
- Introduced machine learning based multi-class node classification procedures:
- Add
gds.alpha.ml.nodeClassification.trainto train a model to predict a node label - Add
gds.alpha.ml.nodeClassification.predict.mutateto make predictions using a trained model
- Add
- Introduced machine learning based link prediction procedures:
- Add
gds.alpha.linkPrediction.trainprocedure for training Link Prediction models. - Added
gds.alpha.linkPrediction.predict.mutateprocedure for predicting relationships based on a trained Link Prediction model.
- Add
- Added support for list properties as features for
gds.alpha.nodeClassificationgds.beta.fastRPExtendedgds.beta.graphSage
- Added support for storing trained models on disk (Enterprise only)
gds.alpha.model.storegds.alpha.model.loadgds.alpha.model.delete
- Added procedure for publishing trained models (Enterprise only)
Gds.alpha.model.publish
- Added HITS algorithm to the alpha tier
gds.alpha.hits.mutateandgds.alpha.hits.mutate.estimategds.alpha.hits.statsandgds.alpha.hits.stats.estimategds.alpha.hits.streamandgds.alpha.hits.stream.estimategds.alpha.hits.writeandgds.alpha.hits.write.estimate
- Added Speaker-Listener Label Propagation Algorithm (SLLPA) to the alpha tier
gds.alpha.sllpa.mutateandgds.alpha.sllpa.mutate.estimategds.alpha.sllpa.statsandgds.alpha.sllpa.stats.estimategds.alpha.sllpa.streamandgds.alpha.sllpa.stream.estimategds.alpha.sllpa.writeandgds.alpha.sllpa.write.estimate
- Added CSV export capabilities with the
gds.beta.graph.export.csvprocedure to allow users to export their in-memory graph to CSV - Added a progress logging procedure with
gds.beta.listProgress, to return status of running algorithms. This is turned off by default, but can be enabled withgds.progress_tracking_enabledin the config. - Add message reducer capability to Pregel framework to improve memory consumption and computation runtime.
- Add a new
BitIdMapdata structure to represent node id mappings (Enterprise only)- The data structure can lead to a significant reduction in required heap space for an in-memory graph.
- The data structure is used for native graph projections and in some algorithms, e.g., Louvain.
- The data structure is not used in Cypher projections.
- The feature is enabled by default on GDS Enterprise Edition and can be disabled using the
USE_BIT_ID_MAPfeature toggle.
Bug fixes
- Adding projection parameters as additional configuration in
gds.graph.createandgds.graph.create.cypherwill throw an exception if improperly configured, instead of being silently ignored. - Fixed a bug in
gds.alpha.articleRankwhere centrality scores were not normalized correctly
Improvements
- Improved progress logging to write progress per individual node label in
gds.graph.writeNodeProperties. - When a named graph does not exist, the graph catalog will display similarly named stored graphs.
- When a saved model does not exist, the model catalog will display similarly named stored graphs.
- Add
centralityDistributionto the return fields for the write mode of the alpha centrality algorithms. gds.beta.graph.generateusingrelationshipDistribution: 'POWER_LAW'applies the distribution to the native orientation.- Add
getNeighboursandisMultiGraphto the Pregel-API. - Add
centralityDistributionas a return field ingds.betweenness.[write/mutate/stats]
Other Changes
- The PageRank configuration parameter
cacheWeightshas been deprecated. The parameter had no effect. - Deprecate
minimumScore, maximumScore, scoreSumreturn fields ingds.betweenness.[write/mutate/stats]
Recent Graph Data Science Releases
- Graph Data Science 2.22
- Graph Data Science 2.21
- Graph Data Science 2.20
- Graph Data Science 2.19
- Graph Data Science 2.18