Vue d’ensemble
L'Adamic-Adar Index (AA Index) est une mesure de similarité de nodes nommée d'après ses créateurs Lada Adamic et Eytan Adar. Cet index mesure la force potentielle de connexion entre deux nodes basée sur les voisins communs qu'ils ont dans le graph.
- L.A. Adamic, E. Adar, Friends and Neighbors on the Web (2003)
L'idée sous-jacente de l'AA Index est que les voisins communs avec un faible degré fournissent des informations plus précieuses sur la similarité entre deux nodes que les voisins communs avec des degrés élevés. Il est calculé à l'aide de la formule suivante :
où N(u) est l'ensemble des nodes adjacents à u. Pour chaque voisin commun u des deux nodes, l'AA Index calcule d'abord le réciproque du logarithme de son degré |N(u)|, puis additionne ces valeurs réciproques pour tous les voisins communs.
Des scores plus élevés de l'AA Index indiquent une plus grande similarité entre les nodes, tandis qu'un score de 0 indique aucune similarité entre deux nodes.
Dans cet exemple, N(D) ∩ N(E) = {B, F}, où = = 1.6610, = = 2.0959, donc AA(D,E) = 1.6610 + 2.0959 = 3.7569.
Considérations
- L'algorithme de l'AA Index ignore la direction des edges mais les calcule comme des edges non orientées.
Syntaxe
- Commande :
algo(topological_link_prediction)
- Paramètres:
Nom |
Type |
Spécification |
Défaut |
Optionnel |
Description |
---|---|---|---|---|---|
ids / uuids | []_id / []_uuid |
/ | / | Non | ID/UUID du premier ensemble de nodes à calculer; chaque node dans ids /uuids sera jumelé avec chaque node dans ids2 /uuids2 |
ids2 / uuids2 | []_id / []_uuid |
/ | / | Non | ID/UUID du deuxième ensemble de nodes à calculer; chaque node dans ids /uuids sera jumelé avec chaque node dans ids2 /uuids2 |
type | string | Adamic_Adar |
Adamic_Adar |
Oui | Type de similarité; pour l'AA Index, gardez-le comme Adamic_Adar |
limit | int | >=-1 | -1 |
Oui | Nombre de résultats à retourner, -1 pour retourner tous les résultats |
Exemple
Le graph d'exemple est le suivant :
File Writeback
Spécification | Contenu |
---|---|
nom de fichier | node1 ,node2 ,num |
algo(topological_link_prediction).params({
uuids: [3],
uuids2: [1,5,7]
}).write({
file:{
filename: 'aa'
}
})
Résultats : Fichier aa
C,A,1.660964
C,E,3.321928
C,G,2.095903
Direct Return
Ordinal Alias | Type | Description |
Colonnes |
---|---|---|---|
0 | []perNodePair | Paire de nodes et leur similarité | node1 , node2 , num |
algo(topological_link_prediction).params({
ids: 'C',
ids2: ['A','C','E','G'],
type: 'Adamic_Adar'
}) as aa
return aa
Résultats : aa
node1 | node2 | num |
---|---|---|
3 | 1 | 1.66096404744368 |
3 | 5 | 3.32192809488736 |
3 | 7 | 2.09590327428938 |
Stream Return
Ordinal Alias | Type | Description |
Colonnes |
---|---|---|---|
0 | []perNodePair | Paire de nodes et leur similarité | 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
Résultats : aa
node1 | node2 | num |
---|---|---|
3 | 4 | 3.75686732173307 |
3 | 5 | 3.32192809488736 |
3 | 7 | 2.09590327428938 |