(LABORATORIO DI ) SISTEMI INFORMATICI AVANZATI Giuseppe Manco CENTRALITÀ, STRUTTURA DI INTERNET. SEARCH: HITS E PAGERANK CENTRALITÀ, STRUTTURA DI INTERNET. SEARCH: HITS E PAGERANK  Centralità CENTRALITÀ   La centralità misura l’importanza relativa di un nodo all’interno di un grafo G  V , E Esistono svariate misure di centralità. Degree centrality  Closeness centrality  Betweenness centrality  Ecc…  DEGREE CENTRALITY    La Degree centrality di un nodo è definita come il numero di archi incidenti ad esso La Degree centrality misura la capacità immediata di un nodo di diffondere informazioni nella rete In caso di grafi diretti si possono calcolare due tipi di centrality: Indegree  Outdegree  DEGREE CENTRALITY  Matematicamente CD (v V )  degree (v)  Nella versione normalizzata degree (v) C D (v  V )  | V | 1  Complessità   V 2  Grafo denso:  Grafo sparso:  E   CLOSENESS CENTRALITY  Misura basata su: Shortest Path Length (spl) tra due nodi  Farness: fissato un nodo, è la somma di tutte le Shortest Path Length tra il nodo in esame e tutti gli altri nodi della rete    La Closeness Centrality è l’inverso della farness Intuitivamente, misura step sono necessari per diffondere una informazione da un nodo a tutta la rete CLOSENESS CENTRALITY  Matematicamente 1 CC (v  V )   spl (v, u) uV  Nella versione normalizzata CC (v V )  V 1  spl (v, u) uV  Complessità (dettata dalla ricerca di tutti gli spl)     (Floyd–Warshall algorithm) Grafo sparso: O V log V   V E  (Johnson's algorithm) Grafo denso: OV 3 2 CLOSENESS CENTRALITY   La formulazione originale è valida solo per grafi completamente connessi Formulazione alternativa (tra le tante proposte)  Opsahl (2010): 1 CC (v V )   uV spl (v, u ) BETWEENNESS CENTRALITY   È un indice che misura la frequenza di un nodo all’interno dello shortest path tra due nodi qualunque Ad esempio, la capacità di raccogliere informazioni da parte di uno sniffer in una rete informatica BETWEENNESS CENTRALITY    Sia v il nodo di cui si voglia calcolare la betweenness e siano s e t altri due nodi della rete diversi tra loro e diversi da v Sia  st il numero di shortest path che uniscono s e t tra loro Sia  st v  il numero di shortest path tra s e t che contengono v BETWEENNESS CENTRALITY  Matematicamente  Grafo diretto  st v  C B (v  V )   s  t  vV  st  Grafo indiretto  Grafo diretto  Grafo indiretto  st v  C B (v  V )   s t  vV  st  Nella versione normalizzata   st v    CB (v V )     s t vV  st  V 1V  2   st v    CB (v V )     st vV  st  V 1V  2 2 BETWEENNESS CENTRALITY  Complessità (dettata dalla ricerca di tutti gli spl)  Grafo denso: (Floyd–Warshall algorithm)   OV  3 Grafo sparso: (Johnson's algorithm)  O V log V   V E 2  PARAGONE  Rete: PARAGONE  Degree centrality PARAGONE  Closeness centrality PARAGONE  Betweenness centrality EIGENVECTOR CENTRALITY   Misura la centralità di un nodo in base alle sue interazioni con la rete Un nodo è importante se è collegato a nodi importanti  Ricorda qualcosa? EIGENVECTOR CENTRALITY   Supponiamo che G sia diretto con matrice di adiacenze A  avt v ,tV Matematicamente xv   1 a   tv x vt t Dove xv è la Eigenvector centrality del nodo v, mentre λ è una costante EIGENVECTOR CENTRALITY Ax  x  In forma vettoriale:  Questa è la formulazione degli autovettori, mentre le costanti sono gli autovalori  Tra tutti gli autovalori possibili scegliamo quello maggiore  autovettore positivo (teorema di Perron– Frobenius)  La v-esima componente dell’autovettore x è il grado di centralità del nodo v  In letteratura ci sono svariati algoritmi per il calcolo dei migliori autovalori/autovettori  SVD CENTRALITÀ, STRUTTURA DI INTERNET. SEARCH: HITS E PAGERANK  Struttura di Internet STRUTTURA DI INTERNET 13.6. EXERCISES 395 1 5 4 2 3 10 6 8 9 7 16 15 11 12 13 14 17 18 Figure 13.8: A direct ed graph of Web pages.  Source: David Easley, Jon Kleinberg Networks, Crowds, and Markets, Cambridge University Press (2010) (b) Name an edge you could add or delete from t he graph in Figure 13.8 so as t o increase t he size of t he set IN. 13.3. THE WEB AS A DIRECT ED GRAPH 387 STRUTTURA DI INTERNET I'm a student at Univ. of X I'm a applying to college Univ. of X My song lyrics Classes USNews: College Rankings I teach at Univ. of X Networks USNews: Featured Colleges Networks class blog Blog post about college rankings Blog post about Company Z Company Z's home page Our Founders Press Releases Contact Us Figure 13.6: A direct ed graph wit h it s st rongly connected component s identified. BOW-TIE  Source:A. Broder, et al. Graph structure in the Web. In Proc. WWW, pages 309–320, 2000. BOW-TIE   Internet è dunque una rete di contenuti con proprietà simili a quelle studiate finora Anche le risorse del web sono nodi di un grafo  È possibile dunque calcolare un grado di centralità e di importanza di ogni risorsa  È possibile guidare la ricerca di contenuti in base all’importanza delle risorse CENTRALITÀ, STRUTTURA DI INTERNET. SEARCH: HITS E PAGERANK  Search SEARCH   Problema della ricerca web: individuare le risorse richieste dall’utente nel minor tempo possibile a partire da un certo numero di parole chiave Inserisci un termine nella pagina di Google  Analizza i risultati  Il primo elemento è quello che ti aspettavi?  Come ha fatto Google a calcolare il risultato? SEARCH  Un problema difficile Information retrieval: ricerca in grosse repositories, sulla base di keywords  Keywords limitate e inespressive, e:  sinonimia (modi multipli per dire la stessa cosa: casa, abitazione)  Polisemia (significati multipli per lo stesso termine: Jaguar, Apple)   Differenti modalità di authoring    Esperti, novizi, etc. Estrema dinamicità del web Shift  Scarcity  abundance CENTRALITÀ, STRUTTURA DI INTERNET. SEARCH: HITS E PAGERANK  Algoritmo HITS HITS  HITS è l’acronimo per Hyperlink-Induced Topic Search (anche noto come hubs and authorities algorithm)  È una variante di Eigenvector Centrality  Due tipi di pagine web:  Hubs: sono pagine che non hanno contenuto informativo “autorevole” in merito all’argomento di ricerca, ma hanno dei link verso pagine autorevoli  Autorities: pagine di contenuti informativi sugli argomenti di ricerca HITS  Hub  Authority HITS  Data una ricerca sul web, l’algoritmo effettua due operazioni principali:  Recupero delle pagine web che trattano l’argomento in questione  Assegnamento, ad ogni pagina ottenuta al passo precedente, di due punteggi   Score di authority: stima dell’importanza del contenuto della pagina Hub value: stima del valore dei link verso le altre pagine HITS  L’assegnamento dei due punteggi avviene attraverso una procedura mutua ed iterativa     Ad ogni passo uno score modifica l’altro Sia A la matrice di adiacenze del grafo che rappresenta le pagine web selezionate in base alla ricerca Sia v il vettore che contiene i valori (ordinati per nodo) di authority di ogni nodo Sia u il vettore che contiene i valori (ordinati per nodo) di hub di ogni nodo HITS  Inizializzazione Ogni elemento di u è pari ad 1 t  Ogni elemento di v è pari ad A u    Update  u  Av  T v  A u  In forma chiusa uk  A  AT  uk 1  T v  A  A  vk 1  k HITS  In forma procedurale:  Authority Update Rule  Per ogni nodo p n auth( p )   hub(i ) i 1   Dove n è il numero di pagine che puntano su p Hub Update Rule  Per ogni nodo p n hub( p )   auth(i ) i 1  Dove n è il numero di pagine puntate da p HITS  Terminazione dell’algoritmo:  Così come è definito l’algoritmo diverge  È necessario un passo di normalizzazione che garantisce la convergenza  von Ahn, Luis (2008-10-19). "Hubs and Authorities". 15-396: Science of the Web Course Notes. Carnegie Mellon University. Retrieved 2008-11-09. HITS  Procedura HITS  Esempio. Rete: HITS  Matrice di adiacenze  Valore iniziale di u HITS  Authority  Hub HITS    Il nodo 3 è il più autorevole I nodi 1 e 2 non sono autorevoli ma sono equamente validi come hub Ripetere il processo ulteriormente non porta ulteriori miglioramenti I vettori u e v saranno solo moltiplicati per uno scalare  Serve la normalizzazione per ottenere un punto fisso  CENTRALITÀ, STRUTTURA DI INTERNET. SEARCH: HITS E PAGERANK  PageRank PAGERANK     Il PageRank è una misura di importanza delle pagine Web derivata dalla Eigenvector centrality È un sistema attualmente alla base del motore di ricerca di Google Il suo brevetto appartiene alla Stanford University Google ha acquistato dalla Stanford University una licenza speciale del PageRank per l’ammontare di 1.8Mln di azioni Google  Nel 2005 la Stanford University ha venduto le azioni in suo possesso per un totale di 336Mln di dollari PAGERANK   Il PageRank è una distribuzione probabilistica che misura la verosimiglianza che un utente generico, navigando in maniera random attraverso i link delle pagine visitate, arrivi ad una pagina target La stima della distribuzione di probabilità, come per l’algoritmo HITS, prevede una procedura iterativa ed approssimata PAGERANK – DEFINIZIONE DI BASE In una rete con n nodi assegniamo ad ogni nodo un PageRank iniziale pari ad 1/n  Scegliamo un numero limitato di step k  Effettuiamo k volte la procedura di update dei PageRank delle varie pagine   Basic PageRank Update Rule: Ogni pagina divide il proprio PageRank per il suo outdegree e passa tale quantità al PageRank delle pagine alle quali punta  Se una pagina non ha link uscenti passa l’attuale PageRank a se stessa  Ogni pagina assegna al proprio PageRank la somma di tutte le porzioni di PageRank trasferitegli dalle pagine che la puntano  PAGERANK – DEFINIZIONE DI BASE Matematicamente.  Inizializzazione. Per ogni pagina pi 1 PR( pi )  n   Update. Per ogni nodo pi PR( pi )    p j M ( pi ) PR( p j ) L( p j ) Dove M(pi) è l’insieme di tutte le pagine che puntano pi PAGERANK – DEFINIZIONE DI BASE  Esempio PAGERANK – DEFINIZIONE DI BASE Step A B C D E F G H 1 1/8 1/8 1/8 1/8 1/8 1/8 1/8 1/8 2 1/2 1/16 1/16 1/16 1/16 1/16 1/16 1/8 3 5/16 1/4 1/4 1/32 1/32 1/32 1/32 1/16 4 … … … … … … … … PAGERANK – PROBLEMA  Si consideri la seguente rete PAGERANK – PROBLEMA   Poiché il sotto ramo della pagina C non ha archi che facciano defluire il rank accumulato indietro nei nodi A, B, D, E e H, si verificherà la seguente condizione dopo un certo numero di iterazioni di PageRank:  PR(A) = PR(B) = PR(C) = PR(D) = PR(E) = PR(H) = 0  PR(F) = PR(G) = 0.5 Questo scenario è molto verosimile nel Web:  modello Bow-Tie PAGERANK – SOLUZIONE  Si aggiunge un fattore di dump (d):  Si suppone che ad ogni click, l’utente, che naviga in maniera random seguendo i link, possa decidere di smettere di seguire i link e di scegliere di aprire una pagina a caso  Update. Per ogni nodo pi PR( p j ) 1 d PR( pi )  d  n p j M ( pi ) L( p j )  Ora si ha il problema della stima del parametro d  Google, attualmente, usa un valore intorno a 0.85 PAGERANK  Forma matriciale  Update  Dove la funzione di adiacenza l(pi, pj) è pari a 0 se non esiste un arco tra pi e pj, ed è normalizzata in presenza di archi in modo da avere: PAGERANK   I valori dei PageRank sono le entry dell’autovettore dominante della matrice di adiacenze modificata La matrice di adiacenze è resa stocastica Rappresenta la probabilità di transazione da una pagina alla successiva  Le colonne sommano ad 1   Siamo, quindi, di fronte ad una variante dell’eigenvector centrality DIFFERENZE TRA HITS E PAGERANK  Tempo di esecuzione  HITS è eseguito contestualmente alla query    Il PageRank è eseguito in una fase di indicizzazione precedente alle query    query lente hub e authority score dipendenti dalle query Query veloci Score generale (ed unico) Numero di score HITS calcola due score per ogni documento  Il PageRank calcola un solo score per documento   Quantità di pagine in analisi HITS lavora su un sottoinsieme di documenti “rilevanti” ai fini della query  Il PageRank indicizza tutte le pagine web  PROBLEMA DEL PAGERANK   Il principale problema riscontrato nell’utilizzo del PageRank è la preferenza verso le pagine con la maggiore età. Pagine nuove, anche se ricche di contenuti, sono penalizzate dal fatto di non essere puntate da altre pagine esistenti  A meno di non far parte di un sito già esistente fortemente connesso  Ecco il motivo perché Wikipedia è sempre nei primi posti in una ricerca su Google