Graph Theory: Part III (Facebook)
20bits.com
20bits.com
g = new Neo4jGraph('/tmp/neo4j')
// calculate basic collaborative filtering for vertex 1
m = [:]
g.v(1).out('likes').in('likes').out('likes').groupCount(m)
m.sort{a,b -> a.value <=> b.value}
// calculate the primary eigenvector (eigenvector centrality) of a graph
m = [:]; c = 0;
g.V.out.groupCount(m).loop(2){c++ < 1000}
m.sort{a,b -> a.value <=> b.value}
And Bulbs allows you to run Gremlin scripts from Python (http://bulbflow.com/).I think this method is generally known as eigenvector centrality, that is to say, the entries in the vector x are generally known as eigenvector centralities. I think this method is quite popular, but I do not know who uses it or how often.
In case others are/were likewise confused: assume you've been given the influence of all but one of the vertices in the graph. You want to assign the last vertex an influence. What lambda do you pick? You might think you could pick any lambda and arbitrarily set the influence decay across edges.
On the other hand, we want a consistent measure of influence. After you assign that last vertex some influence, you can now recalculate the influence of any other node using your equation. If the recalculated value is different, you picked the wrong lambda.
The eigenvalue problem formalizes the problem of finding a consistent lambda before assigning an influence to any of the vertices.
http://20bits.com/articles/graph-theory-part-i-introduction/
http://20bits.com/articles/graph-theory-part-ii-linear-algeb...