概述
AA指标(Adamic-Adar Index)是以其提出者Lada Adamic和Eytan Adar命名的节点相似度指标。该指标基于图中两个节点的共同邻居来衡量它们之间的潜在连接强度。
- L.A. Adamic, E. Adar, Friends and Neighbors on the Web (2003)
AA指标的基本思想是,度数较低的共同邻居能为两个节点间的相似度提供更有价值的信息,而度数较高的共同邻居则不然。它的计算公式如下:
其中,N(u)是与节点u相连的节点集合。对于两个节点的每个共同邻居u,AA指标首先计算其度数|N(u)|的对数的倒数,然后将所有共同邻居的这些倒数值相加。
AA 指标分值较高表示节点间的相似度较大,分值为0则表示两个节点间没有相似性。
在上图中,N(D) ∩ N(E) = {B, F},其中 = = 1.6610, = = 2.0959,因此AA(D,E) = 1.6610 + 2.0959 = 3.7569。
特殊说明
- AA指标算法忽略边的方向,按照无向边进行计算。
语法
- 命令:
algo(topological_link_prediction)
- 参数:
名称 |
类型 |
规范 |
默认 |
可选 |
描述 |
---|---|---|---|---|---|
ids / uuids | []_id / []_uuid |
/ | / | 否 | 待计算的第一组节点的ID/UUID;算法将ids /uuids 中的每个节点与ids2 /uuids2 中的每个节点配对进行计算 |
ids2 / uuids2 | []_id / []_uuid |
/ | / | 否 | 待计算的第二组节点的ID/UUID;算法将ids /uuids 中的每个节点与ids2 /uuids2 中的每个节点配对进行计算 |
type | string | Adamic_Adar |
Adamic_Adar |
是 | 相似度衡量指标;计算AA指标时,保持此项为Adamic_Adar |
limit | int | ≥-1 | -1 |
是 | 返回的结果条数,-1 返回所有结果 |
示例
示例图如下:
文件回写
配置项 | 回写内容 |
---|---|
filename | node1 ,node2 ,num |
algo(topological_link_prediction).params({
uuids: [3],
uuids2: [1,5,7]
}).write({
file:{
filename: 'aa'
}
})
结果:文件aa
C,A,1.660964
C,E,3.321928
C,G,2.095903
直接返回
别名序号 |
类型 |
描述 | 列名 |
---|---|---|---|
0 | []perNodePair | 点对及相似度 | node1 , node2 , num |
algo(topological_link_prediction).params({
ids: 'C',
ids2: ['A','C','E','G'],
type: 'Adamic_Adar'
}) as aa
return aa
结果:aa
node1 | node2 | num |
---|---|---|
3 | 1 | 1.66096404744368 |
3 | 5 | 3.32192809488736 |
3 | 7 | 2.09590327428938 |
流式返回
别名序号 |
类型 |
描述 | 列名 |
---|---|---|---|
0 | []perNodePair | 点对及相似度 | node1 , node2 , num |
find().nodes() as n
with collect(n._id) as nID
algo(topological_link_prediction).params({
ids: 'C',
ids2: nID
}).stream() as aa
where aa.num >= 2
return aa
结果:aa
node1 | node2 | num |
---|---|---|
3 | 4 | 3.75686732173307 |
3 | 5 | 3.32192809488736 |
3 | 7 | 2.09590327428938 |