I have a graph made of companies (nodes) related to each other by transactions (edges). For a specific subset of companies with a label "Scope", I would like to identify who are the most important nodes by looking the "amount" property of edges. Of course I'm interested in catching direct neighbors (order 1) but I also would like to go beyond that (order 2 or 3 I don't know).
I was thinking to use a Personalized PageRank on one node to get the most important companies associated to that one, but then I would have to do a for loop to iterate the same procedure on all "Scope" companies I'm interested in (thousands). Which is not really the best thing.
So I was wondering if someone had another idea (maybe another approach, maybe another algorithm, ...) to get to this result. (If you also have a query in mind to share, that's even better).
Sorry for the late response. Personalized PageRank does indeed sound useful for your application. If you have a large graph running it for all your nodes of interest could indeed be time consuming, since it would be O(n^2) complexity overall.
As it happens, last year we developed an algorithm with some master's thesis students of ours, that does approximate Personalized PageRank in parallel on all nodes in the graph (in O(n) time), which is probably exactly what you need. The algorithm is called "Distributed Approximate Personalized PageRank" (DAPPR) and you can find information about it on page 19 of the students' thesis: Finding Candidate Node Pairs for Link Prediction at Scale | LUP Student Papers. Unfortunately we have not implemented this algorithm in the Neo4j GDS library yet, but we'll make a note that you have expressed interest in it, motivating us to perhaps add it in the future.