Releases: neo4j/graph-data-science
Graph Data Science 2.1.0
GDS 2.1.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.7
Breaking Changes
- Removed the redundant information of parameter space and split config from the info of the models trained by
gds.beta.pipeline.[nodeClassification|linkPrediction].train
. The information is now accessible only via the Pipeline Catalog. - Removed the label parameter from
gds.graph.removeNodeProperties
. - Supported config parameters are
timeoutInSeconds
andconcurrency
New Features
- (Enterprise Only) Apache Arrow and Flight RPC can now be used to improve certain import and export tasks:
- Project a new in-memory graph or Neo4j database via Arrow Flight RPC, for example by using
gds.alpha.graph.construct
from the GDS Python client - Export node, relationship, and graph properties directly via Arrow Flight RPC, for example by using the existing
stream*Properties
functionality from the GDS Python client - Flight RPC is secured with the same authorization and encryption that the Neo4j database is using
- Project a new in-memory graph or Neo4j database via Arrow Flight RPC, for example by using
- New Algorithm: K-Means Clustering. Added the following procedures:
gds.alpha.kmeans.mutate
gds.alpha.kmeans.stats
gds.alpha.kmeans.stream
gds.alpha.kmeans.write
- New Algorithm: Leiden. Added the following procedures:
gds.alpha.leiden.mutate
gds.alpha.leiden.stats
gds.alpha.leiden.stream
gds.alpha.leiden.stream
- Added new similarity variant, Filtered Node Similarity, to alpha tier, accepting source and target node filters
gds.alpha.nodeSimilarity.filtered.mutate
gds.alpha.nodeSimilarity.filtered.stream
gds.alpha.nodeSimilarity.filtered.write
gds.alpha.nodeSimilarity.filtered.stats
- Added new similarity variant Filtered KNN to alpha tier, accepting source and target node filters
gds.alpha.knn.filtered.mutate
gds.alpha.knn.filtered.stream
gds.alpha.knn.filtered.write
gds.alpha.knn.filtered.stats
- Added new procedures for delta stepping:
gds.allShortestPaths.delta.stats
gds.allShortestPaths.delta.stats.estimate
- Added new procedures for BFS:
gds.bfs.stats
gds.bfs.stats.estimate
- Added Node Regression Pipelines with the following procedures
gds.alpha.pipeline.nodeRegression.create
gds.alpha.pipeline.nodeRegression.configureAutoTuning
gds.alpha.pipeline.nodeRegression.configureSplit
gds.alpha.pipeline.nodeRegression.addLinearRegression
gds.alpha.pipeline.nodeRegression.addRandomForest
gds.alpha.pipeline.nodeRegression.addNodeProperty
gds.alpha.pipeline.nodeRegression.selectFeatures
gds.alpha.pipeline.nodeRegression.train
gds.alpha.pipeline.nodeRegression.predict.stream
gds.alpha.pipeline.nodeRegression.predict.mutate
- Autotuning Support for Machine Learning Pipelines:
- Added new procedures
gds.alpha.pipeline.[nodeClassification|nodeRegression|linkPrediction].configureAutoTuning
. - Added syntax to specify ranges for parameters in
gds.alpha.pipeline.[linkPrediction|nodeClassification|nodeRegression].addRandomForest
,gds.beta.pipeline.[linkPrediction|nodeClassification].addLogisticRegression
, andgds.alpha.nodeRegression.addLinearRegression
- Added new procedures
- Additional Machine Learning Pipeline Functionality:
- Exposed
learningRate
for theLogisticRegression
models, which can be added usinggds.beta.pipeline.[nodeClassification|linkPrediction].addLogisticRegression
- Exposed
minLeafSize
forRandomForest
models, which can be added usinggds.alpha.pipeline.[nodeClassification|linkPrediction].addRandomForest
- Exposed
criterion
forRandomForestClassification
models, which can be added usinggds.alpha.pipeline.[nodeClassification|linkPrediction].addRandomForest
. Also added support for theENTROPY
impurity criterion. - Updated structure of
modelSelectionStats
yield ingds.beta.pipeline.[linkPrediction, nodeClassification].train
. - Support
OUT_OF_BAG_ERROR
metric ingds.beta.pipeline.[linkPrediction, nodeClassification].train
which applies only to RandomForest models. - Expose
batchesPerIteration
ingds.beta.graphSage.train
to configure the number of batches considered per iteration.
- Exposed
- Cypher Aggregation now accepts any INTEGER value for source and target nodes
- Added
ShardedIdMap
which adds support for external node ids ranging from0
toLong.MAX_VALUE
.- The id map is disabled by default and can be enabled via feature toggle
USE_SHARDED_ID_MAP
.
- The id map is disabled by default and can be enabled via feature toggle
- Added procedures for exporting graph properties to the alpha tier
gds.alpha.graph.streamGraphProperty
gds.alpha.graph.removeGraphProperty
- Exposed a new string config parameter
jobId
for graph projection and algorithm procedures, which allows for easier tracking of a job via e.g.gds.beta.listProgress
.
Bug fixes
- Fixed a bug in
gds.beta.pipeline.[nodeClassification|linkPrediction].addNodeProperty
wheregds.beta.graphSage.mutate
could not be added. - Fixed a bug where the procedures
gds.beta.pipeline.linkPrediction.predict.[mutate|stream]
threw an error when given the argumentinitialSampler
. - Fixed a bug with running Triangle Count on filtered graphs that could cause an ArrayIndexOutOfBounds Error.
- Fixed a bug where
graphSage.train
incorrectly reporteddidConverge
as false. - Fixed a bug in CollapsePath where a provided
nodeFilter
would be ignored (GH 194) - Fixed a bug in
gds.louvain.stream
when theconsecutiveIds
parameter was enabled. - Fixed a bug in RandomWalk where not consuming all stream results could lead to a state where GDS would become unable to run further procedures
Improvements
- When a query is failed by the memory guard, information is logged as well as sent to the user in the raised exception.
- Added new methods to Pregel contexts which allow translating between internal and original node id space.
- Machine learning pipelines
gds.beta.pipeline.[nodeClassification|linkPrediction].train.estimate
now incorporates memory usage of random forest training into account when applicable.gds.beta.pipeline.[nodeClassification|linkPrediction].predict.[mutate,stream,write].estimate
now take random forest prediction memory overhead- Improve early validation of graph and prediction pipeline in
gds.beta.pipeline.[nodeClassification|linkPrediction].predict
. - Improve memory estimation for
gds.beta.pipeline.[nodeClassification|linkPrediction].train.estimate
. - Improve memory estimation in
gds.beta.pipeline.linkPrediction.train.estimate
. - Add training method specific debug le...
2.1.0-Preview
GDS 2.1.0-preview 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.7
Breaking Changes
- Removed the redundant information of parameter space and split config from the info of the models trained by
gds.beta.pipeline.[nodeClassification|linkPrediction].train
. The information is now accessible only via the Pipeline Catalog. - Removed the label parameter from
gds.graph.removeNodeProperties
. - Supported config parameters are
timeoutInSeconds
andconcurrency
New Features
- (Enterprise Only) Apache Arrow and Flight RPC can now be used to improve certain import and export tasks:
- Project a new in-memory graph or Neo4j database via Arrow Flight RPC, for example by using
gds.alpha.graph.construct
from the GDS Python client - Export node, relationship, and graph properties directly via Arrow Flight RPC, for example by using the existing
stream*Properties
functionality from the GDS Python client - Flight RPC is secured with the same authorization and encryption that the Neo4j database is using
- Project a new in-memory graph or Neo4j database via Arrow Flight RPC, for example by using
- New Algorithm: K-Means Clustering. Added the following procedures:
gds.alpha.kmeans.mutate
gds.alpha.kmeans.stats
gds.alpha.kmeans.stream
- New Algorithm: Leiden. Added the following procedures:
gds.alpha.leiden.mutate
gds.alpha.leiden.stats
Gds.alpha.leiden.stream
- Added new similarity variant Filtered Node Similarity to alpha tier, accepting source and target node filters
gds.alpha.nodeSimilarity.filtered.mutate
gds.alpha.nodeSimilarity.filtered.stream
gds.alpha.nodeSimilarity.filtered.write
- Added new similarity variant Filtered KNN to alpha tier, accepting source and target node filters
gds.alpha.knn.filtered.mutate
gds.alpha.knn.filtered.stream
- Added new procedures for delta stepping:
gds.allShortestPaths.delta.stats
gds.allShortestPaths.delta.stats.estimate
- Added new procedures for BFS:
Gds.bfs.stats
gds.bfs.stats.estimate
- Added Node Regression Pipelines with the following procedures
gds.alpha.pipeline.nodeRegression.create
gds.alpha.pipeline.nodeRegression.configureAutoTuning
gds.alpha.pipeline.nodeRegression.configureSplit
gds.alpha.pipeline.nodeRegression.addLinearRegression
gds.alpha.pipeline.nodeRegression.addRandomForest
gds.alpha.pipeline.nodeRegression.addNodeProperty
gds.alpha.pipeline.nodeRegression.selectFeatures
gds.alpha.pipeline.nodeRegression.train
gds.alpha.pipeline.nodeRegression.predict.stream
gds.alpha.pipeline.nodeRegression.predict.mutate
- Autotuning Support for Machine Learning Pipelines:
- Added new procedures
gds.alpha.pipeline.[nodeClassification|nodeRegression|linkPrediction].configureAutoTuning
. - Added syntax to specify ranges for parameters in
gds.alpha.pipeline.[linkPrediction|nodeClassification|nodeRegression].addRandomForest
,gds.beta.pipeline.[linkPrediction|nodeClassification].addLogisticRegression
, andgds.alpha.nodeRegression.addLinearRegression
- Added new procedures
- Additional Machine Learning Pipeline Functionality:
- Exposed
learningRate
for theLogisticRegression
models, which can be added usinggds.beta.pipeline.[nodeClassification|linkPrediction].addLogisticRegression
- Exposed
minLeafSize
forRandomForest
models, which can be added usinggds.alpha.pipeline.[nodeClassification|linkPrediction].addRandomForest
- Exposed
criterion
forRandomForestClassification
models, which can be added usinggds.alpha.pipeline.[nodeClassification|linkPrediction].addRandomForest
. Also added support for theENTROPY
impurity criterion. - Updated structure of
modelSelectionStats
yield ingds.beta.pipeline.[linkPrediction, nodeClassification].train
. - Support
OUT_OF_BAG_ERROR
metric ingds.beta.pipeline.[linkPrediction, nodeClassification].train
which applies only to RandomForest models. - Expose
batchesPerIteration
ingds.beta.graphSage.train
to configure the number of batches considered per iteration.
- Exposed
- Cypher Aggregation now accepts any INTEGER value for source and target nodes
- Added
ShardedIdMap
which adds support for external node ids ranging from0
toLong.MAX_VALUE
.- The id map is disabled by default and can be enabled via feature toggle
USE_SHARDED_ID_MAP
.
- The id map is disabled by default and can be enabled via feature toggle
- Added procedures for exporting graph properties to the alpha tier
gds.alpha.graph.streamGraphProperty
gds.alpha.graph.removeGraphProperty
- Exposed a new string config parameter
jobId
for graph projection and algorithm procedures, which allows for easier tracking of a job via e.g.gds.beta.listProgress
.
Bug fixes
- Fixed a bug in
gds.beta.pipeline.[nodeClassification|linkPrediction].addNodeProperty
wheregds.beta.graphSage.mutate
could not be added. - Fixed a bug where the procedures
gds.beta.pipeline.linkPrediction.predict.[mutate|stream]
threw an error when given the argumentinitialSampler
. - Fixed a bug with running Triangle Count on filtered graphs that could cause an ArrayIndexOutOfBounds Error.
- Fixed a bug where
graphSage.train
incorrectly reporteddidConverge
as false. - Fixed a bug in CollapsePath where a provided
nodeFilter
would be ignored. - Fixed a bug in
gds.louvain.stream
when theconsecutiveIds
parameter was enabled. - Fixed a bug in RandomWalk where not consuming all stream results could lead to a state where GDS would become unable to run further procedures
Improvements
- When a query is failed by the memory guard, information is logged as well as sent to the user in the raised exception.
- Machine learning pipelines
gds.beta.pipeline.[nodeClassification|linkPrediction].train.estimate
now incorporates memory usage of random forest training into account when applicable.gds.beta.pipeline.[nodeClassification|linkPrediction].predict.[mutate,stream,write].estimate
now take random forest prediction memory overhead- Improve early validation of graph and prediction pipeline in
gds.beta.pipeline.[nodeClassification|linkPrediction].predict
. - Improve memory estimation for
gds.beta.pipeline.[nodeClassification|linkPrediction].train.estimate
. - Improve memory estimation in
gds.beta.pipeline.linkPrediction.train.estimate
. - Add training method specific debug level logging during the model selection phase of
gds.beta.pipeline.linkPrediction.train
,gds.beta.pipeline.nodeClassification.train
andgds.alpha.pipeline.nodeRegression.train
. - Improved logging in Link Prediction and Node Classification training.
- Reduced computational complexity and constant overhead of random forest training, added via
gds.alpha.pipeline[linkPrediction|nodeClassification].addRandomFor...
Graph Data Science 2.0.4
GDS 2.0.4 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
Graph Data Science 1.8.7
GDS 1.8.7 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 in
gds.beta.randomWalk.stream
where configuring start nodes could lead to AIOOB exceptions. - Fix a bug in
gds.graph.export
where the configured database directory would not be respected. - Fixed a bug with running Triangle Count on filtered graphs.
- Fixed a bug in
gds.beta.graphSage
when usingactivationFunction: 'RELU'
, where the training did not compute the correct gradient.
Other Changes
- Updated version of 'com.google.protobuf' to 3.9.12. This fixes a potential Denial of Service issue (GHSA-wrvw-hg22-4m67).
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