Releases: neo4j/graph-data-science
GDS 1.6.4
GDS 1.6.3
Release Date: July 22, 2021
Breaking changes
- Remove the
sharedUpdater
parameter fromgds.alpha.ml.linkPrediction
andgds.alpha.ml.nodeClassification
.
New features
Bug fixes
- Fixed a bug which affected
gds.nodeSimilarity.write
andgds.alpha.knn.write
when being executed in combination with anodeLabels
filter.
The bug either led to an exception or to wrong results due to an incorrect mapping between internal and Neo4j node ids. - Fixed a bug in seeded NodeClassification and LinkPrediction which lead to non-deterministic behaviour.
- Fixed a bug where
gds.nodeSimilarity.[write|mutate]
andgds.beta.knn.[write|mutate]
wrote duplicate relationships if the input graph is undirected. - Fixed a bug in
gds.beta.knn
where negative values in node properties of type float arrays failed when returning thesimilarityDistribution
.
Improvements
- Lower memory footprint for LinkPrediction and NodeClassification.
GDS 1.6.2
Release Date: July 8, 2021
GDS 1.6.2 is compatible with Neo4j 4.3, 4.2, 4.1, and 4.0. It is not compatible with Neo4j 3.5.x - for a compatible release, please see GDS 1.1.6
Bug Fixes
- Fixed a bug in weighted GraphSAGE where the relationshipWeightProperty was not loaded.
- Fixed a bug in
gds.beta.node2vec
where using relationship weights would not work when running concurrently. - Fixed a bug in
gds.graph.create
where the default value could not be changed for array properties.
1.6.1
Release Date: 17 June 2021
GDS 1.6.1 is compatible with Neo4j 4.0, 4.1, 4.2, and 4.3 but not Neo4j 3.5.x. For a 3.5 compatible release, please see GDS 1.1.6.
Bug fixes
- Fixed a bug regarding weighted graphs with multiple relationship types, which affected
gds.beta.graphSage
andgds.alpha.spanningTree
. - Fix
NaN
issue in NodeClassification where computations with very small probability values can cause the result to flip to infinity. - Progress logging (gds.beta.listProgress)
- Fixed a bug where progress events would not be released if computation was abandoned before completion.
- Fixed a bug with Pregel algorithms logging where progress events would not be released on algorithm completion.
- Fixed a bug regarding mutated node properties that could cause an AIOOB exception.
- Fixed a bug where on a node-filtered multi-relationship-type graph KNN and NodeSimilarity could write out of bounds.
- FastRP stream mode explicitly returns a list of floats rather than a list of numbers. This agrees with the other embeddings, and saves users from having to cast/transform when processing the results further in Cypher.
GDS 1.6.0
Release Date: 27 May 2021
GDS 1.6 is compatible with Neo4j 4.0, 4.1, and 4.2 but not Neo4j 3.5.x. For a 3.5 compatible release, please see GDS 1.1.6.
Breaking changes
- Degree centrality has been promoted to the product tier
- Added procedures:
gds.degree.stream.estimate
gds.degree.write.estimate
gds.degree.mutate
gds.degree.mutate.estimate
gds.degree.stats
gds.degree.stats.estimate
- Removed alpha procedures:
gds.alpha.degree.stream
Gds.alpha.degree.write
- Added procedures:
- Article Rank has been promoted to the product tier
- Added procedures:
gds.articleRank.stream
gds.articleRank.stream.estimate
gds.articleRank.write
gds.articleRank.write.estimate
gds.articleRank.mutate
gds.articleRank.mutate.estimate
gds.articleRank.stats
gds.articleRank.stats.estimate
- Removed alpha procedures:
gds.alpha.articleRank.stream
gds.alpha.articleRank.write
- Added procedures:
- Eigenvector Centrality has been promoted to the product tier
- Added procedures:
gds.eigenvector.stream
gds.eigenvector.stream.estimate
gds.eigenvector.write
gds.eigenvector.write.estimate
gds.eigenvector.mutate
gds.eigenvector.mutate.estimate
gds.eigenvector.stats
gds.eigenvector.stats.estimate
- Removed alpha procedures:
gds.alpha.eigenvector.stream
Gds.alpha.eigenvector.write
- Added procedures:
- AStar has been promoted to the product tier
- Added procedures:
gds.astar.stream
gds.astar.stream.estimate
gds.astar.write
gds.astar.write.estimate
gds.astar.mutate
gds.astar.mutate.estimate
- Removed alpha procedures:
gds.beta.astar.stream
gds.beta.astar.stream.estimate
gds.beta.astar.write
gds.beta.astar.write.estimate
gds.beta.astar.mutate
gds.beta.astar.mutate.estimate
- The parameter
path
was removed. The path computation is controlled by the YIELD.
- Added procedures:
- Yens K Shortest Paths has been promoted to the product tier:
- Added procedures:
gds.yens.stream
gds.yens.stream.estimate
gds.yens.write
gds.yens.write.estimate
gds.yens.mutate
gds.yens.mutate.estimate
- Removed alpha procedures:
gds.beta.yens.stream
gds.beta.yens.stream.estimate
gds.beta.yens.write
gds.beta.yens.write.estimate
gds.beta.yens.mutate
gds.beta.yens.mutate.estimate
- The parameter
path
was removed. The path computation is controlled by the cypher YIELD sub-clause.
- Added procedures:
- Dijkstra Source-Target has been promoted to the product tier:
- Added procedures:
gds.shortestPath.dijkstra.stream
gds.shortestPath.dijkstra.stream.estimate
gds.shortestPath.dijkstra.write
gds.shortestPath.dijkstra.write.estimate
gds.shortestPath.dijkstra.mutate
gds.shortestPath.dijkstra.mutate.estimate
- Removed alpha procedures:
gds.beta.shortestPath.dijkstra.stream
gds.beta.shortestPath.dijkstra.stream.estimate
gds.beta.shortestPath.dijkstra.write
gds.beta.shortestPath.dijkstra.write.estimate
gds.beta.shortestPath.dijkstra.mutate
gds.beta.shortestPath.dijkstra.mutate.estimate
- The parameter
path
was removed. The path computation is controlled by the cypher YIELD sub-clause.
- Added procedures:
- Dijkstra Single-Source has been promoted to the product tier:
- Added procedures:
gds.allShortestPath.dijkstra.stream
gds.allShortestPath.dijkstra.stream.estimate
gds.allShortestPath.dijkstra.write
gds.allShortestPath.dijkstra.write.estimate
gds.allShortestPath.dijkstra.mutate
gds.allShortestPath.dijkstra.mutate.estimate
- Removed alpha procedures:
gds.beta.allShortestPath.dijkstra.stream
gds.beta.allShortestPath.dijkstra.stream.estimate
gds.beta.allShortestPath.dijkstra.write
gds.beta.allShortestPath.dijkstra.write.estimate
gds.beta.allShortestPath.dijkstra.mutate
gds.beta.allShortestPath.dijkstra.mutate.estimate
- The parameter
path
was removed. The path computation is controlled by the cypher YIELD sub-clause.
- Added procedures:
- Node2Vec has been promoted to the beta tier
- Added procedures:
gds.beta.node2vec.stream
gds.beta.node2vec.stream.estimate
gds.beta.node2vec.write
gds.beta.node2vec.write.estimate
gds.beta.node2vec.mutate
gds.beta.node2vec.mutate.estimate
- Removed alpha procedures:
gds.alpha.node2vec.stream
gds.alpha.node2vec.write
- Added procedures:
- The parameter
centerSamplingFactor
is renamed topositiveSamplingFactor
- The parameter
contextSamplingExponent
is renamed tonegativeSamplingExponent
maxStreakCount
configuration parameter is renamed topatience
. It is used in the train modes of Node Classification and Link Prediction.maxIterations
andminIterations
configuration parameters are renamed tomaxEpochs
andminEpochs
. It is used in the train modes of Node Classification and Link Prediction.windowSize
configuration parameters is removed from the train modes of Node Classification and Link Prediction.
gds.alpha.ml.linkPrediction.train
configuration parameter classRatio
is renamed to negativeClassWeight
. It is also mandatory now.
degreeAsProperty
configuration parameter from GraphSAGE
- The same effect can be achieved by using
gds.degree.mutate
and use the mutated property as feature for GraphSAGE training. - Important: GraphSAGE models persisted with earlier versions of GDS are not compatible with this version.
New features
- New ScaleProperties procedures to transform and scale node properties. Available scalers: Min-max, Max, Mean, Log, Standard Score, L1 Norm, L2 Norm
gds.alpha.scaleProperties.stream
gds.alpha.scaleProperties.mutate
- Added ability to create new in-memory graphs by filtering existing named graphs based on node and relationship properties with new catalog procedure
gds.beta.graph.create.subgraph
- Two new centrality algorithms for influence maximization were contributed by community member @xkitsios
gds.alpha.influenceMaximization.celf.stream
gds.alpha.influenceMaximization.greedy.stream
- Link Prediction:
- Added support for storing, loading and publishing Link Prediction models.
- Added progress logging for
gds.alpha.ml.linkPrediction.train
andgds.alpha.ml.linkPrediction.predict
. - Added write and stream modes to
gds.alpha.ml.linkPrediction.predict
gds.alpha.ml.linkPrediction.stream
gds.alpha.ml.linkPrediction.write
- Added estimate mode for Link Prediction:
gds.alpha.ml.linkPrediction.train.estimate
gds.alpha.ml.lin...
GDS 1.6 Preview
Release Date: 20 May 2021
GDS 1.6 is compatible with Neo4j 4.0, 4.1, and 4.2 but not Neo4j 3.5.x. For a 3.5 compatible release, please see GDS 1.1.6.
Breaking changes
- Degree centrality has been promoted to the product tier
- Added procedures:
gds.degree.stream.estimate
gds.degree.write.estimate
gds.degree.mutate
gds.degree.mutate.estimate
gds.degree.stats
gds.degree.stats.estimate
- Removed alpha procedures:
gds.alpha.degree.stream
Gds.alpha.degree.write
- Added procedures:
- Article Rank has been promoted to the product tier
- Added procedures:
gds.articleRank.stream
gds.articleRank.stream.estimate
gds.articleRank.write
gds.articleRank.write.estimate
gds.articleRank.mutate
gds.articleRank.mutate.estimate
gds.articleRank.stats
gds.articleRank.stats.estimate
- Removed alpha procedures:
gds.alpha.articleRank.stream
gds.alpha.articleRank.write
- Added procedures:
- Eigenvector Centrality has been promoted to the product tier
- Added procedures:
gds.eigenvector.stream
gds.eigenvector.stream.estimate
gds.eigenvector.write
gds.eigenvector.write.estimate
gds.eigenvector.mutate
gds.eigenvector.mutate.estimate
gds.eigenvector.stats
gds.eigenvector.stats.estimate
- Removed alpha procedures:
gds.alpha.eigenvector.stream
Gds.alpha.eigenvector.write
- Added procedures:
- AStar has been promoted to the product tier
- Added procedures:
gds.astar.stream
gds.astar.stream.estimate
gds.astar.write
gds.astar.write.estimate
gds.astar.mutate
gds.astar.mutate.estimate
- Removed alpha procedures:
gds.beta.astar.stream
gds.beta.astar.stream.estimate
gds.beta.astar.write
gds.beta.astar.write.estimate
gds.beta.astar.mutate
gds.beta.astar.mutate.estimate
- The parameter
path
was removed. The path computation is controlled by the YIELD.
- Added procedures:
- Yens K Shortest Paths has been promoted to the product tier:
- Added procedures:
gds.yens.stream
gds.yens.stream.estimate
gds.yens.write
gds.yens.write.estimate
gds.yens.mutate
gds.yens.mutate.estimate
- Removed alpha procedures:
gds.beta.yens.stream
gds.beta.yens.stream.estimate
gds.beta.yens.write
gds.beta.yens.write.estimate
gds.beta.yens.mutate
gds.beta.yens.mutate.estimate
- The parameter
path
was removed. The path computation is controlled by the cypher YIELD sub-clause.
- Added procedures:
- Dijkstra Source-Target has been promoted to the product tier:
- Added procedures:
gds.shortestPath.dijkstra.stream
gds.shortestPath.dijkstra.stream.estimate
gds.shortestPath.dijkstra.write
gds.shortestPath.dijkstra.write.estimate
gds.shortestPath.dijkstra.mutate
gds.shortestPath.dijkstra.mutate.estimate
- Removed alpha procedures:
gds.beta.shortestPath.dijkstra.stream
gds.beta.shortestPath.dijkstra.stream.estimate
gds.beta.shortestPath.dijkstra.write
gds.beta.shortestPath.dijkstra.write.estimate
gds.beta.shortestPath.dijkstra.mutate
gds.beta.shortestPath.dijkstra.mutate.estimate
- The parameter
path
was removed. The path computation is controlled by the cypher YIELD sub-clause.
- Added procedures:
- Dijkstra Single-Source has been promoted to the product tier:
- Added procedures:
gds.allShortestPath.dijkstra.stream
gds.allShortestPath.dijkstra.stream.estimate
gds.allShortestPath.dijkstra.write
gds.allShortestPath.dijkstra.write.estimate
gds.allShortestPath.dijkstra.mutate
gds.allShortestPath.dijkstra.mutate.estimate
- Removed alpha procedures:
gds.beta.allShortestPath.dijkstra.stream
gds.beta.allShortestPath.dijkstra.stream.estimate
gds.beta.allShortestPath.dijkstra.write
gds.beta.allShortestPath.dijkstra.write.estimate
gds.beta.allShortestPath.dijkstra.mutate
gds.beta.allShortestPath.dijkstra.mutate.estimate
- The parameter
path
was removed. The path computation is controlled by the cypher YIELD sub-clause.
- Added procedures:
- Node2Vec has been promoted to the beta tier
- Added procedures:
gds.beta.node2vec.stream
gds.beta.node2vec.stream.estimate
gds.beta.node2vec.write
gds.beta.node2vec.write.estimate
gds.beta.node2vec.mutate
gds.beta.node2vec.mutate.estimate
- Removed alpha procedures:
gds.alpha.node2vec.stream
gds.alpha.node2vec.write
- Added procedures:
- The parameter
centerSamplingFactor
is renamed topositiveSamplingFactor
- The parameter
contextSamplingExponent
is renamed tonegativeSamplingExponent
maxStreakCount
configuration parameter is renamed topatience
. It is used in the train modes of Node Classification and Link Prediction.maxIterations
andminIterations
configuration parameters are renamed tomaxEpochs
andminEpochs
. It is used in the train modes of Node Classification and Link Prediction.windowSize
configuration parameters is removed from the train modes of Node Classification and Link Prediction.
gds.alpha.ml.linkPrediction.train
configuration parameter classRatio
is renamed to negativeClassWeight
. It is also mandatory now.
degreeAsProperty
configuration parameter from GraphSAGE
- The same effect can be achieved by using
gds.degree.mutate
and use the mutated property as feature for GraphSAGE training. - Important: GraphSAGE models persisted with earlier versions of GDS are not compatible with this version.
New features
- New ScaleProperties procedures to transform and scale node properties. Available scalers: Min-max, Max, Mean, Log, Standard Score, L1 Norm, L2 Norm
gds.alpha.scaleProperties.stream
gds.alpha.scaleProperties.mutate
- Added ability to create new in-memory graphs by filtering existing named graphs based on node and relationship properties with new catalog procedure
gds.beta.graph.create.subgraph
- Two new centrality algorithms for influence maximization were contributed by community member @xkitsios
gds.alpha.influenceMaximization.celf.stream
gds.alpha.influenceMaximization.greedy.stream
- Link Prediction:
- Added support for storing, loading and publishing Link Prediction models.
- Added progress logging for
gds.alpha.ml.linkPrediction.train
andgds.alpha.ml.linkPrediction.predict
. - Added write and stream modes to
gds.alpha.ml.linkPrediction.predict
gds.alpha.ml.linkPrediction.stream
gds.alpha.ml.linkPrediction.write
- Added estimate mode for Link Prediction:
gds.alpha.ml.linkPrediction.train.estimate
gds.alpha.ml.lin...
1.5.2
Release Date: 11 May 2021
GDS 1.5 is compatible with Neo4j 4.0, 4.1, and 4.2 but not Neo4j 3.5.x. For a 3.5 compatible release, please see GDS 1.1.6.
Bug fixes
- Fixed a bug in FastRPExtended concerning implementation internals, especially when propertyDimesion == embeddingDimension output contained NaNs.
- Fixed a bug where Alpha similarity algorithms in some cases could fail on division by 0 when writing results back.
- Fixed an issue where gds.graph.drop could take a long time when the graph contained node embeddings.
- Fixed a bug where gds.beta.graphSage.train was failing in the presence of array properties.
1.5.1
Release Date: 3 March, 2021
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.
Bug fixes
- Fixed a bug which caused
gds.graph.list
andgds.graph.drop
to throw an error when specifying a graph with duplicate property keys by failing early. - Fixed potential ArrayIndexOutOfBoundsException when running
gds.triangleCount
on a relationship-filtered graph. - Fixed a bug that can lead to inconsistencies when writing or mutating new relationships created from a label-filtered graph.
Improvements
- Progress logging: Removed a "disabled" log message from the database startup when GDS was running in its default configuration. It is replaced with a more elaborate "enabled" message when the progress tracking feature is enabled.
- We now return the name of the current database in the error message if graph is not found.
1.5.0
Release Date: 9 February, 2021
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
beta
tier: 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.mutate
gds.beta.shortestPath.dijkstra.mutate.estimate
gds.beta.shortestPath.dijkstra.stream
gds.beta.shortestPath.dijkstra.stream.estimate
gds.beta.shortestPath.dijkstra.write
gds.beta.shortestPath.dijkstra.write.estimate
gds.beta.shortestPath.astar.mutate
gds.beta.shortestPath.astar.mutate.estimate
gds.beta.shortestPath.astar.stream
gds.beta.shortestPath.astar.stream.estimate
gds.beta.shortestPath.astar.write
gds.beta.shortestPath.astar.write.estimate
gds.beta.shortestPath.yens.mutate
gds.beta.shortestPath.yens.mutate.estimate
gds.beta.shortestPath.yens.stream
gds.beta.shortestPath.yens.stream.estimate
gds.beta.shortestPath.yens.write
gds.beta.shortestPath.yens.write.estimate
gds.beta.allShortestPaths.dijkstra.mutate
gds.beta.allShortestPaths.dijkstra.mutate.estimate
gds.beta.allShortestPaths.dijkstra.stream
gds.beta.allShortestPaths.dijkstra.stream.estimate
gds.beta.allShortestPaths.dijkstra.write
gds.beta.allShortestPaths.dijkstra.write.estimate
- And removes alpha procedures
gds.alpha.shortestPath.stream
gds.alpha.shortestPath.write
gds.alpha.shortestPath.astar.stream
gds.alpha.kShortestPaths.stream
gds.alpha.kShortestPaths.write
gds.alpha.shortestPaths.stream
gds.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.train
to train a model to predict a node label - Add
gds.alpha.ml.nodeClassification.predict.mutate
to make predictions using a trained model
- Add
- Introduced machine learning based link prediction procedures:
- Add
gds.alpha.linkPrediction.train
procedure for training Link Prediction models. - Added
gds.alpha.linkPrediction.predict.mutate
procedure for predicting relationships based on a trained Link Prediction model.
- Add
- Added support for list properties as features for
gds.alpha.nodeClassification
gds.beta.fastRPExtended
gds.beta.graphSage
- Added support for storing trained models on disk (Enterprise only)
gds.alpha.model.store
gds.alpha.model.load
gds.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.mutate
andgds.alpha.hits.mutate.estimate
gds.alpha.hits.stats
andgds.alpha.hits.stats.estimate
gds.alpha.hits.stream
andgds.alpha.hits.stream.estimate
gds.alpha.hits.write
andgds.alpha.hits.write.estimate
- Added Speaker-Listener Label Propagation Algorithm (SLLPA) to the alpha tier
gds.alpha.sllpa.mutate
andgds.alpha.sllpa.mutate.estimate
gds.alpha.sllpa.stats
andgds.alpha.sllpa.stats.estimate
gds.alpha.sllpa.stream
andgds.alpha.sllpa.stream.estimate
gds.alpha.sllpa.write
andgds.alpha.sllpa.write.estimate
- Added CSV export capabilities with the
gds.beta.graph.export.csv
procedure to allow users to export their in-memory graph to CSV - Add message reducer capability to Pregel framework to improve memory consumption and computation runtime.
- 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_enabled
in the config. - Add a new
BitIdMap
data 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_MAP
feature toggle.
Bug fixes
- Adding projection parameters as additional configuration in
gds.graph.create
andgds.graph.create.cypher
will throw an exception if improperly configured, instead of being silently ignored. - Fixed a bug in
gds.alpha.articleRank
where centrality scores were not normalized correctly - Fixed a bug in path stream procedures where the path object (
path: true
) used incorrect node identifiers. - Fixed a bug in path write procedures where the relationship property
nodeIds
contained incorrect node identifiers. - Fixed a race condition that could cause exceptions thrown by scheduled tasks to be supressed.
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.
- Added
centralityDistribution
to the return fields for the write mode of the alpha centrality algorithms. gds.beta.graph.generate
usingrelationshipDistribution: 'POWER_LAW'
applies the distribution to the native orientation.- Added
centralityDistribution
as a return field ingds.betweenness.[write/mutate/stats]
- Added
getNeighbours
andisMultiGraph
to the Pregel-API. - Added new message queue implementations for the Pregel framework, which
- replace the previously used JCTools queue and work with primitive double arrays instead of boxed values.
- lead to 3x to 5x faster runtimes for Pregel based algorithms.
- reduce GC pressure due to less object allocations which leads to more predictable runtimes.
- support synchronous and asynchronous Pregel computations.
Other Changes
- The PageRank configuration parameter
cacheWeights
has been deprecated. The parameter had no effect. - Deprecated
minimumScore, maximumScore, scoreSum
return fields ingds.betweenness.[write/mutate/stats]
GDS 1.5 Preview
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
beta
tier: 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.mutate
gds.beta.shortestPath.dijkstra.mutate.estimate
gds.beta.shortestPath.dijkstra.stream
gds.beta.shortestPath.dijkstra.stream.estimate
gds.beta.shortestPath.dijkstra.write
gds.beta.shortestPath.dijkstra.write.estimate
gds.beta.shortestPath.astar.mutate
gds.beta.shortestPath.astar.mutate.estimate
gds.beta.shortestPath.astar.stream
gds.beta.shortestPath.astar.stream.estimate
gds.beta.shortestPath.astar.write
gds.beta.shortestPath.astar.write.estimate
gds.beta.shortestPath.yens.mutate
gds.beta.shortestPath.yens.mutate.estimate
gds.beta.shortestPath.yens.stream
gds.beta.shortestPath.yens.stream.estimate
gds.beta.shortestPath.yens.write
gds.beta.shortestPath.yens.write.estimate
gds.beta.allShortestPaths.dijkstra.mutate
gds.beta.allShortestPaths.dijkstra.mutate.estimate
gds.beta.allShortestPaths.dijkstra.stream
gds.beta.allShortestPaths.dijkstra.stream.estimate
gds.beta.allShortestPaths.dijkstra.write
gds.beta.allShortestPaths.dijkstra.write.estimate
- And removes alpha procedures
gds.alpha.shortestPath.stream
gds.alpha.shortestPath.write
gds.alpha.shortestPath.astar.stream
gds.alpha.kShortestPaths.stream
gds.alpha.kShortestPaths.write
gds.alpha.shortestPaths.stream
gds.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.train
to train a model to predict a node label - Add
gds.alpha.ml.nodeClassification.predict.mutate
to make predictions using a trained model
- Add
- Introduced machine learning based link prediction procedures:
- Add
gds.alpha.linkPrediction.train
procedure for training Link Prediction models. - Added
gds.alpha.linkPrediction.predict.mutate
procedure for predicting relationships based on a trained Link Prediction model.
- Add
- Added support for list properties as features for
gds.alpha.nodeClassification
gds.beta.fastRPExtended
gds.beta.graphSage
- Added support for storing trained models on disk (Enterprise only)
gds.alpha.model.store
gds.alpha.model.load
gds.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.mutate
andgds.alpha.hits.mutate.estimate
gds.alpha.hits.stats
andgds.alpha.hits.stats.estimate
gds.alpha.hits.stream
andgds.alpha.hits.stream.estimate
gds.alpha.hits.write
andgds.alpha.hits.write.estimate
- Added Speaker-Listener Label Propagation Algorithm (SLLPA) to the alpha tier
gds.alpha.sllpa.mutate
andgds.alpha.sllpa.mutate.estimate
gds.alpha.sllpa.stats
andgds.alpha.sllpa.stats.estimate
gds.alpha.sllpa.stream
andgds.alpha.sllpa.stream.estimate
gds.alpha.sllpa.write
andgds.alpha.sllpa.write.estimate
- Added CSV export capabilities with the
gds.beta.graph.export.csv
procedure 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_enabled
in the config. - Add message reducer capability to Pregel framework to improve memory consumption and computation runtime.
- Add a new
BitIdMap
data 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_MAP
feature toggle.
Bug fixes
- Adding projection parameters as additional configuration in
gds.graph.create
andgds.graph.create.cypher
will throw an exception if improperly configured, instead of being silently ignored. - Fixed a bug in
gds.alpha.articleRank
where 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
centralityDistribution
to the return fields for the write mode of the alpha centrality algorithms. gds.beta.graph.generate
usingrelationshipDistribution: 'POWER_LAW'
applies the distribution to the native orientation.- Add
getNeighbours
andisMultiGraph
to the Pregel-API. - Add
centralityDistribution
as a return field ingds.betweenness.[write/mutate/stats]
Other Changes
- The PageRank configuration parameter
cacheWeights
has been deprecated. The parameter had no effect. - Deprecate
minimumScore, maximumScore, scoreSum
return fields ingds.betweenness.[write/mutate/stats]