Skip to content

Releases: neo4j/graph-data-science

GDS 1.6.4

29 Jul 18:37
Compare
Choose a tag to compare

Release date: July 29, 2021

Bug fixes

  • Fixed a bug in gds.create.subgraph which could lead to undefined behaviour or an AIOOB exception when executed on GDS Enterprise Edition.

GDS 1.6.3

22 Jul 12:57
Compare
Choose a tag to compare

Release Date: July 22, 2021

Breaking changes

  • Remove the sharedUpdater parameter from gds.alpha.ml.linkPrediction and gds.alpha.ml.nodeClassification.

New features

Bug fixes

  • Fixed a bug which affected gds.nodeSimilarity.write and gds.alpha.knn.write when being executed in combination with a nodeLabels 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] and gds.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 the similarityDistribution.

Improvements

  • Lower memory footprint for LinkPrediction and NodeClassification.

GDS 1.6.2

08 Jul 19:24
Compare
Choose a tag to compare

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

17 Jun 20:27
Compare
Choose a tag to compare

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 and gds.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

27 May 21:19
Compare
Choose a tag to compare

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
  • 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
  • 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
  • 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.
  • 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.
  • 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.
  • 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.
  • 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
  • The parameter centerSamplingFactor is renamed to positiveSamplingFactor
  • The parameter contextSamplingExponent is renamed to negativeSamplingExponent
  • The model catalog list feature no longer throws an error when a non-existent model name is given
  • Node Classification and Link Prediction”
    • maxStreakCount configuration parameter is renamed to patience. It is used in the train modes of Node Classification and Link Prediction.
    • maxIterations and minIterations configuration parameters are renamed to maxEpochs and minEpochs. 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.
  • Removed 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 and gds.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...
  • Read more

    GDS 1.6 Preview

    20 May 22:23
    Compare
    Choose a tag to compare
    GDS 1.6 Preview Pre-release
    Pre-release

    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
    • 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
    • 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
    • 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.
    • 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.
    • 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.
    • 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.
    • 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
    • The parameter centerSamplingFactor is renamed to positiveSamplingFactor
    • The parameter contextSamplingExponent is renamed to negativeSamplingExponent
  • The model catalog list feature no longer throws an error when a non-existent model name is given
  • Node Classification and Link Prediction”
    • maxStreakCount configuration parameter is renamed to patience. It is used in the train modes of Node Classification and Link Prediction.
    • maxIterations and minIterations configuration parameters are renamed to maxEpochs and minEpochs. 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.
  • Removed 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 and gds.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...
  • Read more

    1.5.2

    11 May 17:48
    Compare
    Choose a tag to compare

    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

    19 Mar 20:41
    Compare
    Choose a tag to compare

    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 and gds.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

    09 Feb 22:35
    Compare
    Choose a tag to compare

    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
    • 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
    • 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.
    • 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 and gds.alpha.hits.mutate.estimate
      • gds.alpha.hits.stats and gds.alpha.hits.stats.estimate
      • gds.alpha.hits.stream and gds.alpha.hits.stream.estimate
      • gds.alpha.hits.write and gds.alpha.hits.write.estimate
    • Added Speaker-Listener Label Propagation Algorithm (SLLPA) to the alpha tier
      • gds.alpha.sllpa.mutate and gds.alpha.sllpa.mutate.estimate
      • gds.alpha.sllpa.stats and gds.alpha.sllpa.stats.estimate
      • gds.alpha.sllpa.stream and gds.alpha.sllpa.stream.estimate
      • gds.alpha.sllpa.write and gds.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 with gds.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 and gds.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 using relationshipDistribution: 'POWER_LAW' applies the distribution to the native orientation.
    • Added centralityDistribution as a return field in gds.betweenness.[write/mutate/stats]
    • Added getNeighbours and isMultiGraph 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 in gds.betweenness.[write/mutate/stats]

    GDS 1.5 Preview

    29 Jan 21:20
    Compare
    Choose a tag to compare
    GDS 1.5 Preview Pre-release
    Pre-release

    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
    • 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
    • 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.
    • 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 and gds.alpha.hits.mutate.estimate
      • gds.alpha.hits.stats and gds.alpha.hits.stats.estimate
      • gds.alpha.hits.stream and gds.alpha.hits.stream.estimate
      • gds.alpha.hits.write and gds.alpha.hits.write.estimate
    • Added Speaker-Listener Label Propagation Algorithm (SLLPA) to the alpha tier
      • gds.alpha.sllpa.mutate and gds.alpha.sllpa.mutate.estimate
      • gds.alpha.sllpa.stats and gds.alpha.sllpa.stats.estimate
      • gds.alpha.sllpa.stream and gds.alpha.sllpa.stream.estimate
      • gds.alpha.sllpa.write and gds.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 with gds.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 and gds.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 using relationshipDistribution: 'POWER_LAW' applies the distribution to the native orientation.
    • Add getNeighbours and isMultiGraph to the Pregel-API.
    • Add centralityDistribution as a return field in gds.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 in gds.betweenness.[write/mutate/stats]