Neo4j's gds library contains graph algorithms which are divided into categories which represent different problem classes.
Category | Description | Algorithms |
---|---|---|
Centrality | Are used to determine the importance of distinct nodes in a network. | Page Rank, Article Rank, Eigenvector Centrality, Betweeness Centrality, Degree Centrality |
Community Detection | Are used to evaluate how groups of nodes are clustered or partitioned, as well as their tendency to strengthen or break apart. | Louvain, Label Propagation, Weakly Connected Components, Triangle Count, Local Clustering Coefficient |
Path finding | Are used to find the shortest path between two or more nodes or evaluate the availability and quality of paths. | Dijkstra Source-Target, Dijkstra Single-Source, A*, Yen’s algorithm |
Similarity | Are used to compute the similarity of pairs of different vector-based metrics. | Node similarity,K-Nearest Neighbors |
Ensure that the Graph Data Science Library is installed. It can be found under Plugins (which is activated by clicking on the database name, e.g. "Movie DBMS..." in my case).
Some scenarios which I want to run with gds:
- Find communities within the graph
- For these communities (or one of the communities), find the top 10 important nodes(users)
- Find in-between nodes(users) which acts as the "bridge" between different communities
A thing to note is that "the graph algorithms library operates completely on the heap, which means we’ll need to configure our Neo4j Server with a much larger heap size than we would for transactional workloads." link