Neo4j Graph Data Science Library An Overview Max Kießling
What is the Graph Data Science Library? - Open Source Neo4j Add-On for graph analytics - Provides a set of high performance graph algorithms - Community Detection / Clustering (e.g. Label Propagation) - Similarity Calculation (e.g. NodeSimilarity) - Centrality Algorithms (e.g. PageRank) - PathFinding (e.g. Dijkstra) - Link Prediction (e.g. Adamic Adar) - and more - APIs for implementing custom algorithms (e.g. Pregel) 2
Neo4j GDS - Timeline Neo4j Product Engineering Neo4j Graph Data Science Library takes over the project Release 1.0 Q2 2020 Q1 2019 Q1 2017 Q1 2020 Development started as Productization of the library Neo4j Contrib - Graph Algorithms Open Source Preview Release organized by Neo4j Labs, developed by AVGL 3
Local Patterns to Global Computation Query (e.g. Cypher/SQL) Graph Algorithms Libraries Real-time, local decisioning Global analysis and pattern matching and iterations Local Global Patterns Computation You know what you’re You’re learning the overall structure of looking for and making a a network, updating data, and decision predicting 4
Workflow Consume RAM RAM result Load graph Run projection algorithm into main via Cypher memory procedure 5
Available Algorithms Community Centrality / Similarity Detection Importance • Label Propagation • Node Similarity • PageRank • Louvain • Euclidean Distance • Personalized PageRank • Weakly Connected Components • Cosine Similarity • Degree Centrality • Triangle Count • Overlap Similarity • Closeness Centrality • Clustering Coefficients • Pearson Similarity • Betweenness Centrality • Strongly Connected Components • ArticleRank • Balanced Triad (identification) • Eigenvector Centrality Pathfinding Link & Search Prediction • Parallel Breadth First Search • Adamic Adar • Parallel Depth First Search • Common Neighbors • Shortest Path • Preferential Attachment • Minimum Spanning Tree • Resource Allocations • A* Shortest Path • Same Community • Yen’s K Shortest Path • Total Neighbors • K-Spanning Tree (MST) • Random Walk 6
Demo Time! 7
GDS - Algo Syntax CALL gds.<algo-name>.<mode>( CALL gds.wcc.write( graphName: STRING, "got-interactions", configuration: MAP { ) writeProperty: "component", consecutiveIds: true Available Modes: } write : writes results to the Neo4j database and ● ) YIELDS writeMillis, componentCount returns a summary of the results. stats : runs the algorithm and only reports ● statistics. CALL gds.wcc.stream( stream : streams results back to the user. ● "got-interactions", {} ) YIELDS nodeId, componentId 8
Take a look! The Neo4j Graph Data Science Library is Open Source https://github.com/neo4j/graph-data-science 9
Section Slide 10
Section Slide 11
Section Slide 12
Recommend
More recommend