Un`applicazione delle catene di Markov: l`algoritmo del PageRank
Transcript
Un`applicazione delle catene di Markov: l`algoritmo del PageRank
Un’applicazione delle catene di Markov: l’algoritmo del PageRank Maurizio Cescon 25 settembre 2013 Indice 1 Catene di Markov 1.1 Definizione e concetti basilari . . . . . . . . . . . . . . . . . . 3 3 2 Teorema Ergodico 7 2.1 Stati ergodici . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Matrici primitive . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.3 Teorema di Perron-Frobenius . . . . . . . . . . . . . . . . . . 11 3 L’algoritmo del PageRank 3.1 Pagine web e catene di Markov 3.2 La matrice del PageRank . . . . 3.3 Power Method . . . . . . . . . . 3.4 Un po’ di analisi del PageRank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 14 16 17 19 A Algoritmo di Kosaraju 23 B Algoritmo per la periodicità 25 2 Capitolo 1 Catene di Markov In questo capitolo sono esposte delle nozioni di base riguardanti le catene di Markov. Quanto di seguito scritto non è esaustivo e si limita a riportare definizioni e proprietà utili per questo elaborato, senza entrare troppo nei dettagli matematici. Inoltre parecchi risultati sono generalizzabili, ma abbiamo preferito mantenere una trattazione più ristretta dato l’ambito abbastanza specifico d’utilizzo. La linea guida è stata quella di ricondurre i fenomeni probabilistici allo studio matriciale. 1.1 Definizione e concetti basilari Definizione 1. Siano (Ω, F, P ) uno spazio di probabiltà, (R, BR ) la σ-algebra dei boreliani e T ⊆ R. Si definisce processo stocastico di parametro t una famiglia di variabili aleatorie (Xt : t ∈ T ) definite in Ω e a valori in R, indicizzate dal parametro t. I valori che possono assumere le variabili aleatorie si chiamano stati e costituiscono lo spazio degli stati S ⊆ R che può essere un insieme finito, infinito numerabile o infinito con cardinalità del continuo. L’insieme T , detto spazio dei tempi, può essere un insieme infinito numerabile (processo a tempo discreto) oppure infinito con cardinalità del continuo (processo a tempo continuo). Ciò che ci interessa sono i processi nei quali lo spazio degli stati è finito, quello dei tempi è discreto con T = N e valgono le ipotesi di Markovianità ed omogeneità. Definizione 2. Un processo stocastico (Xn : n ∈ N) a tempo discreto e con spazio degli stati finito si dice Markoviano se ∀n ∈ N, ∀j, i, in−1 , . . . , i1 , i0 ∈ S vale che P (Xn+1 = j|Xn = i, Xn−1 = in−1 , . . . , X1 = i1 , X0 = i0 ) = P (Xn+1 = j|Xn = i). 3 Maurizio Cescon CAPITOLO 1. CATENE DI MARKOV Un tale processo si dice inoltre omogeneo se le probabilità di transizione sono stazionarie, cioè ∀n ∈ N vale che P (Xn+1 = j|Xn = i) = P (X1 = j|X0 = i) = pij . Quanto appena definito viene comunemente chiamato catena di Markov omogenea a stati finiti. D’ora in avanti, senza ulteriori specificazioni, supporremo d’essere sempre in queste ipotesi con |S| = N < N. Tali richieste sono fondamentali per assicurare alla catena d’essere definita e descritta in modo univoco a partire dalla matrice delle probabilità di transizione e dalla distribuzione di probabilità iniziale: P 1. P = pij i,j∈S con pij ∈ R+ e j∈S pij = 1 ∀i ∈ S, 2. π0 (i) = P (X0 = i) ∀i ∈ S. Come ad esempio dimostrato in [1], questo è possibile poiché i due elementi specificano tutte le probabilità delle sezioni finito dimensionali del processo e quindi consentono il calcolo delle probabilità di qualsiasi evento descritto in termini di valori futuri e condizionato in termini di valori presenti-passati. Molto utile è l’equazione di Chapman-Kolmogorov che collega le probabilità di transizione stazionarie a più passi pnij = P (Xn = j|X0 = i) con n ≥ 1 numero di passi: X n+m ∀n, m ≥ 1 : pn+m = pnik pm = Pn Pm . kj ∀i, j ∈ S ⇐⇒ P ij k∈S Sfruttando quest’equazione, si può calcolare πn (i) cioè la probabilità di trovarsi in uno stato i al passo n ≥ 1 come X X π0 (k) pnki ⇐⇒ πn = πn−1 P = π0 Pn . πn−1 (k) pki = πn (i) = k∈S k∈S Queste considerazioni permettono di associare a ciascuna catena di Markov: 1. un sistema di equazioni lineari π0 noto πn+1 = πn P = π0 P n+1 ∀n ∈ N, (1.1) che descrive in termini probabilistici l’evoluzione del processo; 2. un grafo G = (V, E), avente |V | = N nodi pari alla quantità di stati ed |E| = M archi congiungenti nodi aventi una probabilità strettamente positiva di passare da uno all’altro in un passo. 4 Maurizio Cescon 1.1. DEFINIZIONE E CONCETTI BASILARI Figura 1.1: esempio di grafo. Ad esempio se N = 3 1/3 P = 1/2 0 con 1/3 1/3 1/2 0 , 1/2 1/2 π0 = (1/3, 1/3, 1/3), si può disegnare il grafo di figura 1.1 e dire che l’evoluzione del sistema, cioè πn (i) ∀i ∈ S, è regolata da (1.1). Rispetto alla caratterizzazione grafica, vale la seguente proprietà. Proposizione 1. Sia P la matrice delle probabilità di transizione di una catena di Markov. Esiste un cammino tra due stati i e j di lunghezza n se e solo se pnij > 0. Dimostrazione. La dimostrazione può essere fatta per induzione sulla lunghezza del cammino. n = 1: il problema è banale. n = 2: dall’equazione di Chapman-Kolmogorov X p2ij = pik pkj , k∈S quindi p2ij 6= 0 se e solo se per almeno un k ∈ S ci sono pik e pkj enrambi diversi da zero. Ma questo vale se e solo se esiste un cammino di lunghezza 2 da i a j. 5 Maurizio Cescon CAPITOLO 1. CATENE DI MARKOV n > 2: se supponiamo vera l’affermazione per il caso n, allora X pn+1 = pnik pkj 6= 0 ij k∈S se e solo se per almeno un k ∈ S ci sono pnik e pkj enrambi diversi da zero. Per ipotesi induttiva questo è equivalente ad avere un cammino da i a k di lunghezza n e uno da k a j di lunghezza 1, cioè un cammino da i a j di lunghezza n + 1. 6 Capitolo 2 Teorema Ergodico Questo capitolo è finalizzato alla descrizione dell’andamento di una catena di Markov a partire dal sistema (1.1). In particolare l’interesse è legato al comportamento al limite della catena o equivalentemente a quello di πn per n tendente ad infinito. Questo è regolato dal noto teorema ergodico per catene di Markov omogenee e a stati finiti. Nella letteratura dei processi stocastici ci sono diverse tipologie dimostrative del teorema. Alcune si basano su concetti astratti di analisi matematica, altre si appoggiano alla teoria delle matrici. In questo lavoro abbiamo seguito la seconda strada, enunciando il teorema come sottocaso del teorema di Perron-Frobenius per matrici primitive. Volendo proporre un approccio operativo, abbiamo anche suggerito algoritmi atti a dimostrare le ipotesi del teorema. 2.1 Stati ergodici Definizione 3. Uno stato j si dice raggiungibile da un’altro stato i (i → j)se ∃ n ≥ 1 : pnij > 0. Diciamo che due stati comunicano (brevemente i ↔ j) se i → j e j → i. In accordo con la proposizione 1, ciò equivale a dire che se pnij > 0 per qualche n allora esiste un cammino di lunghezza n che collega gli stati i e j. E’ immediato verificare che la relazione comunicano è di equivalenza. Pertanto gli stati di una catena di Markov possono essere divisi in classi di equivalenza. Definizione 4. Una catena di Markov si dice irriducibile se tutti gli stati comunicano tra loro. La matrice delle probabilità di transizione P associata ad una catena di Markov irriducibile si dice irriducibile. 7 Maurizio Cescon CAPITOLO 2. TEOREMA ERGODICO Dal punto di vista operativo, questa definizione non fornisce un criterio implementabile computazionalmente capace di discernere tra catene irriducibili e non. Grazie alla matrice delle probabilità di trasizione, la definizione può essere cosı̀ riformulata. Teorema 1. Una catena di Markov è irriducibile se e solo se (I +P)N −1 > 0. Dimostrazione. Poiché si considerano catene a stati finiti, se due stati comunicano esiste almeno un cammino di lunghezza inferiore a N − 1 dal primo stato al secondo e viceversa. Allora (I + P)N −1 = I + (N − 1)P + N2−1 P2 + N −1 −1 ··· + N P > 0 se e solo se per ogni coppia di stati i, j (i 6= j) almeno N −2 una delle matrici P, P2 . . . , PN −1 ha un valore strettamente positivo in posizione (i, j). E questo per la proposizione 1 accade se e solo se c’è un cammino da i a j per ogni coppia di stati di lunghezza inferiore a N − 1. Tranne per casi in cui N risulti piccolo, un criterio per l’irriducibilità che preveda la moltiplicazione di (I + P) per se stessa N − 1 volte non è una strada percorribile (si pensi ad N di qualche milione). Questo controllo si può fare in modo più efficiente traslando il problema nella teoria dei grafi. A tale scopo si veda l’appendice A, in cui è proposto l’algoritmo di Kosaraju che risolve il problema in tempo O(N + M ). Accanto alla definizione di irriducibilità, c’è anche l’importante concetto di periodicità. Definizione 5. Uno stato i ∈ S si dice periodico di periodo δ(i) ≥ 2, se δ(i) è il massimo comun divisore tra tutti gli n tali che pnii > 0. Se δ(i) = 1 lo stato è detto aperiodico. Proposizione 2. Se i ↔ j allora δ(i) = δ(j). Dimostrazione. Sia i 6= j. Allora i ↔ j se e solo se ∃ n, m ≥ 1 : pnij > 0, pm ji > 0. Vale: X n m n pn+m = pm jk pkj ≥ pji pij > 0 jj k∈S e questo implica che δ(i) è definito. Analogamente per δ(j). Per dimostrare l’uguaglianza basta far vedere che δ(i) ≤ δ(j) e δ(j) ≤ δ(i). δ(i) ≤ δ(j): dimostriamo che δ(i) è un divisore di qualsiasi generico k tale che pkjj > 0. Dalle equazioni di Chapman-Kolmogorov n k m pn+m+k ≥ pn+k pm ji ≥ pij pjj pji > 0 ⇒ δ(i)|n + m + k, ii ij pn+m ≥ pnij pm ji > 0 ⇒ δ(i)|n + m. ii Ma allora δ(i)|k. δ(j) ≤ δ(i): in modo analogo. 8 Maurizio Cescon 2.2. MATRICI PRIMITIVE Come nel caso dell’irriducibilità, anche la proprietà di aperiodicità è una proprietà di classe e permette di definire una tipologia molto importante di stati. Definizione 6. Gli stati di una catena di Markov a stati finiti che sia omogenea irriducibile e aperiodica si dicono ergodici. Il teorema ergodico, come già accennato, caratterizza il comportamento al limite di una catena di Markov i cui stati siano ergodici. E con ciò si intende che fornisce una probabilità di visita di ciascuno stato fissa ed indipendente dalle condizioni iniziali. Questa probabilità si definisce distribuzione limite. Definizione 7. Una distribuzione di probabilità π con π(j) ≥ 0 ∀j ∈ S e P j∈S π(j) = 1 si dice distribuzione limite per una catena di Markov omogenea se lim pnij = π(j), ∀i ∈ S. n→∞ Accanto alla definizione di distribuzione limite, ce n’è una più debole e più facile da verificare. Definizione 8. Una distribuzione di probabilità π si dice distribuzione invariante per una catena di Markov omogenea se ∀j ∈ S X π(j) = π(i) pij ⇐⇒ π = πP. i∈S Dal teorema 4 si deduce che ogni distribuzione limite per una catena di Markov è unica ed invariante. Il viceversa in generale non è vero, cioè esistono distribuzioni invarianti ed uniche per catene che non sono limite. Ad esempio si consideri la matrice stocastica1 P̄ = 01 10 . Essa ha due autovalori distinti λ1 = 1, λ2 = −1 con corrispondenti autovettori v1 = (1/2, 1/2), v2 = (1/2, −1/2). π = (1/2, 1/2) è una distribuzione invariante. Però non esistono distribuzioni limite perché limn→∞ pnij dipende dallo stato i. 2.2 Matrici primitive Nell’introduzione abbiamo scritto che il teorema ergodico si può dedurre da quello di Perron-Frobenius per matrici primitive. Vediamo, quindi, come legare l’ergodicità a tale ipotesi. 1 Matrice stocastica: una matrice delle probabilità di transizione di una catena di Markov. 9 Maurizio Cescon CAPITOLO 2. TEOREMA ERGODICO Definizione 9. Una matrice delle probabilità di transizione P si dice positiva se pij > 0 ∀i, j ∈ S. Altrimenti si dice non negativa. Definizione 10. Una matrice delle probabilità di transizione P non negativa si dice primitiva se è irriducibile ed ha solamente un autovalore di modulo massimo. Questo secondo tipo di matrici è lungi dall’essere un tipo facilmente riconoscibile senza dei criteri adatti a stabilire quando questa ipotesi è verificata o meno. Come per altri casi il calcolo degli autovalori e la successiva verifica che ce n’è uno massimale, non è una buona soluzione. Pertanto si ricorre a teoremi come il seguente. Teorema 2. Data una matrice delle probabilità di transizione P non negativa, vale che P è primitiva se e solo se P m > 0 per qualche m ≥ 1. Dimostrazione. Si può trovare la dimostrazione di questo fatto in [3]. Corollario 1. Ogni matrice positiva è primitiva. Proposizione 3. Se P ≥ 0 e Pk > 0 allora Pm > 0 per ogni m ≥ k. Dimostrazione. In generale vale Pm = P m−k Pk . Poiché l’insieme delle matrici stocastiche è un semigruppo P m−k è ancora stocastica. Pertanto la somma dei suoi valori lungo ogni riga è pari a uno e questo implica che nessuna riga ha coefficienti tutti nulli. Ne segue che Pm = P m−k Pk ha ogni componente maggiore di zero, visto che Pk > 0. Va sottolineato che al di là della riformulazione della primitività col teorema 2, è utile determinare degli upper bound al valore m del teorema. Proposizione 4. Data una matrice delle probabilità di transizione P irriducibile, se le componenti sulla diagonale principale sono maggiori di zero allora P N −1 > 0. Dimostrazione. Siano γ = min{p11 , . . . , pN N } e B = P − diag(p11 , . . . , pN N ). Allora B è non negativa, irriducibile (poiché P lo è) e vale P ≥ γI +B ≥ γ (I + (1/γ)B). Per il teorema 1 segue che PN −1 ≥ γ N −1 (I + (1/γ)B)N −1 > 0. Teorema 3 (Wielandt). Data una matrice delle probabilità di transizione P 2 non negativa, vale che P è primitiva se e solo se P N −2N +2 > 0. Dimostrazione. La dimostrazione originale si trova in [8] ed è piuttosto semplice richiedendo come prerequisiti il solo teorema di Cayley-Hamilton. Altrimenti si può guardare [3], in cui il tutto è contestualizzato nella teoria dei grafi. 10 Maurizio Cescon 2.3. TEOREMA DI PERRON-FROBENIUS Gli ultimi due teoremi sono potenti strumenti per affermare qualcosa di più sulle matrici primitive. In particolare quello di Wielandt (che considera il caso generale) produce un upper bound che per matrici irriducibili con tutti elementi nulli sulla diagonale, è il migliore possibile. La seguente matrice 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 P= 0 0 0 0 1 1/2 1/2 0 0 0 lo dimostra. Come per il caso dell’irriducibilità, è auspicabile verificare questa proprietà senza ricorrere a N 2 − 2N + 2 moltiplicazioni di P per se stessa (si pensi sempre a N di qualche milione). A tale scopo è utile la seguente equivalenza che trasla il problema nella teoria dei grafi. Corollario 2. Data una matrice delle probabilità di transizione P, vale che P è primitiva se e solo se gli stati della catena sono ergodici. Dimostrazione. Se P è primitiva allora esiste k tale che Pk > 0 ∀ k ≥ m. Ne segue Pk , P k+1 > 0 da cui il loro massimo comune divisore è 1. Concludiamo δ(i) = 1 ∀i ∈ S e la catena è ergodica. Se gli stati sono ergodici allora per ogni coppia di stati (i, j) (comprese le n coppie (i, i)) esiste un indice nij tale che pijij > 0. Se n̄ è il prodotto di tutti questi indici allora Pn̄ > 0. Quanto dimostrato evidenzia la stretta connessione tra l’ergodicità di una catena di Markov e la primitività di P. A partire da questo corollario, un modo molto comune per verificare l’ergodicità consiste nel ricorrere all’algoritmo descritto nell’appendice B. Tale algoritmo determina la periodicità di una catena di Markov irriducibile usando il grafo della catena ed operando in tempo O(N + M ). 2.3 Teorema di Perron-Frobenius Teorema 4 (Perron-Frobenius). Sia A = (aij ) una matrice N × N reale. Se A è primitiva allora valgono: 1. ρ(A) > 02 ; 2. ρ(A) è un autovalore di A; 2 ρ(A) = max{|λ| : λ ∈ σ(A)}. 11 Maurizio Cescon CAPITOLO 2. TEOREMA ERGODICO 3. ci sono v vettore riga, w vettore colonna in RN con vi , wi > 0 e tali che vA = ρ(A)v, Aw = ρ(A)w; 4. ρ(A) è un autovalore semplice di A. In particolare gli autospazi destro e sinistro3 associati a ρ(A) hanno dimensione uno; 5. |λ| < ρ(A) per ogni autovalore λ 6= ρ(A) di A; 6. vale il seguente limite: limn→∞ (A/ρ(A))n = w v/v w; P PN 7. vale la seguente stima: min N j=1 aij ≤ ρ(A) ≤ max j=1 aij ; 8. P esistono unici PN due vettori v e w che soddisfano i punti sopra e tali che N i=1 vi = i=1 wi = 1; Dimostrazione. Per la dimostrazione si può consultare [3]. Supponendo A ≡ P si può applicare questo teorema per dimostrare l’esistenza della distribuzione limite per tutte le catene di Markov descritte da una P primitiva. Si ottiene: 1. ρ(A) = 1 è un autovalore semplice di P e tutti gli altri autovalori λ soddisfano |λ| < 1; 2. esistono e sono uniche due distribuzioni di probabilità π ed e tali che π = πP, e = Pe. L’autovettore destro ha componenti ei = 1/N ; 3. il limite limn→∞ Pn =: P∞ è ben definito4 e π(1) eπ .. ∞ n = . P = lim P = n→∞ 1/N π(1) vale . . . π(N ) .. . .. . . . . . π(N ) Pertanto limn→∞ pnij = π(j) ∀i ∈ S e P∞ è una matrice stocastica positiva di rango uno. Dai punti del teorema si evince che Pn è ben definita per ogni n e ammette come limite una matrice stocastica. Di fatto il sistema ( π0 noto (n→∞) πn+1 = πn P = π0 P n+1 −→ π0 P∞ = π, ha un unico punto di equilibrio stabile che viene raggiunto indipendentemente dai valori iniziali. Questo prova il teorema seguente. 3 autospazi destro e sinistro: gli autovalori di una matrice e della sua trasposta coincidono. 4 definito: l’insieme delle matrici stocastiche è un semigruppo quindi la moltiplicazione di due matrici stocastiche è ancora una matrice stocastica. 12 Maurizio Cescon 2.3. TEOREMA DI PERRON-FROBENIUS Teorema 5 (Ergodico). Data una catena di Markov omogenea, a stati finiti ed ergodici esiste un’unica distribuzione di probabilità π tale che πP = π e limn→∞ pnij = π(j), ∀i ∈ S. Se, per esempio, si riconsidera il caso con P̄ = 01 10 esso non ha una distribuzione limite poiché ammette due autovalori massimali (anche se il vettore (1/2, 1/2) è un punto di equilibrio stabile per il sistema). Sempre questo caso, costituisce un contro esempio all’impossibilità d’avere distribuzioni limite con la sola richiesta per P dell’irriducibilità. 13 Capitolo 3 L’algoritmo del PageRank Il capito illustra l’applicazione dei concetti trattati al caso del PageRank. Il PageRank è un algoritmo che fa uso delle catene di Markov per ordinare le pagine web ed è alla base del funzionamento di Google. Data la natura commerciale di quest’ultimo, quanto riportato potrebbe differire dall’effettiva implementazione dell’algoritmo. Ad ogni modo le idee basilari nonché i risultati teorici rimangono validi. Accanto alla teoria abbiamo riportato il power method (necessario per calcolare i ranking) e un po’ di analisi dell’algoritmo. 3.1 Pagine web e catene di Markov Fin dalla nascita del mondo virtuale, si è sentita l’esigenza di mezzi che favorissero ricerche rapide ed efficaci. Di strumenti capaci di filtrare ed ordinare le pagine web rispetto alle query degli utenti. I motori di ricerca sono nati per rispondere a queste necessità. Nel corso degli anni ne sono stati lanciati parecchi, a volte riscuotendo successo a volte mancando le richieste del mercato. Uno dei più diffusi è senza dubbio Google, il cui successo è stato decretato dalle ottime capacità d’ordinamento. Il suo funzionamento, essendo un prodotto commerciale, non è di dominio pubblico. Ad ogni modo si sa che è basato sull’analisi di tutte le pagine web mediante i cosiddetti Googlebot al fine di ricavare informazioni su quest’ultime e classificarle. L’analisi avviene ad intervalli prestabiliti in modo da tenere conto dell’evoluzione del web. La classificazione è invece una miscela di molteplici elementi di cui l’algoritmo del PageRank (proposto da Larry Page e Sergey Brin in [10]) ne costituisce l’ossatura. Cerchiamo di fare chiarezza. In modo semplicistico, si può dire che una ricerca conta di due azioni: l’estrazione di tutte le pagine relative ad una specifica query e l’ordinamento per importanza di quest’ultime. Il Pagerank contribuisce pesantemente alla seconda. Diciamo contribuisce e 14 Maurizio Cescon 3.1. PAGINE WEB E CATENE DI MARKOV non determina poiché ci sono tanti fattori che influenzano l’ordine. A titolo informativo si può dare un’occhiata alla Guida introduttiva di Google all’ottimizzazione per motori di ricerca (SEO). Ad ogni modo i risultati di questo algoritmo, che nel seguito chiameremo ranking1 delle pagine web, sono fondamentali. Il PageRank sfrutta la teoria delle catene di Markov e pertanto fa uso di una matrice stocastica P di dimensione N × N (dove N è il numero totale di pagine web) detta hyperlink matrix e cosı̀ composta: ( 1/k se c’è un collegamento dalla pagina i alla pagina j pij = 0 altrimenti, con k numero totale di link uscenti dalla pagina i. In questa modellazione dove P assume il ruolo di matrice delle probabilità di transizione, la navigazione di un utente diventa un cammino casuale avente le pagine web come stati. Assumendo, almeno inizialmente, che P sia primitiva deve esistere una distribuzione limite con componenti strettamente positive. Secondo quanto dimostrato, i coefficienti (π(1), . . . , π(N )) rappresentano le porzioni di tempo a regime che un cammino casuale spende nello stato j. Chiaramente più il valore π(i) è alto, più la pagina i è importante. Quello che fa l’algoritmo del PageRank è di assegnare un coefficiente ad ogni pagina web i proporzionale alla probabilità π(i). Può essere utile alla comprensione un esempio pratico. Consideriamo tre pagine web 1, 2, 3 cosı̀ collegate: 1 → 1, 1 → 2, 1 → 3 2 → 1, 2 → 2, 3 → 2, 3 → 3. Allora la matrice delle probabilità di 1/3 P = 1/2 0 transizione risulta: 1/3 1/3 1/2 0 . 1/2 1/2 La distribuzione limite è data dall’equazione π = πP con vincolo π(1)+π(2)+ π(3) = 1 da cui si ottiene: π = (3/9, 4/9, 2/9). Il ranking massimo è dato dalla pagina 2, la quale ha un collegamento entrante sia da 1 che 3. La pagina 1 è più importante della 3 poiché ha un 1 Usualmente quando si parla di ranking si fa riferimento all’ordinamento delle pagine rispetto a tutti i fattori, non solo ai risultati del PageRank. 15 Maurizio Cescon CAPITOLO 3. L’ALGORITMO DEL PAGERANK collegamento entrante dalla pagina con ranking più alto. In sostanza, l’idea è che i link da siti importanti (dove per sito importante si intende uno linkato da molti altri) siano più influenti di quelli da siti meno noti e che ogni pagina ripartisca equamente il proprio peso tra il numero dei suoi link uscenti. 3.2 La matrice del PageRank Ovviamante nella precedente sezione, il ragionamento era soggetto all’ipotesi di P primitiva. Ma non c’era nessuna conseguenza implicita che la forzasse ad esserlo quindi in generale bisogna imporlo. A tal scopo, il PageRank lavora su una matrice leggermente modificata e primitiva2 : 1 ... 1 p11 . . . p1N .. + 1 − α .. . . .. , ... (3.1) A = α ... . . . . N 1 ... 1 pN 1 . . . p N N con 0 < α < 1, detto valore di modifica. Un tipico valore per α è 0.85; la sua proposta è dovuta ai costruttori di Google e deriva da alcuni studi di cui approfondiremo qualcosina nelle sezioni successive. Va precisato che quello esposto sopra non è l’unico modo per rendere una matrice primitiva. Ci sono parecchie strategie per farlo, ma i costruttori di Google hanno adottato questa. Essendo A primitiva l’ipotesi di esistenza ed unicità della distribuzione limite è garantita. Il significato di (3.1) può essere parafrasato come: c’è una probabilità fissa (1−α)/N di passare da una pagina web i ad un’altra j, a cui si somma una probabilità, (proporzionale ad α) di fare questo passaggio. La prima serve per rendere la matrice primitiva, la seconda (che può essere nulla in assenza di collegamenti) tiene conto degli effettivi collegamenti esistenti. Il ranking di ciascuna pagina va dunque calcolato mediante l’equazione: p11 . . . pN 1 π(1) 1 π(1) 1 − α .. .. . . . .. .. .. + (3.2) .. . = α . . N 1 π(N ) p1N . . . pN N π(N ) N X π(i) = 1 i=1 Siccome la sostanza del PageRank si riduce a risolvere il problema (3.2) o equivalentemente un sistema lineare omogeneo π(I − A) = 0, il tutto sembrerebbe piuttosto facile. Se lo è dal punto di vista teorico, non lo è sicuramente 2 primitiva: di fatto A è positiva. 16 Maurizio Cescon 3.3. POWER METHOD computazionalmente parlando vista l’enorme dimensione di P. Questa peculiarità limita addirittura la scelta degli algoritmi, tant’è che spesso si definisce (3.2) the world’s largest matrix computation. Metodi diretti (perfino quelli messi a punto per matrici sparse) non riescono a sopperire a questo problema. Ad oggi il cosiddetto Power Method o sue modifiche sembrano le uniche soluzioni percorribili con tempi computazionali di qualche giorno e capaci di fronteggiare la rapidità di crescita del web. In [13] e [14] sono proposte varianti risolutive, come il metodo di Gauss–Seidel oppure migliorie al Power Method consistenti in un’estrapolazione quadratica, in metodi adattivi (per controllare la convergenza delle singole componenti) e in partizioni di P usando aggregazioni esatte. Questi raffinamenti hanno anche il pregio di non competere tra loro, ma di combinarsi migliorando il risultato finale. Ma non ci sono metodi sostanzialmente diversi. Vediamo quindi più da vicino come è formalizzato il Power Method nella sua versione base. 3.3 Power Method Il Power Method è un algoritmo per trovare autovalori piuttosto semplice nel funzionamento perché non esegue nessuna decomposizione della matrice. Quindi può essere usato quando quest’ultima è molto grande e sparsa. Di contro trova solo un autovalore e un corrispondente autovettore di modulo massimo. In particolare esso parte con un vettore b0 (che potrebbe essere una approssimazione dell’autovettore dominante o un valore random) e usa ricorsivamente la seguente formula: bk+1 = Abk . kAbk k Vale il seguente teorema. Teorema 6. Data una matrice A quadrata N × N che abbia un autovalore dominante3 e dato un vettore di partenza b0 con componenti non nulle lungo la direzione dell’autovettore dominante, esiste una sottosuccessione di bk convergente a questo autovettore. Dimostrazione. Se A è diagonalizzabile siano λ1 , . . . , λN gli N autovalori (con eventuali molteplicità) tali che |λ1 | > |λ2 | ≥ · · · ≥ |λN | e v1 , . . . , vN i corrispondenti autovettori. Dalle ipotesi, b0 può essere scritto come b0 = 3 dominante: in modulo strettamente maggiore di tutti gli altri. 17 Maurizio Cescon CAPITOLO 3. L’ALGORITMO DEL PAGERANK c1 v1 + · · · + cn vN con c1 6= 0 perché ha componenti non nulle lungo v1 . Allora: Abk−1 Ak b0 c1 Ak v1 + c2 Ak v2 · · · + cN Ak vN = = = kAbk−1 k kAk b0 k kc1 Ak v1 + c2 Ak v2 · · · + cN Ak vN k c1 λk1 v1 + c2 λk2 v2 · · · + cN λkN vN = = kc1 λk1 v1 + c2 λk2 v2 · · · + cN λkN vN k ! k k λ k c v1 + cc21 λλ21 v2 + . . . ccN1 λλN1 vN 1 1 . = |λ1 | |c1 | kv1 + c2 λ2 k v2 + . . . cN λN k vN k c1 λ1 c1 λ1 bk = Per l’espressione sopra vale che ∀j > 1: cj λj k (k→∞) vj −→ 0, c1 λ 1 poiché |λj |/|λ1 | < 1 . Se A non è diagonalizzabile si considera la sua forma canonica di Jordan A := V JV −1 , dove nella prima colonna di V c’è l’autovettore v1 corrispondente all’autovalore dominante λ1 . Dall’unicità dell’autovalore dominante, ne deriva che il primo blocco di Jordan è composto dal valore λ1 . Poiché il vettore b0 può essere scritto come combinazione lineare delle colonne di V b0 = c1 v1 + · · · + cN vN con c1 6= 0, si ha: (V JV −1 )k b0 (V J k V −1 )b0 Abk−1 = = = kAbk−1 k kV JV −1 )k b0 k k(V J k V −1 )b0 k V J k V −1 (c1 v1 + c2 v2 · · · + cN vN ) = = kV J k V −1 (c1 v1 + c2 v2 · · · + cN vN )k V J k (c1 e1 + c2 e2 · · · + cN eN ) = = kV J k (c1 e1 + e2 v2 · · · + eN vN )k ! 1 1 k λ k c v + V ( J) (c e + · · · + c e ) 1 2 2 N N 1 1 c1 λ1 = . |λ1 | |c1 | kv1 + c11 V ( λ11 J)k (c2 e2 + · · · + cN eN )k bk = Per l’espressione sopra vale che (con M blocchi di Jordan): 1 1 1 k 1 k ( λ1 J 2 ) (k→∞) 0 ( J) = −→ . . . . λ1 . . 0 ( λ11 JM )k poiché l’autovalore di ( λ11 Jj )k è in modulo più piccolo di 1 ∀j > 1. Ne segue: 1 1 k (k→∞) V Jj (c2 e2 · · · + cN eN ) −→ 0. c1 λ 1 18 Maurizio Cescon 3.4. UN PO’ DI ANALISI DEL PAGERANK Sai per il caso di A diagonalizzabile che per quello non diagonalizzabile, si perviene all’approsimazione c1 v1 + rk , bk ∼ = eıφk |c1 | kv1 k dove eıφ = λ1 /|λ1 | e krk k → 0 quando k → ∞. La successione bk è limitata e quindi contiene una sottosuccessione convergente. Per via della presenza del termine eıφk , non si può concludere che bk converga all’autovettore voluto (si pensi al caso complesso). Nel caso di matrici stocastiche, l’autovalore dominante è 1 perciò bk converge a v1 /kv1 k. Per quanto riguarda la velocità di convergenza, essa è geometrica e dipendente dal rapporto |λ2 |/|λ1 |; risulta quindi lenta se il primo e secondo autovalore sono molto vicini in modulo. Dal punto di vista computazionale, il carico maggiore risiede nelle moltiplicazioni matrice-vettore. Per una trattazione più approfondita degli aspetti di questo metodo, si può ad esempio consultare [13]. Esso analizza i suoi punti di forza (di carattere sopratutto numerico) consistenti nella limitata quantità di memoria (solo un vettore), nell’eseguire operazioni con matrici sparse, nell’accuratezza (niente sottrazioni) e nella semplicità. Si sofferma anche sui suoi difetti coincidenti praticamente con la bassa velocità di convergenza. 3.4 Un po’ di analisi del PageRank E ’ parecchio difficile fare un’analisi del PageRank che tenga conto di tutte le caratteristiche del problema e di quelle legate alla sua implementazione attraverso il Power Method. I motivi sono la grossa quantità di aspetti da considerare e la dimensione commerciale di Google (per cui i risultati non sono tutti pubblici). Il taglio di questa sezione sarà, quindi, più di una chiacchierata che un’esposizione a tutto tondo. Rimandiamo ad esempio a [13] o [14] per maggiori dettagli su ciò che è riportato. L’articolo [11], propone dei teoremi aventi grosse conseguenze sulla velocità di convergenza: Teorema 7. Sia P una matrice stocastica N ×N e sia α un numero reale tale che: 0 ≤ α ≤ 1. Sia E = ev T la matrice N × N di rango unitario, dove e è il vettore con tutte le componenti uguali a uno e v è un vettore che rappresenta T una distribuzione di probabilità. Allora definita A = αP + (1 − α)E , si ha che |λ2 | ≤ α. Dimostrazione. Vedi [11]. 19 Maurizio Cescon CAPITOLO 3. L’ALGORITMO DEL PAGERANK Teorema 8. Se P ha almeno due sottoinsiemi irriducibili e chiusi di stati4 , allora il secondo autovalore di A è dato da λ2 = α. Dimostrazione. Se α = 0 allora A = E T . Poiché E ha rango 1 segue λ2 = 0. Sia quindi 0 < α ≤ 1. Come prima cosa si ha che ogni autovettore y di PT che sia ortogonale ad e, è un autovettore di A. Infatti per definizione vale PT y = γ y, da cui: A y = α PT y + (1 − α)E T y = α PT y + (1 − α)veT y = α PT y = αγ y, con λ = αγ. Lo scopo è costruire un vettore soddisfacente alle precedenti richieste. Come riportato ad esempio in [1], la molteplicità geometrica dell’autovalore 1 di una catena di Markov a stati finiti (cioè il numero di distribuzioni invarianti) è pari al numero di classi di stati chiuse ed irriducibili. Quindi, nelle ipotesi del teorema, P ha almeno due autovettori linearmente indipendenti y1 , y2 corrispondenti all’autovalore 1. Siano c1 = y T e, c2 = y T e. Se c1 = 0 allora y = y1 , se c2 = 0 allora y = y2 altrimenti y = y1 /c1 − y2 /c2 . In ogni caso esiste un autovettore y per PT corrispondente all’autovalore 1 e tale che y T e = 0. Pertanto y è un autovettore di A con corrispondente autovalore α cioè A ha un autovettore con autovalore λ = α ≤ |λ2 |. Per il teorema 7 si ottiene l’uguaglianza λ2 = α. Apparentemente sembrerebbe che i due teoremi considerino una matrice diversa rispetto a quella vista precedentemente. Di fatto è solo una sua generalizzazione. Il vettore v del PageRank non è quello con valori 1/N (con N numero totale di pagine) ma quello sopra con v > 0 distribuzione di probabilità. I motivi sono più che altro di natura algoritmica e commerciale: cosı̀ si permette ad uno stato d’avere una ranking alto a prescindere dai suoi collegamenti. Le conseguenze più forti sono nel secondo teorema: esso fornisce una valore esatto per il modulo del secondo autovalore di A. E’, però, applicabile a patto di aggiungere ipotesi alla matrice P; sperimentalmente si è visto che P realizza sempre la richiesta d’avere due sottoinsiemi irriducibili, fatto poi non cosı̀ sorprendente vista la grandezza della rete. La velocità di convergenza del Power Method diventa quindi λ2 /λ1 = α da cui la formula per l’errore è data da (dimostrata in [15]): kπk − πk1 ≤ αk kπ0 − πk1 . Il tutto è perciò condizionato dal solo α. Va da sé che la sua scelta è estremamente delicata: più il suo valore è vicino a zero più alta è la velocità di 4 stati : cioè due classi di equivalenza rispetto alla relazione comunicano. 20 Maurizio Cescon 3.4. UN PO’ DI ANALISI DEL PAGERANK convergenza; ma più è basso, più alta è la distorsione del Web, dato che la matrice A dipende meno da P. Inoltre per α ≈ 1 subentrano anche problemi con la sensibilità. Nella direzione di questo ultimo aspetto, c’è anche l’articolo [12]. Esso tratta della stabilità-sensibilità dell’algoritmo proponendo il seguente teorema: Teorema 9. Sia P una matrice stocastica N × N i cui elementi diagonali sono nulli (pii = 0 ∀i) e sia α un numero reale tale che: 0 ≤ α < 1. Sia E = ev T la matrice N × N di rango unitario, dove e è il vettore con tutte le componenti uguali a 1 e v è un vettore che rappresenta una distribuzione di T probabilità. Allora definita A = αP + (1 − α)E , il problema Ax = x ha numero di condizionamento pari a (1 + α)/(1 − α). Dimostrazione. Vedi [12]. Per capire il risultato basta pensare di perturbare leggermente la matrice A, il che potrebbe rappresentare un cambiamento dei link nel web (aggiunta o rimozione di collegamenti) o una modifica di α. Siano dunque Ā = A + B (con B matrice dell’errore), x e x̄ vettori delle distribuzioni stazionarie corrispondenti rispettivamente ad A e Ā. Ricordando che per sistemi di equazioni lineari vale che: kx − x̄k1 ≤ kkBk, (con k numero di condizionamento del problema), l’articolo [12] approda alla seguente formula: 1+α kBk. kx − x̄k1 ≤ 1−α Parafrasando il risultato, abbiamo che per valori di α prossimi a 1, il PageRank non è stabile ed un piccolo cambiamento nella struttura di A potrebbe causare un grosso cambiamento nei valori di x. Nuovamente si giunge alla conclusione che la scelta di α deve essere ragionata affinché l’algoritmo sia stabile. Un altro aspetto degno di nota del PageRank è quello dell’aggiornamento. Siccome il calcolo di π è oneroso, il team di Google effettua il suo aggiornamento ogni due settimane circa. Inoltre la quasi inutilità delle precedenti computazioni5 (cioè il precedente ranking non è utile come punto di partenza per una nuova computazione), ne impone ogni volta una più o meno da zero. Anche se esistono tecniche capaci di usare il vecchio ranking e i cambiamenti 5 inutilità delle precedenti computazioni : si fa riferimento agli algoritmi standard per aggiornare catene di Markov. 21 Maurizio Cescon CAPITOLO 3. L’ALGORITMO DEL PAGERANK strutturali per aggiornare π (senza eseguire una nuova computazione), questi metodi funzionano se gli aggiornamenti sono i link, non i nodi. L’aggiunta di nodi allarga π complicando il problema. Ad oggi questo ambito è ancora in pieno sviluppo. Le tecniche di aggregazione o l’accelerazione adattiva del Power Method sono i risultati più promettenti. 22 Appendice A Algoritmo di Kosaraju Grazie alla proposizione 1, una catena di Markov descritta da una matrice P è irriducibile se e solo se per ogni coppia di stati esiste un cammino di lunghezza finita che li congiunge. Questo è equivalente a richiedere che il grafo relativo alla catena abbia un’unica componente fortemente connessa. Pertanto un algoritmo capace di risolvere efficientemente il problema di determinare le componenti fortemente connesse di un grafo, è un algoritmo capace di asserire l’irriducibilità di P. In letteratura ci sono almeno tre algoritmi notevoli per questo problema: l’algoritmo di Kosaraju, quello di Tarjan e quello di Gabow. Le differenze sono per lo più di natura computazionale. Kosaraju propose per primo il suo algoritmo che usa pesantemente il teorema seguente. Teorema 10. Le componenti fortemente connesse di un grafo G sono le stesse del grafo G0 ottenuto invertendo1 la direzione di tutti gli archi di G. Lo pseudo codice dell’algoritmo è il seguente. Sia G il grafo diretto e U uno stack vuoto. While(U non contiene tutti i nodi){ Scegli un nodo arbitrario v non in U. Esegui una depth-first search partendo da v. Ogni volta che la depth-first search finisce in un nodo w non espandibile, inserisci w in U.} Rovescia le direzioni di tutti gli archi di G. While(U è non vuoto){ Togli il primo nodo v da U. Esegui una depth-first search partendo da v. L’insieme dei nodi visitati darà la componente 1 invertendo: essenzialmente considerando la trasposta della matrice descrivente il grafo. 23 Maurizio Cescon APPENDICE A. ALGORITMO DI KOSARAJU fortemente connessa a cui appartiene v. Memorizzala e rimuovi tutti i nodi della componente da U.} Rimandiamo ad esempio a [7] per la correttezza dell’algoritmo, per esempi chiarificatori e per considerazioni sulla complessità pari a O(N + M ), con N numero di nodi e M numero di archi di G. 24 Appendice B Algoritmo per la periodicità L’algoritmo per determinare la periodicità di una catena, prevede di considerarne una irriducibile. Sotto questa ipotesi, vale il teorema seguente. Teorema 11. Una catena di Markov irriducibile con grafo G = (V, E) ha periodo d ≥ 1 se e solo se l’insieme dei nodi V può essere partizionato in d classi C0 , C1 , . . . , Cd−1 tali che: se i ∈ Ck e (i, j) ∈ E allora j ∈ C(k+1) mod d e d è il più grande intero con questa proprietà. Quindi il periodo di una catena determina una partizione dei nodi in d classi attraverso le quali la catena transita in ordine fisso e ciclico. Inoltre valgono due fatti importanti: • il periodo d divide la lunghezza di ciascun ciclo nel grafo; • il periodo d divide la differenza tra le lunghezze di due diversi cammini tra una medesima coppia di nodi. L’algoritmo per risolvere il problema della periodicità, prevede la costruzione di un albero di supporto T per G partendo da un generico nodo v ed eseguendo una breadth-first search (il grafo è fortemente connesso). Ad ogni nodo viene poi assegnata una etichetta in accordo con: level(v) = 0, ∀e = (i, j) ∈ T level(j) = level(i) + 1. In base a ciò, si può definire un valore per ogni arco e = (i, j) ∈ E come val(e) = level(i) − level(j) + 1 e quanto detto sopra impone a d di dividere quest’ultimo valore ∀e ∈ E. Quindi d deve dividere il massimo comun divisore dei {val(e) > 0 : e ∈ / T }. La dimostrazione della correttezza dell’algoritmo (che si può trovare in [9] oppure in [4]) stabilisce l’uguaglianza tra questi ultimi valori. Lo pseudo codice dell’algoritmo consiste in: Sia G=(V,E) il grafo della catena, v un nodo generico di V. 25 Maurizio CesconAPPENDICE B. ALGORITMO PER LA PERIODICITÀ Costruisci un albero di supporto T per G eseguendo una breadth-first search partendo da v. Etichettta ciascun nodo in accordo con: level(v)=0, per ogni e=(i,j) di T level(j)=level(i)+1. d=MassimoComunDivisore {val(e)>0: con e non in T}. Sempre in [9] oppure in [4], si può trovare la dimostrazione della complessità di questo algoritmo pari a O(N + M ), con N numero di nodi e M numero di archi di G. 26 Bibliografia [1] A. N. Shiryaev, Probability. Springer, (1996). [2] Wai-Ki Ching, Michaele K. Ng, Markov Chains, Model Algorithms and Applications. Springer, (2006). [3] R. Horn, C. R. Johson, Matrix Analysis. Cambridge University Press, (1990). [4] E. Denardo, Periods of Connected Networks and Powers of Nonnegative Matrices. Math. Oper. Res. (1977). [5] Perron-Frobenius’ theorem, Wikipedia. http://en.wikipedia.org/ wiki/Oskar_Perron. [6] Power Method, Wikipedia. http://en.wikipedia.org/wiki/Power_ method. [7] Kosaraju’s algorithm, Wikipedia. http://en.wikipedia.org/wiki/ Kosaraju_algorithm. [8] H. Schneider, Wielandt’s proof of the Exponent Inequality for Primitive Nonnegative Matrices. www.math.tu-berlin.de/~schneidh/ wielproof2.pdf. [9] J. Jarvis, D. Shier, Graph-Theoretic of Finite Markov Chains. http: //www.ces.clemson.edu/~shierd/Shier/markov.pdf. [10] L. Page, S. Brin, The Anatomy of a large-scale Hypertextual Web Search Engine. http://ilpubs.stanford.edu:8090/361/1/1998-8.pdf [11] S. D. Kamvar, T. H. Haveliwala, The second Eingenvalue of the Google Matrix. http://kamvar.org/assets/papers/secondeigenvalue.pdf. [12] S. D. Kamvar, T. H. Haveliwala, The Condition Number of the PageRank Problem. http://kamvar.org/assets/papers/condition.pdf. 27 Maurizio Cescon BIBLIOGRAFIA [13] I. Ipsen, Analysis and Computation of Google’s Pagerank. http://www4. ncsu.edu/~ipsen/ps/slides_pisa.pdf [14] A. Langville, C. Meyer, for Web Information. surveyEVwebIRReprint.pdf A Survey of Eingvector Methods http://www.cofc.edu/~langvillea/ [15] Bianchini, Gori, Scarselli, PageRank and Web Communities. nautilus.dii.unisi.it/pubblicazioni/files/journal/googleACMTran.ps.gz. 28