共同邻居

此功能在 Aura 图分析无服务器版中不可用。

共同邻居捕捉了这样一个概念:两个拥有共同朋友的陌生人比没有共同朋友的陌生人更有可能被介绍认识。

此功能处于 Alpha 阶段。有关功能分层的更多信息,请参阅API 分层

历史与解释

它使用以下公式计算

common neighbors

其中 N(x) 是与节点 x 相邻的节点集,N(y) 是与节点 y 相邻的节点集。

值为 0 表示两个节点不接近,而更高的值表示节点更接近。

该库包含一个计算两个节点之间接近度的函数。

语法

以下将运行算法并返回结果
RETURN gds.alpha.linkprediction.commonNeighbors(node1:Node, node2:Node, {
    relationshipQuery:String,
    direction:String
})
表 1. 参数
名称 类型 默认值 可选 描述

node1

节点

一个节点

node2

节点

另一个节点

relationshipQuery

字符串

用于计算 node1node2 之间相似度的关系类型。

方向

字符串

BOTH

用于计算 node1node2 之间相似度的关系方向。可能的值为 OUTGOING, INCOMINGBOTH

共同邻居算法示例

以下将投影一个示例图
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)
以下将返回 Michael 和 Karin 的共同邻居数量
 MATCH (p1:Person {name: 'Michael'})
 MATCH (p2:Person {name: 'Karin'})
 RETURN gds.alpha.linkprediction.commonNeighbors(p1, p2) AS score
表 2. 结果
分数

1.0

我们还可以根据特定的关系类型计算一对节点的分数。

以下将仅根据 FRIENDS 关系返回 Michael 和 Karin 的共同邻居数量
 MATCH (p1:Person {name: 'Michael'})
 MATCH (p2:Person {name: 'Karin'})
 RETURN gds.alpha.linkprediction.commonNeighbors(p1, p2, {relationshipQuery: "FRIENDS"}) AS score
表 3. 结果
分数

0.0

© . All rights reserved.