SlideShare a Scribd company logo
1 of 51
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

More Related Content

What's hot

Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesNeo4j
 
Fraud Detection with Graphs at the Danish Business Authority
Fraud Detection with Graphs at the Danish Business AuthorityFraud Detection with Graphs at the Danish Business Authority
Fraud Detection with Graphs at the Danish Business AuthorityNeo4j
 
Graphs for Data Science and Machine Learning
Graphs for Data Science and Machine LearningGraphs for Data Science and Machine Learning
Graphs for Data Science and Machine LearningNeo4j
 
The Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j OverviewThe Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j OverviewNeo4j
 
The Knowledge Graph Explosion
The Knowledge Graph ExplosionThe Knowledge Graph Explosion
The Knowledge Graph ExplosionNeo4j
 
Neo4j Graph Use Cases, Bruno Ungermann, Neo4j
Neo4j Graph Use Cases, Bruno Ungermann, Neo4jNeo4j Graph Use Cases, Bruno Ungermann, Neo4j
Neo4j Graph Use Cases, Bruno Ungermann, Neo4jNeo4j
 
ENEL Electricity Grids on Neo4j Graph DB
ENEL Electricity Grids on Neo4j Graph DBENEL Electricity Grids on Neo4j Graph DB
ENEL Electricity Grids on Neo4j Graph DBNeo4j
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4jNeo4j
 
Graph Databases for Master Data Management
Graph Databases for Master Data ManagementGraph Databases for Master Data Management
Graph Databases for Master Data ManagementNeo4j
 
Optimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphOptimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphNeo4j
 
ntroducing to the Power of Graph Technology
ntroducing to the Power of Graph Technologyntroducing to the Power of Graph Technology
ntroducing to the Power of Graph TechnologyNeo4j
 
Neo4j Webinar: Graphs in banking
Neo4j Webinar:  Graphs in banking Neo4j Webinar:  Graphs in banking
Neo4j Webinar: Graphs in banking Neo4j
 
The three layers of a knowledge graph and what it means for authoring, storag...
The three layers of a knowledge graph and what it means for authoring, storag...The three layers of a knowledge graph and what it means for authoring, storag...
The three layers of a knowledge graph and what it means for authoring, storag...Neo4j
 
Neo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4jNeo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4jNeo4j
 
The Data Platform for Today’s Intelligent Applications
The Data Platform for Today’s Intelligent ApplicationsThe Data Platform for Today’s Intelligent Applications
The Data Platform for Today’s Intelligent ApplicationsNeo4j
 
Building a modern data stack to maintain an efficient and safe electrical grid
Building a modern data stack to maintain an efficient and safe electrical gridBuilding a modern data stack to maintain an efficient and safe electrical grid
Building a modern data stack to maintain an efficient and safe electrical gridNeo4j
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph DatabasesDataStax
 
Modern Data Challenges require Modern Graph Technology
Modern Data Challenges require Modern Graph TechnologyModern Data Challenges require Modern Graph Technology
Modern Data Challenges require Modern Graph TechnologyNeo4j
 
EY: Why graph technology makes sense for fraud detection and customer 360 pro...
EY: Why graph technology makes sense for fraud detection and customer 360 pro...EY: Why graph technology makes sense for fraud detection and customer 360 pro...
EY: Why graph technology makes sense for fraud detection and customer 360 pro...Neo4j
 
https://www.slideshare.net/neo4j/a-fusion-of-machine-learning-and-graph-analy...
https://www.slideshare.net/neo4j/a-fusion-of-machine-learning-and-graph-analy...https://www.slideshare.net/neo4j/a-fusion-of-machine-learning-and-graph-analy...
https://www.slideshare.net/neo4j/a-fusion-of-machine-learning-and-graph-analy...Neo4j
 

What's hot (20)

Intro to Neo4j and Graph Databases
Intro to Neo4j and Graph DatabasesIntro to Neo4j and Graph Databases
Intro to Neo4j and Graph Databases
 
Fraud Detection with Graphs at the Danish Business Authority
Fraud Detection with Graphs at the Danish Business AuthorityFraud Detection with Graphs at the Danish Business Authority
Fraud Detection with Graphs at the Danish Business Authority
 
Graphs for Data Science and Machine Learning
Graphs for Data Science and Machine LearningGraphs for Data Science and Machine Learning
Graphs for Data Science and Machine Learning
 
The Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j OverviewThe Graph Database Universe: Neo4j Overview
The Graph Database Universe: Neo4j Overview
 
The Knowledge Graph Explosion
The Knowledge Graph ExplosionThe Knowledge Graph Explosion
The Knowledge Graph Explosion
 
Neo4j Graph Use Cases, Bruno Ungermann, Neo4j
Neo4j Graph Use Cases, Bruno Ungermann, Neo4jNeo4j Graph Use Cases, Bruno Ungermann, Neo4j
Neo4j Graph Use Cases, Bruno Ungermann, Neo4j
 
ENEL Electricity Grids on Neo4j Graph DB
ENEL Electricity Grids on Neo4j Graph DBENEL Electricity Grids on Neo4j Graph DB
ENEL Electricity Grids on Neo4j Graph DB
 
Data Modeling with Neo4j
Data Modeling with Neo4jData Modeling with Neo4j
Data Modeling with Neo4j
 
Graph Databases for Master Data Management
Graph Databases for Master Data ManagementGraph Databases for Master Data Management
Graph Databases for Master Data Management
 
Optimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j GraphOptimizing Your Supply Chain with the Neo4j Graph
Optimizing Your Supply Chain with the Neo4j Graph
 
ntroducing to the Power of Graph Technology
ntroducing to the Power of Graph Technologyntroducing to the Power of Graph Technology
ntroducing to the Power of Graph Technology
 
Neo4j Webinar: Graphs in banking
Neo4j Webinar:  Graphs in banking Neo4j Webinar:  Graphs in banking
Neo4j Webinar: Graphs in banking
 
The three layers of a knowledge graph and what it means for authoring, storag...
The three layers of a knowledge graph and what it means for authoring, storag...The three layers of a knowledge graph and what it means for authoring, storag...
The three layers of a knowledge graph and what it means for authoring, storag...
 
Neo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4jNeo4j Graph Platform Overview, Kurt Freytag, Neo4j
Neo4j Graph Platform Overview, Kurt Freytag, Neo4j
 
The Data Platform for Today’s Intelligent Applications
The Data Platform for Today’s Intelligent ApplicationsThe Data Platform for Today’s Intelligent Applications
The Data Platform for Today’s Intelligent Applications
 
Building a modern data stack to maintain an efficient and safe electrical grid
Building a modern data stack to maintain an efficient and safe electrical gridBuilding a modern data stack to maintain an efficient and safe electrical grid
Building a modern data stack to maintain an efficient and safe electrical grid
 
Introduction to Graph Databases
Introduction to Graph DatabasesIntroduction to Graph Databases
Introduction to Graph Databases
 
Modern Data Challenges require Modern Graph Technology
Modern Data Challenges require Modern Graph TechnologyModern Data Challenges require Modern Graph Technology
Modern Data Challenges require Modern Graph Technology
 
EY: Why graph technology makes sense for fraud detection and customer 360 pro...
EY: Why graph technology makes sense for fraud detection and customer 360 pro...EY: Why graph technology makes sense for fraud detection and customer 360 pro...
EY: Why graph technology makes sense for fraud detection and customer 360 pro...
 
https://www.slideshare.net/neo4j/a-fusion-of-machine-learning-and-graph-analy...
https://www.slideshare.net/neo4j/a-fusion-of-machine-learning-and-graph-analy...https://www.slideshare.net/neo4j/a-fusion-of-machine-learning-and-graph-analy...
https://www.slideshare.net/neo4j/a-fusion-of-machine-learning-and-graph-analy...
 

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

Improving Machine Learning using Graph Algorithms
Improving Machine Learning using Graph AlgorithmsImproving Machine Learning using Graph Algorithms
Improving Machine Learning using Graph AlgorithmsNeo4j
 
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).pptxNeo4j
 
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 graphsThibault 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 processingconfluent
 
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 PipelinesPhilip 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 algorithmsThibault 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 featuresLuay AL-Assadi
 
Graph Algorithms for Developers
Graph Algorithms for DevelopersGraph Algorithms for Developers
Graph Algorithms for DevelopersNeo4j
 
Adaptive Geographical Search in Networks
Adaptive Geographical Search in NetworksAdaptive Geographical Search in Networks
Adaptive Geographical Search in NetworksAndrea 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 sharePing Yan
 
Real time streaming analytics
Real time streaming analyticsReal time streaming analytics
Real time streaming analyticsAnirudh
 
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 NetflixJustin Basilico
 

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

Improving Machine Learning using Graph Algorithms
Improving Machine Learning using Graph AlgorithmsImproving Machine Learning using Graph Algorithms
Improving Machine Learning using Graph Algorithms
 
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
 
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...
 
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
 
[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
 
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
 
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
 
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!)
 
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.
 
Connected Components Labeling
Connected Components LabelingConnected Components Labeling
Connected Components Labeling
 
Cytoscape basic features
Cytoscape basic featuresCytoscape basic features
Cytoscape basic features
 
Graph Algorithms for Developers
Graph Algorithms for DevelopersGraph Algorithms for Developers
Graph Algorithms for Developers
 
Adaptive Geographical Search in Networks
Adaptive Geographical Search in NetworksAdaptive Geographical Search in Networks
Adaptive Geographical Search in Networks
 
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...
 
Sparksummit2016 share
Sparksummit2016 shareSparksummit2016 share
Sparksummit2016 share
 
Real time streaming analytics
Real time streaming analyticsReal time streaming analytics
Real time streaming analytics
 
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...
 
[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 ...
 
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
 
Spatial approximate string search
Spatial approximate string searchSpatial approximate string search
Spatial approximate string search
 

More from Neo4j

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...Neo4j
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosNeo4j
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Neo4j
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j
 
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfRabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Neo4j
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j
 
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j
 
Enabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsEnabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsNeo4j
 
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j
 
Neo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j
 
SWIFT: Maintaining Critical Standards in the Financial Services Industry with...
SWIFT: Maintaining Critical Standards in the Financial Services Industry with...SWIFT: Maintaining Critical Standards in the Financial Services Industry with...
SWIFT: Maintaining Critical Standards in the Financial Services Industry with...Neo4j
 
Deloitte & Red Cross: Talk to your data with Knowledge-enriched Generative AI
Deloitte & Red Cross: Talk to your data with Knowledge-enriched Generative AIDeloitte & Red Cross: Talk to your data with Knowledge-enriched Generative AI
Deloitte & Red Cross: Talk to your data with Knowledge-enriched Generative AINeo4j
 
Ingka Digital: Linked Metadata by Design
Ingka Digital: Linked Metadata by DesignIngka Digital: Linked Metadata by Design
Ingka Digital: Linked Metadata by DesignNeo4j
 

More from Neo4j (20)

EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
 
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfRabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)
 
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
 
Enabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsEnabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge Graphs
 
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
 
Neo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with Graph
 
SWIFT: Maintaining Critical Standards in the Financial Services Industry with...
SWIFT: Maintaining Critical Standards in the Financial Services Industry with...SWIFT: Maintaining Critical Standards in the Financial Services Industry with...
SWIFT: Maintaining Critical Standards in the Financial Services Industry with...
 
Deloitte & Red Cross: Talk to your data with Knowledge-enriched Generative AI
Deloitte & Red Cross: Talk to your data with Knowledge-enriched Generative AIDeloitte & Red Cross: Talk to your data with Knowledge-enriched Generative AI
Deloitte & Red Cross: Talk to your data with Knowledge-enriched Generative AI
 
Ingka Digital: Linked Metadata by Design
Ingka Digital: Linked Metadata by DesignIngka Digital: Linked Metadata by Design
Ingka Digital: Linked Metadata by Design
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 

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