lezione3: reti sociali, algoritmi spettrali e snap
DESCRIPTION
Cosa distingue le reti sociali? Quali algoritmi permettono di calcolare la "rilevanza" di una pagina web?TRANSCRIPT
Reti sociali, algoritmi spettrali, SNAP
● Perché le reti sociali sono diverse dalle altre?
● Il PageRank e le comunità
● SNAP: un laboratorio per tutti
Le reti sociali
Le reti sociali studiate in letteratura sono “complesse”:
● Pochi gradi di separazione● Elevato clustering
… ma hanno una particolarità.
Assortative mixing nelle reti sociali
Nelle reti sociali i nodi della rete tendono a collegarsi preferibilmente con nodi con un grado k simile.
➔ I gradi dei nodi vicini sono correlati positivamente.
In sociologia, per le reti in cui i gradi dei nodi vicini sono correlati si parla di assortative mixing.
Come si osserva l'assortatività?
r di Pearson: coefficiente di correlazione tra il “grado in eccesso” (excess degree q
i = k
i) dei nodi
vicini
r=∑ jk
jk (e jk−q j qk )
∑kk 2qk−(∑k
qk )2
Come si osserva l'assortatività?
Knn
(k): grado medio dei vicini dei nodi di grado k
Knn
(k) crescente → mixing assortativo
Knn
(k) decrescente → mixing disassortativo
K nn(k )=
∑k i=k
∑j∈I (i)
k j
NP (k )k
Come si osserva l'assortatività?
r : quantitativo e non ambiguo
Knn
(k): qualitativo ma più utile se il rumore
statistico è elevato e il coefficiente r è troppo vicino a 0.
Le correlazioni nelle reti sociali
Perché le reti sociali sono diverse?
Nelle reti sociali i nodi sono organizzati in comunità
Le reti sociali sono soprattutto reti collaborative
Il modello di rete sociale di Newman e Park
● N nodi, G comunità● r
m: probabilità che un nodo appartenga a m
comunità● s
n: probabilità che un gruppo contenga n nodi
● nodi distribuiti nelle comunità in modo casuale● due nodi nella stessa comunità sono connessi con probabilità p
Il modello di rete sociale di Newman e Park
Nodi e comunità
Link possibili
Il modello di rete sociale di Newman e Park
Nodi e comunità
Link possibili
Il calcolo della correlazione r
● Nel modello di Newman e Park, la correlazione r si può calcolare analiticamente.
● rn e s
n siano distribuzioni poissoniane
→ probabilità costante che un nodo appartenga ad una comunità
Il calcolo della correlazione r
In questo caso, la correlazione r si può calcolare analiticamente:
dove
r=p
1+ν+νμ p>0
ν=∑n n r nμ=∑n n sn
Il calcolo della correlazione r
Verifica del modello
Rete degli autori di articoli scientificir
real = 0.145
rteor
= 0.174 ± 0.45
Rete dei managerr
real = 0.276
rteor
= 0.116
Il calcolo della correlazione r
Verifica del modello
Rete degli autori di articoli scientificir
real = 0.145
rteor
= 0.174 ± 0.45 OK
Rete dei managerr
real = 0.276
rteor
= 0.116
Il calcolo della correlazione r
Verifica del modello
Rete degli autori di articoli scientificir
real = 0.145
rteor
= 0.174 ± 0.45 OK
Rete dei managerr
real = 0.276
rteor
= 0.116 ???
Algoritmi spettrali
Algoritmi basati sullo studio di matrici associate alle reti● PageRank● Community detection
PageRank
Algoritmo con cui Google “valuta” la rilevanza delle pagine web
Una pagina web è rilevante se la probabilità di visitarla navigando sui link della rete è alta
Ad ogni pagina web viene assegnato un valore detto “PageRank”, PR(i).
PageRank
PageRank: distribuzione stazionaria di un random walk a tempi discreti sulla rete WWW (diretta)
PR(i) : probabilità che un navigatore casuale si trovi sul nodo i dopo un tempo t → ∞
Il calcolo del PageRank
Il calcolo del PageRank
Probabilità di transizione
Il calcolo del PageRankv = distribuzione iniziale
vi = probabilità di trovare un random walk sul
nodo i al tempo iniziale
v(t) = distribuzione del random walk dopo t passi
vi(t) = probabilità di trovare un random walk sul
nodo i al tempo t
PR(i) = vi(∞)
Il calcolo del PageRankv = distribuzione iniziale
vi = probabilità di trovare un random walk sul
nodo i al tempo iniziale
v(t) = distribuzione del random walk dopo t passi
vi(t) = probabilità di trovare un random walk sul
nodo i al tempo t
PR(i) = vi(∞) ∑
i
v i=∑i
v i(t )=∑
i
v i(∞)
=∑i
PR(i)=1
Il calcolo del PageRank
La distribuzione al primo step evolve così :v i
(1)=∑ j Aij v j
Per un generico intervallo t→t+1:v i
(t+1)=∑ j Aij v j(t )
Se t→∞
v i(∞)=∑ j Aij v j
(∞)
Il calcolo del PageRank
Usando il formalismo vettoriale
v( )∞ = Av( )∞
Quindi
il PageRank è l'autovettore principale della matrice A associato all'autovalore 1
Le “patologie” della rete
Loop e nodi con outdegree nullo possono ridurre lo stato stazionario in uno stato banale.Per ovviare a questo problema, Brin e Page modificarono il processo stocastico così:
●con probabilità 1p, ad ogni passo il “random surfer” segue i link della rete●con probabilità p il “random surfer” salta su un'altra pagina scelta casualmente
Le “patologie” della rete
Il processo stocastico ora è descritto dall'equazione
e tende all'autovettore principale della matrice
con
v i(t+1)
=(1− p)∑j
Aij v j(t )+pN
Teorema di Perron-Frobenius
La matrice M:
● ha un autovalore 1 di molteplicità 1● 1 è l'autovalore massimo● l'autovettore corrispondente ha tutti elementi positivi●
Le comunità
La matrice AT
● ha un autovalore pari a 1
● corrisponde ad un autovalore con componenti costanti
Le comunità
Se una rete ha componenti disconnesse...
Le comunità
… la matrice A è a blocchi...
Le comunità
… e la trasposta ha più autovettori principali con un aspetto particolare.
Le comunità
Dunque
●La molteplicità dell'autovalore 1 ci dice il numero di componenti disconnesse
●Le componenti dell'autovettore di AT che hanno lo stesso valore corrispondono a nodi che appartengono alla stessa componente
●Lo studio di autovettori e autovalori di A e AT ci permette di capire la presenza di comunità all'interno della rete
Bibliografia
M. E. J. Newman e Juyong Park “Why social networks are different from other types of networks”Phys. Rev. E 68, 036122 (2003)
Page, Lawrence, Sergey Brin, Rajeev Motwani, and Terry Winograd. "The PageRank citation ranking: bringing order to the web." (1999).
Capocci, Andrea, et al. "Detecting communities in large networks." Physica A: Statistical Mechanics and its Applications 352.2 (2005): 669676.
Analizzare le reti con Awk
http://snap.stanford.edu/data/ca-CondMat.html
Scrivi la P(k):
awk ' { k[$1]++; k[$2]++ } END{for (i in k) count[k[i]]++; for (i in count) print i,count[i]}' ca-CondMat.txt | sort -n > pdk_condmat.dat