SlideShare a Scribd company logo
Neo4j Graph Data Science
Graph Algorithms
● What are graph algorithms and how can we use them?
● Algorithms support tiers and execution modes
● Algorithm categories:
○ Centrality
○ Community detection
○ Similarity
○ Path finding
○ Link prediction
● Auxiliary procedures and utility functions
● Best Practices
2
Outline
Is an iterative analysis to make calculations that describe the
topology and connectivity of your graph
3
What are graph algorithms?
- Generally Unsupervised
- Global traversals & computations
- Learning overall structure
- Typically heuristics and
approximations
- Extracting new data from what you
already have
4
How can they be used?
Stand Alone Solution
Find significant patterns and optimal
structures
Use community detection and
similarity scores for recommendations
Machine Learning Pipeline
Use the measures as features to train
an ML model
1st
node
2nd
node
Common
neighbors
Preferential
attachment
Label
1 2 4 15 1
3 4 7 12 1
5 6 1 1 0
4
Graph Algorithms Categories
5
Pathfinding
and Search
Centrality Community
Detection
Heuristic
Link Prediction
Similarity
Determines the
importance of
distinct nodes in the
network.
Detects group
clustering or
partition.
Evaluates how alike
nodes are by
neighbors and
relationships.
Finds optimal paths
or evaluates route
availability and
quality.
Estimates the
likelihood of nodes
forming a future
relationship.
6
Algorithms Per Category
• Parallel Breadth First Search &
Depth First Search
• Shortest Path
• Single-Source Shortest Path
• All Pairs Shortest Path
• Minimum Spanning Tree
• A* Shortest Path
• Yen’s K Shortest Path
• K-Spanning Tree (MST)
• Random Walk
• Degree Centrality
• Closeness Centrality
• CC Variations: Harmonic, Dangalchev,
Wasserman & Faust
• Betweenness Centrality
• Approximate Betweenness Centrality
• PageRank
• Personalized PageRank
• ArticleRank
• Eigenvector Centrality
• Triangle Count
• Clustering Coefficients
• Weakly Connected Components
• Strongly Connected Components
• Label Propagation
• Louvain Modularity
• K1 coloring
• Modularity optimization
• Node Similarity
• Euclidean Distance
• Cosine Similarity
• Jaccard Similarity
• Overlap Similarity
• Pearson Similarity
Pathfinding
& Search
Centrality /
Importance
Community
Detection
Similarity
Link
Prediction
• Adamic Adar
• Common Neighbors
• Preferential Attachment
• Resource Allocations
• Same Community
• Total Neighbors
...and also:
• Random graph generation
• One hot encoding
Product supported: Supported by product engineering, tested for
stability, scale, fully optimized
CALL gds.<algorithm>.<execution-mode>[.<estimate>]
Beta: Candidate for product supported tier
CALL gds.beta.<algorithm>.<execution-mode>[.<estimate>]
Alpha: Experimental implementation, may be changed or removed at
any time.
CALL gds.alpha.<algorithm>.<execution-mode>[.<estimate>]
7
Tiers of Support
CALL gds[.<tier>].<algorithm>.<execution-mode>[.<estimate>](
graphName: STRING,
configuration: MAP
)
8
Execution Modes
Stream: Stream your results back as Cypher result rows. Generally node id(s) and
scores.
CALL gds[.<tier>].<algorithm>.stream[.<estimate>]
Write: Write your results back to Neo4j as node or relationship properties, or new
relationships. Must specify writeProperty
CALL gds[.<tier>].<algorithm>.write[.<estimate>]
Mutate: update the in-memory graph with the results of the algorithm
CALL gds[.<tier>].<algorithm>.mutate[.<estimate>]
Stats: Returns statistics about the algorithm output - percentiles, counts
CALL gds[.<tier>].<algorithm>.stats[.<estimate>]
CALL gds[.<tier>].<algorithm>.<execution-mode>[.<estimate>](
graphName: STRING,
configuration: MAP
)
9
Estimation
Estimate lets you estimate the memory requirements for running your
algorithm with the specified configuration -- just like .estimate with
graph catalog operations.
CALL gds.<algorithm>.<execution-mode>.estimate
Note: Only production quality algorithms support
.stats and .estimate
CALL gds[.<tier>].<algorithm>.<execution-mode>[.<estimate>](
graphName: STRING,
configuration: MAP
)
Good news! All algorithms in GDS follow the same syntax:
10
Calling an Algorithm Procedure
CALL gds[.<tier>].<algorithm>.<execution-mode>[.<estimate>](
graphName: STRING,
configuration: MAP
)
11
Common Configuration Parameters
CALL gds[.<tier>].<algorithm>.<execution-mode>[.<estimate>](
graphName: STRING,
configuration: MAP
)
Key Meaning Default
concurrency How many concurrent threads can be used when executing the algo? 4
readConcurrency How many concurrent threads can be used when reading data? concurrency
writeConcurrency How many concurrent threads can be used when writing results? concurrency
relationshipWeightProperty Property containing the weight (must be numeric) null
writeProperty Property name to write back to n/a
12
Centrality
Determines the importance of
distinct nodes in the network.
Developed for distinct uses or
types of importance.
Centrality algorithms
13
14
Centrality Algorithms
Product supported:
- PageRank
Alpha implementations:
- ArticleRank
- Eigenvector Centrality
- Betweenness Centrality
- Closeness Centrality
- Degree Centrality
PageRank
What: Finds important nodes
based on their relationships
Why: Recommendations,
identifying influencers
Features:
- Tolerance
- Damping
15
PageRank Calculation
16
Closeness Centrality:
Other Centrality Algorithms
19
Degree Centrality: Betweenness Centrality:
gds.alpha.betweenness
What: Calculated based on
how often a node acts as a
bridge on the shortest path
between nodes.
Why: Finding network
vulnerabilities, influence
gds.alpha.degree
What: Calculated based on
the number of
relationships.
Why: Outlier identification,
preprocessing, influence
gds.alpha.closeness
What: Calculated based on
average length of the
shortest path to all other
nodes.
Why: Diffusing information
quickly
Other Centrality Algorithms
20
Eigenvector Centrality: Harmonic Centrality:
gds.alpha.harmonic
What: Closeness centrality
variant, reverses sum and
reciprocal in formula
Why: Finding network
vulnerabilities, influence
gds.alpha.eigenvector
What: PageRank variant,
assumes connections to
highly connected nodes are
more important.
Why: Influence
Community Detection
21
Evaluates how a group is clustered
or partitioned.
Different approaches to define a
community.
Community Detection Algorithms
22
23
Community Detection Algorithms
Product supported:
- Weakly Connected
Components (UnionFind)
- Label Propagation
- Louvain Modularity
Alpha implementations:
- Strongly Connected
Components
- Triangle Counting &
Clustering Coefficients
Beta implementations:
- K1 coloring
- Modularity optimization
Weakly Connected Components (WCC)
What: Finds disjoint subgraphs
in an undirected graph
Why: Graph preprocessing,
disambiguation
Features:
- Seeding
- Thresholds
- Consecutive identifiers
24
Louvain Modularity
What: Finds communities
Why: Useful for
recommendations, fraud
detection. Slower but produces
hierarchical results.
Features:
- Seeding
- Weighted relationships
- Intermediate communities
- Tolerance
- Max Levels, Max Iterations27
Label Propagation
What: Finds communities
Why: Useful for
recommendations, fraud
detection, finding common
co-occurrences. Very fast.
Features:
- Seeding
- Directed relationships
- Weighted relationships
30
Other community detection algorithms
32
K1 coloring: Strongly connected
components
Triangle count/
clustering coefficient
gds.alpha.scc
What: Like weakly
connected components,
but includes directionality.
Why: Finding subgraphs,
preprocessing.
gds.beta.k1coloring
What: Find the approximate
minimum number of colors
so no two adjacent nodes
have the same color.
Why: Preprocessing,
scheduling optimization.
gds.alpha.triangleCount
What: Find the number of
triangles passing through
each node in the graph.
Why: Measuring graph
density, stability, and
cohesion.
Similarity
33
Evaluates how alike nodes are at an
individual level either based on
node attributes, neighboring nodes,
or relationship properties.
Similarity Algorithms
34
35
Similarity Algorithms
Product supported:
- Node Similarity
Alpha implementations:
- Jaccard
- Cosine
- Pearson
- Euclidean Distance
- Overlap
- Approximate Nearest
Neighbors
Node Similarity
What: Similarity between nodes
based on neighbors, intended
for bipartite graph. Writes new
relationships!
Why: Recommendations,
disambiguation
Features:
- topK
- topN
- Degree cutoff
- Similarity cutoff36
39
Other Similarity Algorithms
Node Based: These calculate
similarity based on common
neighbors
- Jaccard
- Overlap similarity
Approximate Nearest
Neighbors: This is a faster way
of building a similarity graph
than Jaccard -- minimizes the
number of comparisons
Relationship Based: These
calculate the similarity of
attributes on the same type of
relationship
- Pearson
- Euclidean distance
- Cosine similarity
40
Link Prediction Function:
Common Neighbors
What: The more number of
common neighbors between
two nodes, the higher the
likelihood for a new
relationship between them
Why: A high score predicts that
two nodes will form a
relationship in the future.
CALL db.relationshipTypes() YIELD
relationshipType as season
MATCH (n1:Character{name:'Daenerys'})
MATCH (n2:Character{name:'Jon'})
RETURN
gds.alpha.linkprediction.commonNeighbors(
n1, n2, {relationshipQuery:season}) AS
score
How likely Jon and Daenerys are going to
interact in various seasons?
Path Finding
41
Pathfinding and Graph Search
algorithms are used to identify
optimal routes, and they are often a
required first step for many other
types of analysis.
Pathfinding and Graph Search algorithms
42
Path Finding Algorithms
44
Shortest Path
What: Using Dijkstra’s algorithm,
find the shortest paths between
a source and target node
Why: Degrees of separation
between people, directions
between physical locations
Features:
- relationshipWeightProperty
What is the undirected shortest path between
Jon and Tywin?
45
Shortest Path
[‘Jon’], [‘Ned’], [‘Tywin’]
MATCH(start:Person{name:'Jon Snow'})
MATCH(end:Person{name:'Tywin Lannister'})
CALL gds.alpha.shortestPath.stream({
nodeProjection: Person,
relationshipProjection:{
INTERACTS_SEASON2: {
type: 'INTERACTS_2',
orientation: 'UNDIRECTED'
}},
startNode: start,
endNode: end
})
YIELD nodeId,cost
RETURN gds.util.asNode(nodeId).name AS
name,cost;
46
Yen’s K Shortest Paths
What: Using Dijkstra’s
algorithm, find the k shortest
paths between a source and
target node
Why: Route availability,
assessing network redundancy
or resilience
Features:
- relationshipWeightProperty
- k (number of paths)
- path
What are the three shortest paths
between Jon and Tywin?
Yen’s K Shortest Paths Execution Call
47
MATCH(start:Person{name:'Jon Snow'}),
(end:Person{name:'Tywin Lannister'})
CALL gds.alpha.kShortestPaths.stream({
nodeProjection: 'Person',
relationshipProjection:{
INTERACTS_SEASON2: {
type: 'INTERACTS_2',
orientation: 'UNDIRECTED',
properties:'weight'
}},
startNode: start,
endNode: end,
k: 3,
relationshipWeightProperty: 'weight',
path: true
})
YIELD path
RETURN path
48
Question
This syntax looks a little different
than the other algorithms 🤔
Can you identify the major
differences?
Yen’s K Shortest Paths Execution Call
49
We’re using an anonymous
graph instead of a pre-loaded
named graph
MATCH(start:Person{name:'Jon Snow'}),
(end:Person{name:'Tywin Lannister'})
CALL gds.alpha.kShortestPaths.stream({
nodeProjection: 'Person',
relationshipProjection:{
INTERACTS_SEASON2: {
type: 'INTERACTS_2',
orientation: 'UNDIRECTED',
properties:'weight'
}},
startNode: start,
endNode: end,
k: 3,
relationshipWeightProperty: 'weight',
path: true
})
YIELD path
RETURN path
Yen’s K Shortest Paths Execution Call
50
You have to specify
the start and end
nodes -- first
identifying them with
a Cypher MATCH
statement, then
referring to them in
the algo call
MATCH(start:Person{name:'Jon Snow'}),
(end:Person{name:'Tywin Lannister'})
CALL gds.alpha.kShortestPaths.stream({
nodeProjection: 'Person',
relationshipProjection:{
INTERACTS_SEASON2: {
type: 'INTERACTS_2',
orientation: 'UNDIRECTED',
properties:'weight'
}},
startNode: start,
endNode: end,
k: 3,
relationshipWeightProperty: 'weight',
path: true
})
YIELD path
RETURN path
Yen’s K Shortest Paths Execution Call
51
This algorithm can
return a path, or paths,
if you set path to true!
MATCH(start:Person{name:'Jon Snow'}),
(end:Person{name:'Tywin Lannister'})
CALL gds.alpha.kShortestPaths.stream({
nodeProjection: 'Person',
relationshipProjection:{
INTERACTS_SEASON2: {
type: 'INTERACTS_2',
orientation: 'UNDIRECTED',
properties:'weight'
}},
startNode: start,
endNode: end,
k: 3,
relationshipWeightProperty: 'weight',
path: true
})
YIELD path
RETURN path
Link Prediction
52
These methods compute a score for a pair of nodes,
where the score could be considered a measure of
proximity or “similarity” between those nodes based on
the graph topology.
Link Prediction
53
54
Link Prediction Functions
Link prediction algorithms are functions which
(1) take a pair of nodes as input and
(2) use a formula to calculate the probability that there should
be an edge between them
Where the available algorithms are: adamic adar, common
neighbors, preferential attachment, resource allocation, same
community, and total neighbors
MATCH (n1:Node {id:'id1'})
MATCH (n2:Node {id:'id2'})
RETURN gds.alpha.linkPrediction.<algoName>(n1,n2,
jjjjj{relationshipQuery:'relationshipType') AS score
55
Link Prediction Function:
Preferential Attachment
What: The better connected a
node is, the more likely it is to
form new edges (think: popular
people make more friends)
Why: A high preferential
attachment score predicts that
two nodes will form a
relationship in the future.
How likely Jon and
Daenerys are going
to interact in
various seasons?
CALL db.relationshipTypes() YIELD
relationshipType as season
MATCH (n1:Person{name:'Daenerys
Targaryen'})
MATCH (n2:Person{name:'Jon Snow'})
RETURN
gds.alpha.linkprediction.preferentialAttac
hment(n1, n2, {relationshipQuery:season})
AS score
56
Auxiliary Procedures &
Utility Functions
Auxiliary Procedures
57
Some procedures don’t quite fit into the other categories… but are
still useful!
● Graph Generation: Make an in-memory graph with a set
number of nodes and relationships, which follow a specific
degree distribution.
CALL gds.beta.graph.generate
This lets you approximate a graph and estimate run times on
their hardware and set up.
● One hot encoding: Convert labels into vectors -- useful for ML
CALL gds.alpha.ml.oneHotEncoding
The GDS library includes a number of functions that help pre- and
post-process data to fit into your cypher based workflows:
Pre-processing:
- gds.util.NaN
- gds.util.isFinite, gds.util.isInfinite
- gds.util.infinity
Post-processing:
- gds.util.asNode, gds.util.asNodes
- gds.util.asPath warning! this does not return a real path!
Helpers:
- gds.graph.exists
- gds.version58
Utility Functions
59
Best Practices
60
Recommended Steps
Ad

More Related Content

What's hot (20)

Graph Algorithms for Developers
Graph Algorithms for DevelopersGraph Algorithms for Developers
Graph Algorithms for Developers
Neo4j
 
Neo4j GraphSummit London - The Path To Success With Graph Database and Data S...
Neo4j GraphSummit London - The Path To Success With Graph Database and Data S...Neo4j GraphSummit London - The Path To Success With Graph Database and Data S...
Neo4j GraphSummit London - The Path To Success With Graph Database and Data S...
Neo4j
 
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptxNeo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j
 
Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph Databases
Neo4j
 
Improving Machine Learning using Graph Algorithms
Improving Machine Learning using Graph AlgorithmsImproving Machine Learning using Graph Algorithms
Improving Machine Learning using Graph Algorithms
Neo4j
 
Graph database Use Cases
Graph database Use CasesGraph database Use Cases
Graph database Use Cases
Max De Marzi
 
Intro to Neo4j
Intro to Neo4jIntro to Neo4j
Intro to Neo4j
Neo4j
 
Graphs for Finance - AML with Neo4j Graph Data Science
Graphs for Finance - AML with Neo4j Graph Data Science Graphs for Finance - AML with Neo4j Graph Data Science
Graphs for Finance - AML with Neo4j Graph Data Science
Neo4j
 
Knowledge Graphs as a Pillar to AI
Knowledge Graphs as a Pillar to AIKnowledge Graphs as a Pillar to AI
Knowledge Graphs as a Pillar to AI
Enterprise Knowledge
 
How Graph Algorithms Answer your Business Questions in Banking and Beyond
How Graph Algorithms Answer your Business Questions in Banking and BeyondHow Graph Algorithms Answer your Business Questions in Banking and Beyond
How Graph Algorithms Answer your Business Questions in Banking and Beyond
Neo4j
 
AI, Knowledge Representation and Graph Databases -
 Key Trends in Data Science
AI, Knowledge Representation and Graph Databases -
 Key Trends in Data ScienceAI, Knowledge Representation and Graph Databases -
 Key Trends in Data Science
AI, Knowledge Representation and Graph Databases -
 Key Trends in Data Science
Optum
 
Knowledge Graphs - The Power of Graph-Based Search
Knowledge Graphs - The Power of Graph-Based SearchKnowledge Graphs - The Power of Graph-Based Search
Knowledge Graphs - The Power of Graph-Based Search
Neo4j
 
Slides: Knowledge Graphs vs. Property Graphs
Slides: Knowledge Graphs vs. Property GraphsSlides: Knowledge Graphs vs. Property Graphs
Slides: Knowledge Graphs vs. Property Graphs
DATAVERSITY
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4j
jexp
 
Get Started with the Most Advanced Edition Yet of Neo4j Graph Data Science
Get Started with the Most Advanced Edition Yet of Neo4j Graph Data ScienceGet Started with the Most Advanced Edition Yet of Neo4j Graph Data Science
Get Started with the Most Advanced Edition Yet of Neo4j Graph Data Science
Neo4j
 
Knowledge Graphs and Generative AI_GraphSummit Minneapolis Sept 20.pptx
Knowledge Graphs and Generative AI_GraphSummit Minneapolis Sept 20.pptxKnowledge Graphs and Generative AI_GraphSummit Minneapolis Sept 20.pptx
Knowledge Graphs and Generative AI_GraphSummit Minneapolis Sept 20.pptx
Neo4j
 
Natural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jNatural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4j
William Lyon
 
Amsterdam - The Neo4j Graph Data Platform Today & Tomorrow
Amsterdam - The Neo4j Graph Data Platform Today & TomorrowAmsterdam - The Neo4j Graph Data Platform Today & Tomorrow
Amsterdam - The Neo4j Graph Data Platform Today & Tomorrow
Neo4j
 
Introduction to Knowledge Graphs and Semantic AI
Introduction to Knowledge Graphs and Semantic AIIntroduction to Knowledge Graphs and Semantic AI
Introduction to Knowledge Graphs and Semantic AI
Semantic Web Company
 
Workshop - Build a Graph Solution
Workshop - Build a Graph SolutionWorkshop - Build a Graph Solution
Workshop - Build a Graph Solution
Neo4j
 
Graph Algorithms for Developers
Graph Algorithms for DevelopersGraph Algorithms for Developers
Graph Algorithms for Developers
Neo4j
 
Neo4j GraphSummit London - The Path To Success With Graph Database and Data S...
Neo4j GraphSummit London - The Path To Success With Graph Database and Data S...Neo4j GraphSummit London - The Path To Success With Graph Database and Data S...
Neo4j GraphSummit London - The Path To Success With Graph Database and Data S...
Neo4j
 
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptxNeo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j GraphSummit London March 2023 Emil Eifrem Keynote.pptx
Neo4j
 
Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph Databases
Neo4j
 
Improving Machine Learning using Graph Algorithms
Improving Machine Learning using Graph AlgorithmsImproving Machine Learning using Graph Algorithms
Improving Machine Learning using Graph Algorithms
Neo4j
 
Graph database Use Cases
Graph database Use CasesGraph database Use Cases
Graph database Use Cases
Max De Marzi
 
Intro to Neo4j
Intro to Neo4jIntro to Neo4j
Intro to Neo4j
Neo4j
 
Graphs for Finance - AML with Neo4j Graph Data Science
Graphs for Finance - AML with Neo4j Graph Data Science Graphs for Finance - AML with Neo4j Graph Data Science
Graphs for Finance - AML with Neo4j Graph Data Science
Neo4j
 
Knowledge Graphs as a Pillar to AI
Knowledge Graphs as a Pillar to AIKnowledge Graphs as a Pillar to AI
Knowledge Graphs as a Pillar to AI
Enterprise Knowledge
 
How Graph Algorithms Answer your Business Questions in Banking and Beyond
How Graph Algorithms Answer your Business Questions in Banking and BeyondHow Graph Algorithms Answer your Business Questions in Banking and Beyond
How Graph Algorithms Answer your Business Questions in Banking and Beyond
Neo4j
 
AI, Knowledge Representation and Graph Databases -
 Key Trends in Data Science
AI, Knowledge Representation and Graph Databases -
 Key Trends in Data ScienceAI, Knowledge Representation and Graph Databases -
 Key Trends in Data Science
AI, Knowledge Representation and Graph Databases -
 Key Trends in Data Science
Optum
 
Knowledge Graphs - The Power of Graph-Based Search
Knowledge Graphs - The Power of Graph-Based SearchKnowledge Graphs - The Power of Graph-Based Search
Knowledge Graphs - The Power of Graph-Based Search
Neo4j
 
Slides: Knowledge Graphs vs. Property Graphs
Slides: Knowledge Graphs vs. Property GraphsSlides: Knowledge Graphs vs. Property Graphs
Slides: Knowledge Graphs vs. Property Graphs
DATAVERSITY
 
Intro to Graphs and Neo4j
Intro to Graphs and Neo4jIntro to Graphs and Neo4j
Intro to Graphs and Neo4j
jexp
 
Get Started with the Most Advanced Edition Yet of Neo4j Graph Data Science
Get Started with the Most Advanced Edition Yet of Neo4j Graph Data ScienceGet Started with the Most Advanced Edition Yet of Neo4j Graph Data Science
Get Started with the Most Advanced Edition Yet of Neo4j Graph Data Science
Neo4j
 
Knowledge Graphs and Generative AI_GraphSummit Minneapolis Sept 20.pptx
Knowledge Graphs and Generative AI_GraphSummit Minneapolis Sept 20.pptxKnowledge Graphs and Generative AI_GraphSummit Minneapolis Sept 20.pptx
Knowledge Graphs and Generative AI_GraphSummit Minneapolis Sept 20.pptx
Neo4j
 
Natural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4jNatural Language Processing with Graph Databases and Neo4j
Natural Language Processing with Graph Databases and Neo4j
William Lyon
 
Amsterdam - The Neo4j Graph Data Platform Today & Tomorrow
Amsterdam - The Neo4j Graph Data Platform Today & TomorrowAmsterdam - The Neo4j Graph Data Platform Today & Tomorrow
Amsterdam - The Neo4j Graph Data Platform Today & Tomorrow
Neo4j
 
Introduction to Knowledge Graphs and Semantic AI
Introduction to Knowledge Graphs and Semantic AIIntroduction to Knowledge Graphs and Semantic AI
Introduction to Knowledge Graphs and Semantic AI
Semantic Web Company
 
Workshop - Build a Graph Solution
Workshop - Build a Graph SolutionWorkshop - Build a Graph Solution
Workshop - Build a Graph Solution
Neo4j
 

Similar to Neo4j Graph Data Science Training - June 9 & 10 - Slides #6 Graph Algorithms (20)

Improve ml predictions using graph algorithms (webinar july 23_19).pptx
Improve ml predictions using graph algorithms (webinar july 23_19).pptxImprove ml predictions using graph algorithms (webinar july 23_19).pptx
Improve ml predictions using graph algorithms (webinar july 23_19).pptx
Neo4j
 
Multi-Label Graph Analysis and Computations Using GraphX with Qiang Zhu and Q...
Multi-Label Graph Analysis and Computations Using GraphX with Qiang Zhu and Q...Multi-Label Graph Analysis and Computations Using GraphX with Qiang Zhu and Q...
Multi-Label Graph Analysis and Computations Using GraphX with Qiang Zhu and Q...
Databricks
 
An introduction to similarity search and k-nn graphs
An introduction to similarity search and k-nn graphsAn introduction to similarity search and k-nn graphs
An introduction to similarity search and k-nn graphs
Thibault Debatty
 
[Apache Kafka® Meetup by Confluent] Graph-based stream processing
[Apache Kafka® Meetup by Confluent] Graph-based stream processing[Apache Kafka® Meetup by Confluent] Graph-based stream processing
[Apache Kafka® Meetup by Confluent] Graph-based stream processing
confluent
 
Graph Algorithms - Map-Reduce Graph Processing
Graph Algorithms - Map-Reduce Graph ProcessingGraph Algorithms - Map-Reduce Graph Processing
Graph Algorithms - Map-Reduce Graph Processing
Jason J Pulikkottil
 
Revolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn PipelinesRevolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Philip Goddard
 
Design and analysis of distributed k-nearest neighbors graph algorithms
Design and analysis of distributed k-nearest neighbors graph algorithmsDesign and analysis of distributed k-nearest neighbors graph algorithms
Design and analysis of distributed k-nearest neighbors graph algorithms
Thibault Debatty
 
Improve ML Predictions using Graph Analytics (today!)
Improve ML Predictions using Graph Analytics (today!)Improve ML Predictions using Graph Analytics (today!)
Improve ML Predictions using Graph Analytics (today!)
Neo4j
 
Practice discovering biological knowledge using networks approach.
Practice discovering biological knowledge using networks approach.Practice discovering biological knowledge using networks approach.
Practice discovering biological knowledge using networks approach.
Elena Sügis
 
Connected Components Labeling
Connected Components LabelingConnected Components Labeling
Connected Components Labeling
Hemanth Kumar Mantri
 
Cytoscape basic features
Cytoscape basic featuresCytoscape basic features
Cytoscape basic features
Luay AL-Assadi
 
Adaptive Geographical Search in Networks
Adaptive Geographical Search in NetworksAdaptive Geographical Search in Networks
Adaptive Geographical Search in Networks
Andrea Wiggins
 
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
Spark Summit
 
Sparksummit2016 share
Sparksummit2016 shareSparksummit2016 share
Sparksummit2016 share
Ping Yan
 
Real time streaming analytics
Real time streaming analyticsReal time streaming analytics
Real time streaming analytics
Anirudh
 
It Takes Two to Tango: an Exploration of Domain Pairs for Cross-Domain Collab...
It Takes Two to Tango: an Exploration of Domain Pairs for Cross-Domain Collab...It Takes Two to Tango: an Exploration of Domain Pairs for Cross-Domain Collab...
It Takes Two to Tango: an Exploration of Domain Pairs for Cross-Domain Collab...
Shaghayegh (Sherry) Sahebi
 
[AFEL] Neighborhood Troubles: On the Value of User Pre-Filtering To Speed Up ...
[AFEL] Neighborhood Troubles: On the Value of User Pre-Filtering To Speed Up ...[AFEL] Neighborhood Troubles: On the Value of User Pre-Filtering To Speed Up ...
[AFEL] Neighborhood Troubles: On the Value of User Pre-Filtering To Speed Up ...
Emanuel Lacić
 
Lessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at NetflixLessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at Netflix
Justin Basilico
 
Spatial approximate string search
Spatial approximate string searchSpatial approximate string search
Spatial approximate string search
IEEEFINALYEARPROJECTS
 
JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Spatial approximate string search
JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Spatial approximate string searchJAVA 2013 IEEE CLOUDCOMPUTING PROJECT Spatial approximate string search
JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Spatial approximate string search
IEEEGLOBALSOFTTECHNOLOGIES
 
Improve ml predictions using graph algorithms (webinar july 23_19).pptx
Improve ml predictions using graph algorithms (webinar july 23_19).pptxImprove ml predictions using graph algorithms (webinar july 23_19).pptx
Improve ml predictions using graph algorithms (webinar july 23_19).pptx
Neo4j
 
Multi-Label Graph Analysis and Computations Using GraphX with Qiang Zhu and Q...
Multi-Label Graph Analysis and Computations Using GraphX with Qiang Zhu and Q...Multi-Label Graph Analysis and Computations Using GraphX with Qiang Zhu and Q...
Multi-Label Graph Analysis and Computations Using GraphX with Qiang Zhu and Q...
Databricks
 
An introduction to similarity search and k-nn graphs
An introduction to similarity search and k-nn graphsAn introduction to similarity search and k-nn graphs
An introduction to similarity search and k-nn graphs
Thibault Debatty
 
[Apache Kafka® Meetup by Confluent] Graph-based stream processing
[Apache Kafka® Meetup by Confluent] Graph-based stream processing[Apache Kafka® Meetup by Confluent] Graph-based stream processing
[Apache Kafka® Meetup by Confluent] Graph-based stream processing
confluent
 
Graph Algorithms - Map-Reduce Graph Processing
Graph Algorithms - Map-Reduce Graph ProcessingGraph Algorithms - Map-Reduce Graph Processing
Graph Algorithms - Map-Reduce Graph Processing
Jason J Pulikkottil
 
Revolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn PipelinesRevolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Revolutionise your Machine Learning Workflow using Scikit-Learn Pipelines
Philip Goddard
 
Design and analysis of distributed k-nearest neighbors graph algorithms
Design and analysis of distributed k-nearest neighbors graph algorithmsDesign and analysis of distributed k-nearest neighbors graph algorithms
Design and analysis of distributed k-nearest neighbors graph algorithms
Thibault Debatty
 
Improve ML Predictions using Graph Analytics (today!)
Improve ML Predictions using Graph Analytics (today!)Improve ML Predictions using Graph Analytics (today!)
Improve ML Predictions using Graph Analytics (today!)
Neo4j
 
Practice discovering biological knowledge using networks approach.
Practice discovering biological knowledge using networks approach.Practice discovering biological knowledge using networks approach.
Practice discovering biological knowledge using networks approach.
Elena Sügis
 
Cytoscape basic features
Cytoscape basic featuresCytoscape basic features
Cytoscape basic features
Luay AL-Assadi
 
Adaptive Geographical Search in Networks
Adaptive Geographical Search in NetworksAdaptive Geographical Search in Networks
Adaptive Geographical Search in Networks
Andrea Wiggins
 
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
Large-Scale Text Processing Pipeline with Spark ML and GraphFrames: Spark Sum...
Spark Summit
 
Sparksummit2016 share
Sparksummit2016 shareSparksummit2016 share
Sparksummit2016 share
Ping Yan
 
Real time streaming analytics
Real time streaming analyticsReal time streaming analytics
Real time streaming analytics
Anirudh
 
It Takes Two to Tango: an Exploration of Domain Pairs for Cross-Domain Collab...
It Takes Two to Tango: an Exploration of Domain Pairs for Cross-Domain Collab...It Takes Two to Tango: an Exploration of Domain Pairs for Cross-Domain Collab...
It Takes Two to Tango: an Exploration of Domain Pairs for Cross-Domain Collab...
Shaghayegh (Sherry) Sahebi
 
[AFEL] Neighborhood Troubles: On the Value of User Pre-Filtering To Speed Up ...
[AFEL] Neighborhood Troubles: On the Value of User Pre-Filtering To Speed Up ...[AFEL] Neighborhood Troubles: On the Value of User Pre-Filtering To Speed Up ...
[AFEL] Neighborhood Troubles: On the Value of User Pre-Filtering To Speed Up ...
Emanuel Lacić
 
Lessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at NetflixLessons Learned from Building Machine Learning Software at Netflix
Lessons Learned from Building Machine Learning Software at Netflix
Justin Basilico
 
JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Spatial approximate string search
JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Spatial approximate string searchJAVA 2013 IEEE CLOUDCOMPUTING PROJECT Spatial approximate string search
JAVA 2013 IEEE CLOUDCOMPUTING PROJECT Spatial approximate string search
IEEEGLOBALSOFTTECHNOLOGIES
 
Ad

More from Neo4j (20)

Graphs & GraphRAG - Essential Ingredients for GenAI
Graphs & GraphRAG - Essential Ingredients for GenAIGraphs & GraphRAG - Essential Ingredients for GenAI
Graphs & GraphRAG - Essential Ingredients for GenAI
Neo4j
 
Neo4j Knowledge for Customer Experience.pptx
Neo4j Knowledge for Customer Experience.pptxNeo4j Knowledge for Customer Experience.pptx
Neo4j Knowledge for Customer Experience.pptx
Neo4j
 
GraphTalk New Zealand - The Art of The Possible.pptx
GraphTalk New Zealand - The Art of The Possible.pptxGraphTalk New Zealand - The Art of The Possible.pptx
GraphTalk New Zealand - The Art of The Possible.pptx
Neo4j
 
Neo4j: The Art of the Possible with Graph
Neo4j: The Art of the Possible with GraphNeo4j: The Art of the Possible with Graph
Neo4j: The Art of the Possible with Graph
Neo4j
 
Smarter Knowledge Graphs For Public Sector
Smarter Knowledge Graphs For Public  SectorSmarter Knowledge Graphs For Public  Sector
Smarter Knowledge Graphs For Public Sector
Neo4j
 
GraphRAG and Knowledge Graphs Exploring AI's Future
GraphRAG and Knowledge Graphs Exploring AI's FutureGraphRAG and Knowledge Graphs Exploring AI's Future
GraphRAG and Knowledge Graphs Exploring AI's Future
Neo4j
 
Matinée GenAI & GraphRAG Paris - Décembre 24
Matinée GenAI & GraphRAG Paris - Décembre 24Matinée GenAI & GraphRAG Paris - Décembre 24
Matinée GenAI & GraphRAG Paris - Décembre 24
Neo4j
 
ANZ Presentation: GraphSummit Melbourne 2024
ANZ Presentation: GraphSummit Melbourne 2024ANZ Presentation: GraphSummit Melbourne 2024
ANZ Presentation: GraphSummit Melbourne 2024
Neo4j
 
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Neo4j
 
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Neo4j
 
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Neo4j
 
Démonstration Digital Twin Building Wire Management
Démonstration Digital Twin Building Wire ManagementDémonstration Digital Twin Building Wire Management
Démonstration Digital Twin Building Wire Management
Neo4j
 
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Neo4j
 
Démonstration Supply Chain - GraphTalk Paris
Démonstration Supply Chain - GraphTalk ParisDémonstration Supply Chain - GraphTalk Paris
Démonstration Supply Chain - GraphTalk Paris
Neo4j
 
The Art of Possible - GraphTalk Paris Opening Session
The Art of Possible - GraphTalk Paris Opening SessionThe Art of Possible - GraphTalk Paris Opening Session
The Art of Possible - GraphTalk Paris Opening Session
Neo4j
 
How Siemens bolstered supply chain resilience with graph-powered AI insights ...
How Siemens bolstered supply chain resilience with graph-powered AI insights ...How Siemens bolstered supply chain resilience with graph-powered AI insights ...
How Siemens bolstered supply chain resilience with graph-powered AI insights ...
Neo4j
 
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Neo4j
 
Neo4j Graph Data Modelling Session - GraphTalk
Neo4j Graph Data Modelling Session - GraphTalkNeo4j Graph Data Modelling Session - GraphTalk
Neo4j Graph Data Modelling Session - GraphTalk
Neo4j
 
Neo4j: The Art of Possible with Graph Technology
Neo4j: The Art of Possible with Graph TechnologyNeo4j: The Art of Possible with Graph Technology
Neo4j: The Art of Possible with Graph Technology
Neo4j
 
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life SciencesAstra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Neo4j
 
Graphs & GraphRAG - Essential Ingredients for GenAI
Graphs & GraphRAG - Essential Ingredients for GenAIGraphs & GraphRAG - Essential Ingredients for GenAI
Graphs & GraphRAG - Essential Ingredients for GenAI
Neo4j
 
Neo4j Knowledge for Customer Experience.pptx
Neo4j Knowledge for Customer Experience.pptxNeo4j Knowledge for Customer Experience.pptx
Neo4j Knowledge for Customer Experience.pptx
Neo4j
 
GraphTalk New Zealand - The Art of The Possible.pptx
GraphTalk New Zealand - The Art of The Possible.pptxGraphTalk New Zealand - The Art of The Possible.pptx
GraphTalk New Zealand - The Art of The Possible.pptx
Neo4j
 
Neo4j: The Art of the Possible with Graph
Neo4j: The Art of the Possible with GraphNeo4j: The Art of the Possible with Graph
Neo4j: The Art of the Possible with Graph
Neo4j
 
Smarter Knowledge Graphs For Public Sector
Smarter Knowledge Graphs For Public  SectorSmarter Knowledge Graphs For Public  Sector
Smarter Knowledge Graphs For Public Sector
Neo4j
 
GraphRAG and Knowledge Graphs Exploring AI's Future
GraphRAG and Knowledge Graphs Exploring AI's FutureGraphRAG and Knowledge Graphs Exploring AI's Future
GraphRAG and Knowledge Graphs Exploring AI's Future
Neo4j
 
Matinée GenAI & GraphRAG Paris - Décembre 24
Matinée GenAI & GraphRAG Paris - Décembre 24Matinée GenAI & GraphRAG Paris - Décembre 24
Matinée GenAI & GraphRAG Paris - Décembre 24
Neo4j
 
ANZ Presentation: GraphSummit Melbourne 2024
ANZ Presentation: GraphSummit Melbourne 2024ANZ Presentation: GraphSummit Melbourne 2024
ANZ Presentation: GraphSummit Melbourne 2024
Neo4j
 
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Google Cloud Presentation GraphSummit Melbourne 2024: Building Generative AI ...
Neo4j
 
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Telstra Presentation GraphSummit Melbourne: Optimising Business Outcomes with...
Neo4j
 
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Hands-On GraphRAG Workshop: GraphSummit Melbourne 2024
Neo4j
 
Démonstration Digital Twin Building Wire Management
Démonstration Digital Twin Building Wire ManagementDémonstration Digital Twin Building Wire Management
Démonstration Digital Twin Building Wire Management
Neo4j
 
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Swiss Life - Les graphes au service de la détection de fraude dans le domaine...
Neo4j
 
Démonstration Supply Chain - GraphTalk Paris
Démonstration Supply Chain - GraphTalk ParisDémonstration Supply Chain - GraphTalk Paris
Démonstration Supply Chain - GraphTalk Paris
Neo4j
 
The Art of Possible - GraphTalk Paris Opening Session
The Art of Possible - GraphTalk Paris Opening SessionThe Art of Possible - GraphTalk Paris Opening Session
The Art of Possible - GraphTalk Paris Opening Session
Neo4j
 
How Siemens bolstered supply chain resilience with graph-powered AI insights ...
How Siemens bolstered supply chain resilience with graph-powered AI insights ...How Siemens bolstered supply chain resilience with graph-powered AI insights ...
How Siemens bolstered supply chain resilience with graph-powered AI insights ...
Neo4j
 
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Knowledge Graphs for AI-Ready Data and Enterprise Deployment - Gartner IT Sym...
Neo4j
 
Neo4j Graph Data Modelling Session - GraphTalk
Neo4j Graph Data Modelling Session - GraphTalkNeo4j Graph Data Modelling Session - GraphTalk
Neo4j Graph Data Modelling Session - GraphTalk
Neo4j
 
Neo4j: The Art of Possible with Graph Technology
Neo4j: The Art of Possible with Graph TechnologyNeo4j: The Art of Possible with Graph Technology
Neo4j: The Art of Possible with Graph Technology
Neo4j
 
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life SciencesAstra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Astra Zeneca: How KG and GenAI Revolutionise Biopharma and Life Sciences
Neo4j
 
Ad

Recently uploaded (20)

Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Mastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdfMastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdf
Spiral Mantra
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Build 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHSBuild 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHS
TECH EHS Solution
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Unlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive GuideUnlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive Guide
vikasascentbpo
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath MaestroDev Dives: Automate and orchestrate your processes with UiPath Maestro
Dev Dives: Automate and orchestrate your processes with UiPath Maestro
UiPathCommunity
 
Mastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdfMastering Advance Window Functions in SQL.pdf
Mastering Advance Window Functions in SQL.pdf
Spiral Mantra
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Role of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered ManufacturingRole of Data Annotation Services in AI-Powered Manufacturing
Role of Data Annotation Services in AI-Powered Manufacturing
Andrew Leo
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Build 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHSBuild 3D Animated Safety Induction - Tech EHS
Build 3D Animated Safety Induction - Tech EHS
TECH EHS Solution
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager API
UiPathCommunity
 
Unlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive GuideUnlocking the Power of IVR: A Comprehensive Guide
Unlocking the Power of IVR: A Comprehensive Guide
vikasascentbpo
 
Cybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure ADCybersecurity Identity and Access Solutions using Azure AD
Cybersecurity Identity and Access Solutions using Azure AD
VICTOR MAESTRE RAMIREZ
 
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In FranceManifest Pre-Seed Update | A Humanoid OEM Deeptech In France
Manifest Pre-Seed Update | A Humanoid OEM Deeptech In France
chb3
 
MINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PRMINDCTI revenue release Quarter 1 2025 PR
MINDCTI revenue release Quarter 1 2025 PR
MIND CTI
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptxIncreasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Increasing Retail Store Efficiency How can Planograms Save Time and Money.pptx
Anoop Ashok
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 

Neo4j Graph Data Science Training - June 9 & 10 - Slides #6 Graph Algorithms

  • 1. Neo4j Graph Data Science Graph Algorithms
  • 2. ● What are graph algorithms and how can we use them? ● Algorithms support tiers and execution modes ● Algorithm categories: ○ Centrality ○ Community detection ○ Similarity ○ Path finding ○ Link prediction ● Auxiliary procedures and utility functions ● Best Practices 2 Outline
  • 3. Is an iterative analysis to make calculations that describe the topology and connectivity of your graph 3 What are graph algorithms? - Generally Unsupervised - Global traversals & computations - Learning overall structure - Typically heuristics and approximations - Extracting new data from what you already have
  • 4. 4 How can they be used? Stand Alone Solution Find significant patterns and optimal structures Use community detection and similarity scores for recommendations Machine Learning Pipeline Use the measures as features to train an ML model 1st node 2nd node Common neighbors Preferential attachment Label 1 2 4 15 1 3 4 7 12 1 5 6 1 1 0 4
  • 5. Graph Algorithms Categories 5 Pathfinding and Search Centrality Community Detection Heuristic Link Prediction Similarity Determines the importance of distinct nodes in the network. Detects group clustering or partition. Evaluates how alike nodes are by neighbors and relationships. Finds optimal paths or evaluates route availability and quality. Estimates the likelihood of nodes forming a future relationship.
  • 6. 6 Algorithms Per Category • Parallel Breadth First Search & Depth First Search • Shortest Path • Single-Source Shortest Path • All Pairs Shortest Path • Minimum Spanning Tree • A* Shortest Path • Yen’s K Shortest Path • K-Spanning Tree (MST) • Random Walk • Degree Centrality • Closeness Centrality • CC Variations: Harmonic, Dangalchev, Wasserman & Faust • Betweenness Centrality • Approximate Betweenness Centrality • PageRank • Personalized PageRank • ArticleRank • Eigenvector Centrality • Triangle Count • Clustering Coefficients • Weakly Connected Components • Strongly Connected Components • Label Propagation • Louvain Modularity • K1 coloring • Modularity optimization • Node Similarity • Euclidean Distance • Cosine Similarity • Jaccard Similarity • Overlap Similarity • Pearson Similarity Pathfinding & Search Centrality / Importance Community Detection Similarity Link Prediction • Adamic Adar • Common Neighbors • Preferential Attachment • Resource Allocations • Same Community • Total Neighbors ...and also: • Random graph generation • One hot encoding
  • 7. Product supported: Supported by product engineering, tested for stability, scale, fully optimized CALL gds.<algorithm>.<execution-mode>[.<estimate>] Beta: Candidate for product supported tier CALL gds.beta.<algorithm>.<execution-mode>[.<estimate>] Alpha: Experimental implementation, may be changed or removed at any time. CALL gds.alpha.<algorithm>.<execution-mode>[.<estimate>] 7 Tiers of Support CALL gds[.<tier>].<algorithm>.<execution-mode>[.<estimate>]( graphName: STRING, configuration: MAP )
  • 8. 8 Execution Modes Stream: Stream your results back as Cypher result rows. Generally node id(s) and scores. CALL gds[.<tier>].<algorithm>.stream[.<estimate>] Write: Write your results back to Neo4j as node or relationship properties, or new relationships. Must specify writeProperty CALL gds[.<tier>].<algorithm>.write[.<estimate>] Mutate: update the in-memory graph with the results of the algorithm CALL gds[.<tier>].<algorithm>.mutate[.<estimate>] Stats: Returns statistics about the algorithm output - percentiles, counts CALL gds[.<tier>].<algorithm>.stats[.<estimate>] CALL gds[.<tier>].<algorithm>.<execution-mode>[.<estimate>]( graphName: STRING, configuration: MAP )
  • 9. 9 Estimation Estimate lets you estimate the memory requirements for running your algorithm with the specified configuration -- just like .estimate with graph catalog operations. CALL gds.<algorithm>.<execution-mode>.estimate Note: Only production quality algorithms support .stats and .estimate CALL gds[.<tier>].<algorithm>.<execution-mode>[.<estimate>]( graphName: STRING, configuration: MAP )
  • 10. Good news! All algorithms in GDS follow the same syntax: 10 Calling an Algorithm Procedure CALL gds[.<tier>].<algorithm>.<execution-mode>[.<estimate>]( graphName: STRING, configuration: MAP )
  • 11. 11 Common Configuration Parameters CALL gds[.<tier>].<algorithm>.<execution-mode>[.<estimate>]( graphName: STRING, configuration: MAP ) Key Meaning Default concurrency How many concurrent threads can be used when executing the algo? 4 readConcurrency How many concurrent threads can be used when reading data? concurrency writeConcurrency How many concurrent threads can be used when writing results? concurrency relationshipWeightProperty Property containing the weight (must be numeric) null writeProperty Property name to write back to n/a
  • 13. Determines the importance of distinct nodes in the network. Developed for distinct uses or types of importance. Centrality algorithms 13
  • 14. 14 Centrality Algorithms Product supported: - PageRank Alpha implementations: - ArticleRank - Eigenvector Centrality - Betweenness Centrality - Closeness Centrality - Degree Centrality
  • 15. PageRank What: Finds important nodes based on their relationships Why: Recommendations, identifying influencers Features: - Tolerance - Damping 15
  • 17. Closeness Centrality: Other Centrality Algorithms 19 Degree Centrality: Betweenness Centrality: gds.alpha.betweenness What: Calculated based on how often a node acts as a bridge on the shortest path between nodes. Why: Finding network vulnerabilities, influence gds.alpha.degree What: Calculated based on the number of relationships. Why: Outlier identification, preprocessing, influence gds.alpha.closeness What: Calculated based on average length of the shortest path to all other nodes. Why: Diffusing information quickly
  • 18. Other Centrality Algorithms 20 Eigenvector Centrality: Harmonic Centrality: gds.alpha.harmonic What: Closeness centrality variant, reverses sum and reciprocal in formula Why: Finding network vulnerabilities, influence gds.alpha.eigenvector What: PageRank variant, assumes connections to highly connected nodes are more important. Why: Influence
  • 20. Evaluates how a group is clustered or partitioned. Different approaches to define a community. Community Detection Algorithms 22
  • 21. 23 Community Detection Algorithms Product supported: - Weakly Connected Components (UnionFind) - Label Propagation - Louvain Modularity Alpha implementations: - Strongly Connected Components - Triangle Counting & Clustering Coefficients Beta implementations: - K1 coloring - Modularity optimization
  • 22. Weakly Connected Components (WCC) What: Finds disjoint subgraphs in an undirected graph Why: Graph preprocessing, disambiguation Features: - Seeding - Thresholds - Consecutive identifiers 24
  • 23. Louvain Modularity What: Finds communities Why: Useful for recommendations, fraud detection. Slower but produces hierarchical results. Features: - Seeding - Weighted relationships - Intermediate communities - Tolerance - Max Levels, Max Iterations27
  • 24. Label Propagation What: Finds communities Why: Useful for recommendations, fraud detection, finding common co-occurrences. Very fast. Features: - Seeding - Directed relationships - Weighted relationships 30
  • 25. Other community detection algorithms 32 K1 coloring: Strongly connected components Triangle count/ clustering coefficient gds.alpha.scc What: Like weakly connected components, but includes directionality. Why: Finding subgraphs, preprocessing. gds.beta.k1coloring What: Find the approximate minimum number of colors so no two adjacent nodes have the same color. Why: Preprocessing, scheduling optimization. gds.alpha.triangleCount What: Find the number of triangles passing through each node in the graph. Why: Measuring graph density, stability, and cohesion.
  • 27. Evaluates how alike nodes are at an individual level either based on node attributes, neighboring nodes, or relationship properties. Similarity Algorithms 34
  • 28. 35 Similarity Algorithms Product supported: - Node Similarity Alpha implementations: - Jaccard - Cosine - Pearson - Euclidean Distance - Overlap - Approximate Nearest Neighbors
  • 29. Node Similarity What: Similarity between nodes based on neighbors, intended for bipartite graph. Writes new relationships! Why: Recommendations, disambiguation Features: - topK - topN - Degree cutoff - Similarity cutoff36
  • 30. 39 Other Similarity Algorithms Node Based: These calculate similarity based on common neighbors - Jaccard - Overlap similarity Approximate Nearest Neighbors: This is a faster way of building a similarity graph than Jaccard -- minimizes the number of comparisons Relationship Based: These calculate the similarity of attributes on the same type of relationship - Pearson - Euclidean distance - Cosine similarity
  • 31. 40 Link Prediction Function: Common Neighbors What: The more number of common neighbors between two nodes, the higher the likelihood for a new relationship between them Why: A high score predicts that two nodes will form a relationship in the future. CALL db.relationshipTypes() YIELD relationshipType as season MATCH (n1:Character{name:'Daenerys'}) MATCH (n2:Character{name:'Jon'}) RETURN gds.alpha.linkprediction.commonNeighbors( n1, n2, {relationshipQuery:season}) AS score How likely Jon and Daenerys are going to interact in various seasons?
  • 33. Pathfinding and Graph Search algorithms are used to identify optimal routes, and they are often a required first step for many other types of analysis. Pathfinding and Graph Search algorithms 42
  • 35. 44 Shortest Path What: Using Dijkstra’s algorithm, find the shortest paths between a source and target node Why: Degrees of separation between people, directions between physical locations Features: - relationshipWeightProperty What is the undirected shortest path between Jon and Tywin?
  • 36. 45 Shortest Path [‘Jon’], [‘Ned’], [‘Tywin’] MATCH(start:Person{name:'Jon Snow'}) MATCH(end:Person{name:'Tywin Lannister'}) CALL gds.alpha.shortestPath.stream({ nodeProjection: Person, relationshipProjection:{ INTERACTS_SEASON2: { type: 'INTERACTS_2', orientation: 'UNDIRECTED' }}, startNode: start, endNode: end }) YIELD nodeId,cost RETURN gds.util.asNode(nodeId).name AS name,cost;
  • 37. 46 Yen’s K Shortest Paths What: Using Dijkstra’s algorithm, find the k shortest paths between a source and target node Why: Route availability, assessing network redundancy or resilience Features: - relationshipWeightProperty - k (number of paths) - path What are the three shortest paths between Jon and Tywin?
  • 38. Yen’s K Shortest Paths Execution Call 47 MATCH(start:Person{name:'Jon Snow'}), (end:Person{name:'Tywin Lannister'}) CALL gds.alpha.kShortestPaths.stream({ nodeProjection: 'Person', relationshipProjection:{ INTERACTS_SEASON2: { type: 'INTERACTS_2', orientation: 'UNDIRECTED', properties:'weight' }}, startNode: start, endNode: end, k: 3, relationshipWeightProperty: 'weight', path: true }) YIELD path RETURN path
  • 39. 48 Question This syntax looks a little different than the other algorithms 🤔 Can you identify the major differences?
  • 40. Yen’s K Shortest Paths Execution Call 49 We’re using an anonymous graph instead of a pre-loaded named graph MATCH(start:Person{name:'Jon Snow'}), (end:Person{name:'Tywin Lannister'}) CALL gds.alpha.kShortestPaths.stream({ nodeProjection: 'Person', relationshipProjection:{ INTERACTS_SEASON2: { type: 'INTERACTS_2', orientation: 'UNDIRECTED', properties:'weight' }}, startNode: start, endNode: end, k: 3, relationshipWeightProperty: 'weight', path: true }) YIELD path RETURN path
  • 41. Yen’s K Shortest Paths Execution Call 50 You have to specify the start and end nodes -- first identifying them with a Cypher MATCH statement, then referring to them in the algo call MATCH(start:Person{name:'Jon Snow'}), (end:Person{name:'Tywin Lannister'}) CALL gds.alpha.kShortestPaths.stream({ nodeProjection: 'Person', relationshipProjection:{ INTERACTS_SEASON2: { type: 'INTERACTS_2', orientation: 'UNDIRECTED', properties:'weight' }}, startNode: start, endNode: end, k: 3, relationshipWeightProperty: 'weight', path: true }) YIELD path RETURN path
  • 42. Yen’s K Shortest Paths Execution Call 51 This algorithm can return a path, or paths, if you set path to true! MATCH(start:Person{name:'Jon Snow'}), (end:Person{name:'Tywin Lannister'}) CALL gds.alpha.kShortestPaths.stream({ nodeProjection: 'Person', relationshipProjection:{ INTERACTS_SEASON2: { type: 'INTERACTS_2', orientation: 'UNDIRECTED', properties:'weight' }}, startNode: start, endNode: end, k: 3, relationshipWeightProperty: 'weight', path: true }) YIELD path RETURN path
  • 44. These methods compute a score for a pair of nodes, where the score could be considered a measure of proximity or “similarity” between those nodes based on the graph topology. Link Prediction 53
  • 45. 54 Link Prediction Functions Link prediction algorithms are functions which (1) take a pair of nodes as input and (2) use a formula to calculate the probability that there should be an edge between them Where the available algorithms are: adamic adar, common neighbors, preferential attachment, resource allocation, same community, and total neighbors MATCH (n1:Node {id:'id1'}) MATCH (n2:Node {id:'id2'}) RETURN gds.alpha.linkPrediction.<algoName>(n1,n2, jjjjj{relationshipQuery:'relationshipType') AS score
  • 46. 55 Link Prediction Function: Preferential Attachment What: The better connected a node is, the more likely it is to form new edges (think: popular people make more friends) Why: A high preferential attachment score predicts that two nodes will form a relationship in the future. How likely Jon and Daenerys are going to interact in various seasons? CALL db.relationshipTypes() YIELD relationshipType as season MATCH (n1:Person{name:'Daenerys Targaryen'}) MATCH (n2:Person{name:'Jon Snow'}) RETURN gds.alpha.linkprediction.preferentialAttac hment(n1, n2, {relationshipQuery:season}) AS score
  • 48. Auxiliary Procedures 57 Some procedures don’t quite fit into the other categories… but are still useful! ● Graph Generation: Make an in-memory graph with a set number of nodes and relationships, which follow a specific degree distribution. CALL gds.beta.graph.generate This lets you approximate a graph and estimate run times on their hardware and set up. ● One hot encoding: Convert labels into vectors -- useful for ML CALL gds.alpha.ml.oneHotEncoding
  • 49. The GDS library includes a number of functions that help pre- and post-process data to fit into your cypher based workflows: Pre-processing: - gds.util.NaN - gds.util.isFinite, gds.util.isInfinite - gds.util.infinity Post-processing: - gds.util.asNode, gds.util.asNodes - gds.util.asPath warning! this does not return a real path! Helpers: - gds.graph.exists - gds.version58 Utility Functions