Releases: neo4j/graph-data-science
Graph Data Science 2.0.3
GDS 2.0.3 is compatible with Neo4j 4.3 and 4.4 but not Neo4j 3.5.x, 4.0, 4.1, or 4.2. For a 3.5 compatible release, please see GDS 1.1.7. For a 4.0 compatible release, please see GDS 1.6.5. For a 4.1 or 4.2 compatible release, please see GDS 1.8.6
Bug Fixes
gds.beta.pipeline.[nodeClassification|linkPrediction].addLogisticRegression
and gds.alpha.pipeline.[nodeClassification|linkPrediction].addRandomForest
. This field is not supposed to be set by the user.gds.beta.graphSage.train
when using activationFunction: 'RELU'
, where the training did not compute the correct gradient.gds.beta.graphSage.train
when an invalid user input would result in an No more running tasks exception.
gds.beta.pipeline.linkPrediction.train
where incorrect AUCPR metrics could be returned when using RandomForest.Graph Data Science 2.0.2
GDS 2.0.2 is compatible with Neo4j 4.3 and 4.4 but not Neo4j 3.5.x, 4.0, 4.1, or 4.2. For a 3.5 compatible release, please see GDS 1.1.7. For a 4.0 compatible release, please see GDS 1.6.5. For a 4.1 or 4.2 compatible release, please see GDS 1.8.6
Note: from this release onwards we will also be publishing our estimation CLI tool, that can be used to size GDS instances.
New Features
Bug Fixes
gds.graph.export
where the configured database directory would not be respectedgds.beta.pipeline.linkPrediction.predict.[mutate|stream]
where the procedures threw an error when initialSampler
was specifiedOther Changes
2.0.1
GDS 2.0.1 is compatible with Neo4j 4.3 and 4.4 but not Neo4j 3.5.x, 4.0, 4.1, or 4.2. For a 3.5 compatible release, please see GDS 1.1.7. For a 4.0 compatible release, please see GDS 1.6.5. For a 4.1 or 4.2 compatible release, please see GDS 1.8.6
Bug Fixes
gds.beta.randomWalk.stream
where configuring start nodes could lead to AIOOB exceptions.gds.beta.pipeline.[nodeClassification|linkPrediction].addNodeProperty
where gds.beta.graphSage.mutate
could not be added.Improvements
Graph Data Science 2.0.0
GDS 2.0.0 is compatible with Neo4j 4.3 and 4.4 but not Neo4j 3.5.x, 4.0, 4.1, or 4.2. For a 3.5 compatible release, please see GDS 1.1.7. For a 4.0 compatible release, please see GDS 1.6.5. For a 4.1 or 4.2 compatible release, please see GDS 1.8.6
Breaking changes
- Moved BFS to product tier
Gds.alpha.bfs => gds.bfs.stream
- Added support for
gds.bfs.stream.estimate
- Removed configuration parameter
relationshipWeightProperty
. - Rename configuration parameter
startNodeId
tosourceNode
. - Rename YIELD field
startNodeId
tosourceNode
.
- Moved DFS to product tier
Gds.alpha.bfs => gds.dfs.stream
- Added support for
gds.dfs.stream.estimate
- Removed configuration parameter
relationshipWeightProperty
. - Rename configuration parameter
startNodeId
tosourceNode
. - Rename YIELD field
startNodeId
tosourceNode
.
- Moved KNN to product tier
gds.beta.knn.mutate
=>gds.knn.mutate
gds.beta.knn.stats
=>gds.knn.stats
gds.beta.knn.stream
=>gds.knn.stream
gds.beta.knn.write
=>gds.knn.write
- Removed ANN (superseded by KNN)
nodeWeightProperty
for KNN replaced bynodeProperties
, which accepts multiple properties.
- Similarity:
- Moved alpha similarity functions to product tier.
gds.alpha.similarity.cosine
=>gds.similarity.cosine
gds.alpha.similarity.euclidean
=>gds.similarity.euclidean
gds.alpha.similarity.euclideanDistance
=>gds.similarity.euclideanDistance
gds.alpha.similarity.jaccard
=>gds.similarity.jaccard
gds.alpha.similarity.overlap
=>gds.similarity.overlap
gds.alpha.similarity.pearson
=>gds.similarity.pearson
- Pearson similarity function no longer accepts Lists of Maps, but computes over Lists of Numbers like the other similarity functions.
- Removed
gds.alpha.similarity.asVector
function.
- Removed alpha similarity procedures (similarity metrics added as modes for KNN and Node Similarity).
gds.alpha.similarity.cosine
gds.alpha.similarity.euclidean
gds.alpha.similarity.overlap
gds.alpha.similarity.pearson
gds.alpha.ml.ann
- Moved alpha similarity functions to product tier.
- Moved delta stepping shortest path to product tier
gds.alpha.shortestPath.deltaStepping =>
gds.allShortestPath.delta.[write,stream, mutate, estimate]
- Moved Closeness Centrality to beta tier
gds.alpha.closeness.stream => gds.beta.closeness.stream
gds.alpha.closeness.stats => gds.beta.closeness.stats
gds.alpha.closeness.write => gds.beta.closeness.write
gds.alpha.closeness.mutate => gds.beta.closeness.mutate
- Removed return item
nodes
fromwrite
andmutate
mode. - Renamed configuration parameter
improved
touseWassermanFaust
. - Renamed YIELD field
centrality
toscore
instream
mode.
- Moved link prediction pipeline procedures to
beta
tier:gds.beta.pipeline.linkPrediction.addFeature
gds.beta.pipeline.linkPrediction.addNodeProperty
gds.beta.pipeline.linkPrediction.configureParams
gds.beta.pipeline.linkPrediction.configureSplit
gds.beta.pipeline.linkPrediction.create
gds.beta.pipeline.linkPrediction.predict.mutate
gds.beta.pipeline.linkPrediction.predict.mutate.estimate
gds.beta.pipeline.linkPrediction.predict.stream
gds.beta.pipeline.linkPrediction.predict.stream.estimate
gds.beta.pipeline.linkPrediction.train
gds.beta.pipeline.linkPrediction.train.estimate
.
- Moved node classification pipeline procedures to
beta
tier:gds.beta.pipeline.nodeClassification.selectFeatures
gds.beta.pipeline.nodeClassification.addNodeProperty
gds.beta.pipeline.nodeClassification.configureParams
gds.beta.pipeline.nodeClassification.configureSplit
gds.beta.pipeline.nodeClassification.create
gds.beta.pipeline.nodeClassification.predict.mutate
gds.beta.pipeline.nodeClassification.predict.mutate.estimate
gds.beta.pipeline.nodeClassification.predict.stream
gds.beta.pipeline.nodeClassification.predict.stream.estimate
gds.beta.pipeline.nodeClassification.predict.write
gds.beta.pipeline.nodeClassification.predict.write.estimate
gds.beta.pipeline.nodeClassification.train
gds.beta.pipeline.nodeClassification.train.estimate
.
- Removed non-pipeline versions of Node Classification, including procedures:
gds.alpha.ml.nodeClassification.predict.mutate
gds.alpha.ml.nodeClassification.predict.mutate.estimate
gds.alpha.ml.nodeClassification.predict.stream
gds.alpha.ml.nodeClassification.predict.stream.estimate
gds.alpha.ml.nodeClassification.predict.write
gds.alpha.ml.nodeClassification.predict.write.estimate
gds.alpha.ml.nodeClassification.train
gds.alpha.ml.nodeClassification.train.estimate
- Removed non-pipeline versions of Link Prediction, including procedures:
gds.alpha.ml.linkPrediction.predict.mutate
gds.alpha.ml.linkPrediction.predict.mutate.estimate
gds.alpha.ml.linkPrediction.predict.stream
gds.alpha.ml.linkPrediction.predict.stream.estimate
gds.alpha.ml.linkPrediction.predict.write
gds.alpha.ml.linkPrediction.predict.write.estimate
gds.alpha.ml.linkPrediction.train
gds.alpha.ml.linkPrediction.train.estimate
- Additional changes to node classification & link predictions
- Removed
batchSize
parameter for Node Classification pipeline predict modes, because it is not useful. - The procedure resolution for the
taskName
parameter ofgds.alpha.ml.pipeline.linkPrediction.addNodeProperty
andgds.alpha.ml.pipeline.nodeClassification.addNodeProperty
changed and now requires the inclusion of the tier, e.g.'scaleProperties'
must now be written as'alpha.scaleProperties'
. - Changed node classification and link prediction training pipelines management from the model catalog to the new pipeline catalog. Trained pipelines (which we refer to as models) are still managed in the model catalog.
- Replaced
gds.beta.pipeline.[nodeClassification|linkPrediction].configureParams(pipelineName::String, parameterSpace::List of Map)
bygds.beta.pipeline.[nodeClassification|linkPrediction].addLogisticRegression(pipelineName::String, config::Map
. This also removes the previous default model candidate. - Removed
useBiasFeature
parameter ingds.beta.pipeline.linkPrediction.addLogisticRegression
.
- Removed
- Graph Projection:
- gds.graph.create renamed gds.graph.project
- In
gds.graph.project
, defining the same node property for different labels with differentneoPropertyKeys
is no longer allowed. - Inputs for comparison expressions in
graph.project.subgraph
must resolve to the same type, i.e.,long
ordouble
.
- Removed support for anonymous graph syntax from algorithm execution. Only explicit, named graphs are supported.
- Memory estimation is an exception t...
Graph Data Science 2.0.0 Preview
GDS 2.0.0 is compatible with Neo4j 4.3 and 4.4 but not Neo4j 3.5.x, 4.0, 4.1, or 4.2. For a 3.5 compatible release, please see GDS 1.1.7. For a 4.0 compatible release, please see GDS 1.6.5. For a 4.1 or 4.2 compatible release, please see GDS 1.8.6
Breaking changes
- Moved BFS to product tier
Gds.alpha.bfs => gds.bfs.stream
- Added support for
gds.bfs.stream.estimate
- Removed configuration parameter
relationshipWeightProperty
. - Rename configuration parameter
startNodeId
tosourceNode
. - Rename YIELD field
startNodeId
tosourceNode
.
- Moved DFS to product tier
Gds.alpha.bfs => gds.dfs.stream
- Added support for
gds.dfs.stream.estimate
- Removed configuration parameter
relationshipWeightProperty
. - Rename configuration parameter
startNodeId
tosourceNode
. - Rename YIELD field
startNodeId
tosourceNode
.
- Moved KNN to product tier
gds.beta.knn.mutate
=>gds.knn.mutate
gds.beta.knn.stats
=>gds.knn.stats
gds.beta.knn.stream
=>gds.knn.stream
gds.beta.knn.write
=>gds.knn.write
- Removed ANN (superseded by KNN)
nodeWeightProperty
for KNN replaced bynodeProperties
, which accepts multiple properties.
- Similarity:
- Moved alpha similarity functions to product tier.
gds.alpha.similarity.cosine
=>gds.similarity.cosine
gds.alpha.similarity.euclidean
=>gds.similarity.euclidean
gds.alpha.similarity.euclideanDistance
=>gds.similarity.euclideanDistance
gds.alpha.similarity.jaccard
=>gds.similarity.jaccard
gds.alpha.similarity.overlap
=>gds.similarity.overlap
gds.alpha.similarity.pearson
=>gds.similarity.pearson
- Pearson similarity function no longer accepts Lists of Maps, but computes over Lists of Numbers like the other similarity functions.
- Removed
gds.alpha.similarity.asVector
function.
- Removed alpha similarity procedures (similarity metrics added as modes for KNN and Node Similarity).
gds.alpha.similarity.cosine
gds.alpha.similarity.euclidean
gds.alpha.similarity.overlap
gds.alpha.similarity.pearson
gds.alpha.ml.ann
- Moved alpha similarity functions to product tier.
- Moved delta stepping shortest path to product tier
gds.alpha.shortestPath.deltaStepping =>
gds.allShortestPath.delta.[write,stream, mutate, estimate]
- Moved Closeness Centrality to beta tier
gds.alpha.closeness.stream => gds.beta.closeness.stream
gds.alpha.closeness.stats => gds.beta.closeness.stats
gds.alpha.closeness.write => gds.beta.closeness.write
gds.alpha.closeness.mutate => gds.beta.closeness.mutate
- Removed return item
nodes
fromwrite
andmutate
mode. - Renamed configuration parameter
improved
touseWassermanFaust
. - Renamed YIELD field
centrality
toscore
instream
mode.
- Moved link prediction pipeline procedures to
beta
tier:gds.beta.pipeline.linkPrediction.addFeature
gds.beta.pipeline.linkPrediction.addNodeProperty
gds.beta.pipeline.linkPrediction.configureParams
gds.beta.pipeline.linkPrediction.configureSplit
gds.beta.pipeline.linkPrediction.create
gds.beta.pipeline.linkPrediction.predict.mutate
gds.beta.pipeline.linkPrediction.predict.mutate.estimate
gds.beta.pipeline.linkPrediction.predict.stream
gds.beta.pipeline.linkPrediction.predict.stream.estimate
gds.beta.pipeline.linkPrediction.train
gds.beta.pipeline.linkPrediction.train.estimate
.
- Moved node classification pipeline procedures to
beta
tier:gds.beta.pipeline.nodeClassification.selectFeatures
gds.beta.pipeline.nodeClassification.addNodeProperty
gds.beta.pipeline.nodeClassification.configureParams
gds.beta.pipeline.nodeClassification.configureSplit
gds.beta.pipeline.nodeClassification.create
gds.beta.pipeline.nodeClassification.predict.mutate
gds.beta.pipeline.nodeClassification.predict.mutate.estimate
gds.beta.pipeline.nodeClassification.predict.stream
gds.beta.pipeline.nodeClassification.predict.stream.estimate
gds.beta.pipeline.nodeClassification.predict.write
gds.beta.pipeline.nodeClassification.predict.write.estimate
gds.beta.pipeline.nodeClassification.train
gds.beta.pipeline.nodeClassification.train.estimate
.
- Removed non-pipeline versions of Node Classification, including procedures:
gds.alpha.ml.nodeClassification.predict.mutate
gds.alpha.ml.nodeClassification.predict.mutate.estimate
gds.alpha.ml.nodeClassification.predict.stream
gds.alpha.ml.nodeClassification.predict.stream.estimate
gds.alpha.ml.nodeClassification.predict.write
gds.alpha.ml.nodeClassification.predict.write.estimate
gds.alpha.ml.nodeClassification.train
gds.alpha.ml.nodeClassification.train.estimate
- Removed non-pipeline versions of Link Prediction, including procedures:
gds.alpha.ml.linkPrediction.predict.mutate
gds.alpha.ml.linkPrediction.predict.mutate.estimate
gds.alpha.ml.linkPrediction.predict.stream
gds.alpha.ml.linkPrediction.predict.stream.estimate
gds.alpha.ml.linkPrediction.predict.write
gds.alpha.ml.linkPrediction.predict.write.estimate
gds.alpha.ml.linkPrediction.train
gds.alpha.ml.linkPrediction.train.estimate
- Additional changes to node classification & link predictions
- Removed
batchSize
parameter for Node Classification pipeline predict modes, because it is not useful. - The procedure resolution for the
taskName
parameter ofgds.alpha.ml.pipeline.linkPrediction.addNodeProperty
andgds.alpha.ml.pipeline.nodeClassification.addNodeProperty
changed and now requires the inclusion of the tier, e.g.'scaleProperties'
must now be written as'alpha.scaleProperties'
. - Changed node classification and link prediction training pipelines management from the model catalog to the new pipeline catalog. Trained pipelines (which we refer to as models) are still managed in the model catalog.
- Replaced
gds.beta.pipeline.[nodeClassification|linkPrediction].configureParams(pipelineName::String, parameterSpace::List of Map)
bygds.beta.pipeline.[nodeClassification|linkPrediction].addLogisticRegression(pipelineName::String, config::Map
. This also removes the previous default model candidate. - Removed
useBiasFeature
parameter ingds.beta.pipeline.linkPrediction.addLogisticRegression
.
- Removed
- Graph Projection:
- gds.graph.create renamed gds.graph.project
- In
gds.graph.project
, defining the same node property for different labels with differentneoPropertyKeys
is no longer allowed. - Inputs for comparison expressions in
graph.project.subgraph
must resolve to the same type, i.e.,long
ordouble
.
- Removed support for anonymous graph syntax from algorithm execution. Only explicit, named graphs are supported.
- Memory estimation is an exception t...
Graph Data Science 1.8.6
GDS 1.8.6 is compatible with Neo4j 4.1, 4.2, 4.3 and 4.4 but not Neo4j 3.5.x. For a 3.5 compatible release, please see GDS 1.1.7. For a 4.0 compatible release, please see GDS 1.6.5.
Bug fixes
- Improved parallellism for
gds.beta.pipeline.linkPrediction.predict
for smaller graphs. - Bugfix for memory estimation with Pregel algorithms
Graph Data Science 1.8.5
GDS 1.8.5 is compatible with Neo4j 4.1, 4.2, 4.3 and 4.4 but not Neo4j 3.5.x. For a 3.5 compatible release, please see GDS 1.1.7. For a 4.0 compatible release, please see GDS 1.6.5.
Bug fixes
- Fixed a bug where the optimized compressed memory format for GDS graph projections was unavailable
Graph Data Science 1.8.4
GDS 1.8.4 is compatible with Neo4j 4.1, 4.2, 4.3 and 4.4 but not Neo4j 3.5.x. For a 3.5 compatible release, please see GDS 1.1.7. For a 4.0 compatible release, please see GDS 1.6.5.
Bug fixes
- Fixed a bug where cypher on gds would try to access node properties as relationship properties and vice versa.
- Fixed a bug where
gds.beta.graphSage
would produce incorrect results when specifying the nodeLabels filter. - Fixed a bug where
mutate
used in conjunction withnodeLabels
filter on graphs with multiple node labels and relationship types would sometimes not work correctly. - Fixed a bug where function
gds.alpha.similarity.cosine
and proceduresgds.alpha.similarity.cosine.[stats,stream,write]
returned the absolute value of the cosine computation, instead of the cosine value itself. - Fixed a bug where an invalid license would prevent the Neo4j database from starting
- Fixed a bug where
gds.alpha.closeness
might produce wrong results for directed graphs.
Other changes
- Corrected the definition of
trainFraction
in documentation and removed overly strict validation that requiredtrainFraction + testFraction < 1
.
Graph Data Science 1.8.3
GDS 1.8.3 is compatible with Neo4j 4.1, 4.2, 4.3 and 4.4 but not Neo4j 3.5.x. For a 3.5 compatible release, please see GDS 1.1.7. For a 4.0 compatible release, please see GDS 1.6.5.
Bug fixes
- Fixed a bug where
gds.beta.model.drop
could not drop a previously stored model. - Fixed a bug where
gds.beta.model.publish
resulted in unusable models if the model was also stored before. - Fixed a bug where
gds.alpha.ml.splitRelationships
created relationships with incorrect ids when NodeLabel filtering is used. - Fixed a bug where
gds.alpha.ml.linkPrediction.predict
produced relationships with incorrect nodeIds if node labels are filtered. - Fixed a bug where
gds.alpha.ml.pipeline.linkPrediction.predict.mutate
produced relationships with incorrect nodeIds if node labels are filtered. - Fixed a bug where
gds.beta.graph.create.subgrap
h could associate nodes with the wrong properties.
Graph Data Science 1.8.2
Release Date: 13 January, 2022
GDS 1.8.2 is compatible with Neo4j 4.1, 4.2, 4.3 and 4.4 but not Neo4j 3.5.x. For a 3.5 compatible release, please see GDS 1.1.7. For a 4.0 compatible release, please see GDS 1.6.5.
Bug fixes
- Fixed a bug where
gds.alpha.ml.pipeline.nodeClassification.train
would train a model under the wrong username and not be accessible for the actual user. - Fixed a bug where
gds.triangleCount
andgds.localClusteringCoefficient
might produce wrong results when using a nodeLabels filter. - Fixed a bug where
gds.graph.create
orgds.graph.create.subgraph
did not release allocated memory which can lead to an OutOfMemoryException, especially when applied in a loop.