I am implementing a Random Walk with Restart on Giraph.
As far as I have understood, the only thing needed would be to modify PageRank in order to take into account the preference vector.
This means all random jumps get back to the source of the RWR.
In practice, in org/apache/giraph/examples/SimplePageRankVertex.java the new vertex value is computed as:
DoubleWritable vertexValue = new DoubleWritable((0.15f / getNumVertices()) + 0.85f * sum);
And the only thing I should do to implement the RWR is
if ( myID == sourceID )
DoubleWritable vertexValue = new DoubleWritable((0.15f + 0.85f * sum);
DoubleWritable vertexValue = new DoubleWritable(0.85f * sum);
Because all the random jumps converge on the single source.
Am I correct or am I missing something?