I am planning on using the Personalised Page Rank algorithm for proving personalised recommendations.
The docs provide this query
MATCH (siteA:Page {name: 'Site A'})
CALL gds.pageRank.stream('myGraph', {
maxIterations: 20,
dampingFactor: 0.85,
sourceNodes: [siteA]
})
YIELD nodeId, score
RETURN gds.util.asNode(nodeId).name AS name, score
ORDER BY score DESC, name ASC
where myGraph is created with something like this
CALL gds.graph.create(
'myGraph',
'Page',
'LINKS',
{
relationshipProperties: 'weight'
}
)
My question id what does really creating the graph means? Is it something that is constantly being updated as my database is updated? Or is it more like a query that is run every time I call an algo?
What mode is the best usage for personalised recommendations on users based on stuff they follow (like every social network site)? How do you manage this as users and pages become millions?