Common Neighbors
|
This feature is not available in Aura Graph Analytics. |
Common neighbors captures the idea that two strangers who have a friend in common are more likely to be introduced than those who don’t have any friends in common.
History and explanation
It is computed using the following formula:
where N(x) is the set of nodes adjacent to node x, and N(y) is the set of nodes adjacent to node y.
A value of 0 indicates that two nodes are not close, while higher values indicate nodes are closer.
The library contains a function to calculate closeness between two nodes.
Syntax
RETURN gds.linkprediction.commonNeighbors(node1:Node, node2:Node, {
relationshipQuery:String,
direction:String
})
| Name | Type | Default | Optional | Description |
|---|---|---|---|---|
|
Node |
null |
no |
A node |
|
Node |
null |
no |
Another node |
|
String |
null |
yes |
The relationship type used to compute similarity between |
|
String |
BOTH |
yes |
The relationship direction used to compute similarity between |
Common Neighbors algorithm sample
CREATE
(zhen:Person {name: 'Zhen'}),
(praveena:Person {name: 'Praveena'}),
(michael:Person {name: 'Michael'}),
(arya:Person {name: 'Arya'}),
(karin:Person {name: 'Karin'}),
(zhen)-[:FRIENDS]->(arya),
(zhen)-[:FRIENDS]->(praveena),
(praveena)-[:WORKS_WITH]->(karin),
(praveena)-[:FRIENDS]->(michael),
(michael)-[:WORKS_WITH]->(karin),
(arya)-[:FRIENDS]->(karin)
MATCH (p1:Person {name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
RETURN gds.linkprediction.commonNeighbors(p1, p2) AS score
score |
|---|
1.0 |
We can also compute the score of a pair of nodes based on a specific relationship type.
FRIENDS relationships: MATCH (p1:Person {name: 'Michael'})
MATCH (p2:Person {name: 'Karin'})
RETURN gds.linkprediction.commonNeighbors(p1, p2, {relationshipQuery: "FRIENDS"}) AS score
score |
|---|
0.0 |