Grafi, Social Network e Ricerca su Web Prof. Maurizio Naldi
Teoria dei Grafi È uno strumento indispensabile per l analisi di reti e, quindi, di social network.... è fondamentale anche per capire come funziona un moderno motore di ricerca.... anche i navigatori sono basati su algoritmi su grafi!
Definizioni Un grafo G=(V,E) consiste in: un insieme V di vertici (o nodi) un insieme E di coppie di vertici, detti archi o spigoli: ogni arco connette due vertici Esempio 1: V={Insieme delle persone che vivono in Italia}; E={Coppie di persone che si conoscono} Esempio 2: V={Insieme delle persone che vivono in Italia}; E={(x,y): Se la persona x ha mandato una mail alla persona y}
Terminologia Esempio 1: relazione simmetrica: Grafo NON orientato Esempio 2: relazione NON simmetrica: Grafo orientato n=numero di vertici m=numero di archi I vertici L ed H sono ADIACENTI L arco (L,H) è INCIDENTE a L Grado di un nodo è il numero di archi incidenti 4
Esempi Grafo NON orientato: Facebook - i nodi sono le persone e gli archi sono le amicizie Grafo orientato: il Grafo del Web (Webgraph) - i nodi sono le pagine Web e gli archi sono i link (diretti) tra le pagine [torneremo a parlare del Webgraph quando parleremo di come funzionano i motori di ricerca...] 5
I grafi (o le reti) sono dovunque!!!
Collegamenti aerei
Autostrade
Metro Roma
Metro Manhattan
Catene alimentari (food networks) Catena alimentare
Personaggi di Orgoglio e Pregiudizio
Cause giudiziarie
Una partita di calcio!
Problema delle strette di mano (in versione Facebook): Considerate solo le amicizie all interno del vostro gruppo di amici. Ovvero, se un vostro amico è amico di qualcuno che non è vostro amico, non la contiamo. AFFERMAZIONE: In questo gruppo ristretto, esistono (almeno) due persone distinte che hanno lo stesso numero di amici 1 7
Problema delle strette di mano L affermazione è VERA o FALSA? Se è VERA, riusciamo a dimostrarla?!? Se è FALSA, riusciamo a trovare un controesempio?!? 1 8
L affermazione è VERA! Cenni della dimostrazione: In un gruppo di N persone, ognuno ha da 0 a N-1 amici Attenzione!: nel gruppo, o c è quello amico di tutti (N-1 collegamenti) oppure c è quello amico di nessuno (0 collegamenti) Supponiamo ci sia l amico di tutti: abbiamo N persone da classificare in gruppetti con 1,2..,N-1 collegamenti: almeno 2 devono finire nello stesso gruppetto! Ragionamento analogo se c è l amico di nessuno: abbiamo N persone da classificare in gruppetti con 0,1..,N-2 collegamenti: almeno 2 devono finire nello stesso gruppetto! 1 9
Il problema delle strette di mano... In realtà, abbiamo dimostrato il seguente teorema della Teoria dei Grafi: In un Grafo NON orientato, esistono sempre (almeno) due nodi che hanno lo stesso grado. Riusciamo a dimostrare il seguente: in un grafo, la somma di tutti i gradi è pari a 2m? 2 0
Le origini della Teoria dei Grafi: I ponti di Koenigsberg (materiale preso da wikipedia.it)
Il problema dei ponti Nel corso dei secoli è stata più volte proposta la questione se sia possibile con una passeggiata seguire un percorso che attraversi ogni ponte una e una volta soltanto e tornare al punto di partenza.
I ponti di Koenigsberg
I ponti di Koenigsberg
Il Teorema di Eulero Nel 1736 Leonhard Euler dimostra che la passeggiata ipotizzata non era possibile: Un qualsiasi grafo è percorribile se e solo se ha tutti i nodi di grado pari, o due di essi sono di grado dispari; per percorrere un grafo "possibile" con due nodi di grado dispari, è necessario partire da uno di essi, e si terminerà sull altro nodo dispari.
Grafi per modellare reti sociali I grafi sono da sempre lo strumento usato per la modellazione di reti sociali (o social networks). Nota bene: le social networks esistono da prima di Internet! 2 6
Grafo delle amicizie I nodi sono le persone, gli archi sono le amicizie (conoscenze?) tra le persone. Quanta distanza c è tra due persone? La distanza è il più breve cammino tra le due persone. Quanto sono lunghi i cammini in questo grafo? 2 7
Esperimento di Milgram Nel 1967, Milgram fece il seguente esperimento (voleva scoprire qual era la probabilità che due persone scelte a caso si conoscessero): Diede delle lettere a persone di Omaha (Nebraska) e Wichita (Kansas), destinate a residenti di Boston (Massachussets). Le buste potevano essere passate solo a conoscenti. Tra le buste che giunsero a destinazione, la media dei passaggi di mano fu 5.5. Questo condusse alla nascita dell idea dei SEI GRADI DI SEPARAZIONE 2 8
Small World Phenomenon O fenomeno di mondo piccolo : nonostante una rete sia numerosa (abbia un gran numero di nodi), il diametro (= massima distanza minima =massimo cammino minimo) è piccolo! 2 9
Esempi di Small World Phenomenon Numero di Erdős: i nodi della rete sono autori di articoli di matematica, e c è un arco tra due autori se hanno lavorato insieme in un articolo Numero di Bacon (Kevin): i nodi della rete sono attori cinematografici, e c è un arco tra due attori se hanno lavorato insieme in un film 3 0
Numero di Erdős Esiste, sul sito della AMS, un calcolatore del numero di Erdős : 3 1
Numero di Erdős Esiste, sul sito della AMS, un calcolatore del numero di Erdős : 3 2
Numero di Bacon 3 3
Numero di Bacon 3 4
Altri numeri... Numero di Erdős-Bacon: somma del numero di Erdős con il numero di Bacon (sono in pochi che lo hanno!) Numero di Morphy: distanza in partite di scacchi con Paul Morphy Numero di Shusaku: distanza in partite di GO con Honinbo Shusaku 3 5
Conseguenze dello SWP Se la distanza tra tutti è piccola, il numero di persone a distanza molto piccola è numeroso! 3 6
Visualizzazione di Reti Sociali Per renderci conto del diametro piccolo, possiamo provare a visualizzare la mappa dei nostri social network! Tante reti sociali hanno reso disponibili dei tool per poterle visualizzare Tra queste: Facebook, Twitter, LinkedIn... 3 7
LinkedIn Maps 3 8
Twitter (MentionMap) 3 9
Facebook Social Graph 4 0
Facebook Social Graph 4 1
Ricerca su Web Un motore di ricerca (Google, Bing, etc.) si può dividere in tre parti concettualmente distinte:
Componenti di un motore di ricerca Crawler: la parte che si occupa di scaricare in locale le pagine, che poi saranno processate dall Indexer, che crea un indice dei documenti, che viene usato dal Query processor, che riceve la query utente e restituisce i risultati ordinati
PageRank L algoritmo PageRank è il cuore del motore di ricerca Google. PageRank serve a ordinare i risultati: se cerco la parola Luiss trovo circa un milione e mezzo di pagine che la contengono!! Come ordinare i risultati? Usando PageRank!
PageRank L idea alla base di PageRank è la seguente: Un sito web autorevole è quello che è puntato da siti web autorevoli. PageRank, per calcolare i valori delle pagine, guarda solo la struttura di grafo delle pagine Web (WebGraph): ogni pagina è un nodo, ogni link tra le pagine è un arco diretto.
Calcolo di PageRank Inizialmente ogni pagina ha un valore di PageRank, detto il peso della pagina, w i pari a 1. Si ripete la seguente procedura (finchè i valori convergono, ovvero non cambiano più tra una iterazione e l altra): Ogni pagina divide il suo peso tra le pagine che punta Normalizzazione : divido tutti i pesi per il peso massimo tra tutte le pagine
Esempio 1 3 2 w 1 = w 2 w 2 = w 1 /2+w 3 w 3 = w 1 /2
Esempio 1 3 2 w 1 = w 2 w 2 = w 1 /2+w 3 w 3 = w 1 /2 Partendo da w1 = w2 = w3 = 1, dopo circa 50 iterazioni si giunge ai valori finali: w1 = w2= 1 e w3 = 1/2