Christiane Rousseau.
Fin dall’inizio, Google è diventato il motore di ricerca. Ciò deriva dalla supremazia del suo algoritmo di ranking: l’algoritmo PageRank. Infatti, con l’enorme quantità di pagine sul World-Wide-Web, molti ricercatori si ritrovano con migliaia o milioni di risultati. Se essi non sono propriamente ordinati, la ricerca può risultare di poco aiuto, dal momento che nessuno riesce ad esplorare milioni di voci.
Come funziona l’algoritmo PageRank?
Lo spiegheremo, ma prima facciamo una ricerca su Google. Il 4 giugno 2010, si ottenevano di risultati per Klein project, nonostante il progetto fosse solamente all’inizio. In quella precisa data, la prima voce era
http://www.mathunion.org/icmi/other-activities/klein-project/introduction/
invece di
http://www.kleinproject.org/
Il primo indirizzo è l’url di una pagina che si trova sul sito dell’International Mathematical Union: http://www.mathunion.org. Poiché l’International Mathematical Union è un ente importante, il suo sito uciale è il primo disponibile quando si cerca International Mathematical Union. Inoltre, esso trasmette parte della sua importanza a tutte le sue pagine, una delle quali è
Entro pochi mesi o anni a partire da oggi, ci aspettiamo che la pagina
appaia per prima in una ricerca per Klein project.
Per spiegare l’algoritmo, consideriamo un grafo orientato come modello del web. I vertici sono le pagine e i lati orientati sono i link tra le pagine. Come abbiamo appena spiegato, ogni pagina corrisponde a un diverso indirizzo url. Quindi, un sito può contenere molte pagine. Il modello non fa dierenza tra le singole pagine di un sito e la sua home page. Tuttavia, più probabilmente, l’algoritmo classicherà con grado maggiore la prima pagina di un sito importante.
Un semplice esempio
Consideriamo il semplice web qui a sinistra con cinque pagine chiamate , , , ed . Questo web ha pochi link. Se siamo sulla pagina , allora esiste solo un link alla pagina , mentre, se siamo sulla pagina , troviamo tre link e possiamo scegliere se spostarci sulla pagina , oppure . Si osservi che esiste almeno un link a partire da ogni pagina.
Facciamo un gioco che risulta semplicemente un cammino casuale sul grafo orientato. Partendo da una pagina, ad ogni passo scegliamo a caso un link e seguiamolo. Per esempio, nel nostro caso, se partiamo sulla pagina , possiamo andare in o in con probabilità per ogni caso mentre, se partiamo da dobbiamo andare necessariamente in con probabilità . Iteriamo il gioco.
Per automatizzare il processo, compattiamo il web nella seguente matrice , dove ogni colonna rappresenta la pagina di partenza ed ogni riga la pagina di arrivo.
Osserviamo che la somma degli elementi di ogni colonna di è uguale a e che tutti gli elementi sono maggiori o uguali a zero. Le matrici che presentano queste due proprietà sono molto speciali: ognuna di esse è matrice di una catena di Markov, anche detta matrice di transizione markoviana. Essa ha sempre come autovalore ed esiste un autovettore di autovalore le cui componenti sono tutte minori o uguali a e maggiori o uguali a , con somma . Tuttavia, prima di richiamare le definizioni di autovalore e autovettore, esploriamo i vantaggi della rappresentazione matriciale del grafo, modello del web.
Consideriamo una variabile casuale che assuma valori nell’insieme delle pagine , che contiene pagine (qui ). rappresenta la pagina in cui ci troviamo dopo passi del cammino casuale. Quindi, se chiamiamo l’elemento sull’-esima riga e sulla -esima colonna della matrice , allora è la probabilità condizionata di trovarsi sull’-esima pagina al passo , dato che si era sulla -esima pagina al passo :
Si noti che questa probabilità è indipendente da ! Si dice che una catena di Markov non ha memoria del passato. Non è dicile immaginare che le probabilità che si ottengono dopo due passi possano essere contenute nella matrice .
Dimostriamolo (il lettore può saltare la dimostrazione se preferisce). Il teorema delle probabilità totali aerma che
Per definizione di probabilità condizionata
Usiamo un trucco familiare: moltiplicare e dividere per una stessa quantità
Il primo quoziente è uguale a
in quanto in una catena di Markov non vi è memoria di ciò che è avvenuto prima del passo immediatamente precedente. Perciò,
Nel nostro esempio,
Iterando quest’idea, è chiaro che l’elemento della matrice descrive la probabilità . Per esempio,
Tutte le colonne di sono identiche se scegliamo una precisione di cifre decimali e lo stesso vale per le colonne di quando . Se scegliamo una precisione più alta, troviamo comunque una stabilizzazione, ma per più grande di . Perciò, dopo passi, con sucientemente grande, la probabilità di essere su una determinata pagina non dipende da quella in cui siamo partiti!
Inoltre, consideriamo il vettore
( è un vettore colonna e il suo trasposto è un vettore riga). É semplice vericare che . Se consideriamo la -esima coordinata del vettore come la probabilità di essere sulla pagina -esima in un dato istante e, quindi, come la distribuzione di probabilità delle pagine al tempo , allora esso è anche la distribuzione di probabilità al tempo . Per questa ragione, il vettore è detto distribuzione stazionaria. Tale distribuzione stazionaria permette di ordinare le pagine. Nel nostro esempio, ordiamo le pagine come , , , , e dichiariamo la pagina più importante.
Il caso generale
Il caso generale può essere trattato esattamente come il nostro esempio. Rappresentiamo il web come un grafo orientato in cui gli vertici rappresentano le pagine del web e il lati orientati rappresentano i link tra le pagine. Compattiamo il grafo in una matrice , , in cui la -esima colonna rappresenta la -esima pagina di partenza e l’-esima riga, la -esima pagina di arrivo. Nel nostro esempio, noi abbiamo trovato un vettore soddisfacente la condizione . Tale vettore è un autovettore di autovalore . Richiamiamo la definizione di autovalore e autovettore.
Definizione. Sia una matrice . Un numero è un autovalore di se esiste un vettore non nullo tale che . Ogni vettore di questo tipo è detto autovettore di .
Richiamiamo anche il metodo per trovare autovalori e autovettori.
Proposizione Sia una matrice . Gli autovalori di sono le radici del polinomio caratteristico , dove è la matrice identità . Gli autovettori di un autovalore sono le soluzioni non nulle del sistema lineare omogeneo .
Il seguente teorema di Frobenius garantisce che per la matrice associata ad un grafo che modellizza il web si può sempre trovare una soluzione stazionaria.
Teorema (Teorema di Frobenius) Consideriamo una matrice , , matrice di transizione di un processo di Markov (nello specico, per ogni , e la somma degli elementi su ogni colonna è uguale a , ossia ). Allora
- è un autovalore di .
- Ogni autovalore di soddisfa .
- Esiste un autovettore di autovalore , le cui componenti sono tutte maggiori o uguali a zero. Senza perdere di generalità possiamo supporre che la somma delle componenti di sia .
É giunto il momento di constatare la potenza di questo teorema. A tale scopo, aggiungeremo per semplicità l’ipotesi che la matrice abbia una base di autovettori e supponiamo che sia il vettore del teorema di Frobenius. Per ogni esiste tale che . Consideriamo un qualsiasi vettore non nullo tale che , dove e . Decomponiamo nella base: :
Una dimostrazione tecnica, che qui saltiamo, permette di provare che . Ora, calcoliamo :
dato che è un autovettore di autovalore . E se iteriamo, otteniamo
Se tutti i per vericano allora
Questo è esattamente quanto è avvenuto nel nostro esempio!
Si osservi comunque che il teorema non garantisce che ogni matrice , soddisfacente le ipotesi del teorema, abbia questa proprietà. Descriviamo le possibili patologie e i rimedi.
Possibili patologie
- L’autovalore può essere una radice multipla del polinomio caratteristico .
- La matrice può avere autovalori diversi da , con modulo uguale a .
Cosa facciamo in questi casi?
Una matrice di transizione di un processo di Markov che non presenta patologie si dice matrice di transizione markoviana regolare, ovvero
Definizione. Una matrice di transizione markoviana è regolare se
- L’autovalore è una radice semplice del polinomio caratteristico .
- Tutti gli autovalori di diversi da hanno modulo minore di .
Si osservi che la maggior parte delle matrici sono regolari. Quindi, se la matrice di transizione markoviana associata ad un web non è regolare, allora la strategia è quella di deformarla leggermente in una matrice regolare.
Rimedio. Consideriamo la matrice , con per ogni . Sostituiamo la matrice associata al web con la matrice
(1)
per valori piccoli di . (Google ha usato il valore ). Si noti che la matrice ha ancora elementi non negativi e che la somma degli elementi di ogni colonna è ancora uguale a , quindi essa è ancora una matrice di transizione markoviana. Il seguente teorema garantisce l’esistenza di un piccolo valore di per cui si pone rimedio alla patologia.
Teorema Data una qualsiasi matrice di transizione markoviana , esiste sempre un positivo, piccolo a piacere, tale che la matrice sia regolare. Sia l’autovettore di per la matrice , normalizzato in modo che la somma delle sue componenti sia . Per la matrice , dato un qualsiasi vettore , tale che con e , allora
(2)
Collegamento con il teorema del punto fisso di Banach
Una delle vignette successive tratta del teorema del punto fisso di Banach. Il teorema sopra può essere visto come una sua particolare applicazione. Il lettore può saltare questa sezione se non ha ancora letto l’altra vignette. Infatti,
Teorema Sia una matrice di transizione markoviana regolare. Consideriamo , con una distanza tra i punti adeguata (tale distanza dipende da ). Su , consideriamo l’operatore lineare definito da . L’operatore è una contrazione su , ossia esiste tale che per ogni ,
Allora, esiste un unico vettore tale che .
Inoltre, dato un qualsiasi , possiamo definire per induzione la successione dove . Allora .
Definizione di distanza. La definizione di distanza è sottile e può essere saltata. La includiamo per morivi di completezza per il lettore che vuole inoltrarsi nei dettagli. Ci limitiamo al caso in cui la matrice è diagonalizzabile. Sia una base di autovettori. I vettori possono essere scritti nella base :
dove . Allora definiamo
Dotato di questa distanza, risulta uno spazio metrico completo, ossia ogni successione di Cauchy è convergente.
Tale teorema non solo garantisce l’esistenza di , ma fornisce anche un metodo per costruirlo, come limite di una successione . Abbiamo visto una dimostrazione di questa convergenza nel nostro esempio. Infatti, la -esima colonna di è il vettore , dove è il -esimo vettore della base canonica. Naturalmente, nel nostro esempio, avremmo anche potuto trovare direttamente il vettore risolvendo il sistema con matrice
Avremmo trovato che tutte le soluzioni sono della forma per . La soluzione la cui somma delle componenti è è quindi , dove
Calcolo pratico di una distribuzione stazionaria
Abbiamo individuato la semplice idea che sta alla base dell’algoritmo. Comunque, trovare la distribuzione stazionaria , ossia un autovettore di autovalore per la matrice in (1), in (1), non è un compito banale quando la matrice ha miliardi di righe e colonne: sia il tempo computazionale, sia lo spazio in memoria per ottenerla rappresentano una vera e propria sda. L’usuale metodo di eliminazione di Gauss risulta inutile in questo caso, sia a causa della dimensione del calcolo, sia perché richiede di dividere per piccoli coe cienti. Un algoritmo più ecace fa uso della proprietà (2) (si veda [2]). Questo fatto ci ricollega alla successiva vignette sul teorema del punto fisso di Banach che metterà in luce come la dimostrazione del teorema del punto fisso di Banach fornisca un algoritmo per costruire il punto fisso.
Infatti, iniziamo con tale che
e dobbiamo calcolare il . Solitamente, per un compreso
tra e dà una buona approssimazione di . Per induzione, calcoliamo . Anche questi calcoli risultano abbastanza lunghi. Infatti, per come è stata costruita, la matrice in (1) non ha elementi nulli. D’altro canto, la maggior parte degli elementi di è nulla. Quindi, dobbiamo decomporre il calcolo per approttare di questo fatto, ossia
A causa della forma speciale di , è semplice vericare che se è un vettore in cui la somma degli elementi è , allora . Perciò, è suciente calcolare la successione
Conclusioni
Abbiamo presentato la parte pubblica dell’algoritmo PageRank di Google. Il lettore può già cimentarsi con semplici web e trovare i trucchi per migliorare il ranking della propria pagina personale aggiungendo link interni ed esterni in modo ottimale. Alcune parti private e più sosticate continuano ad essere sviluppate. Alcune di esse consistono nel sostituire la matrice neutra in (1) con matrici che riettano i gusti di chi naviga in internet. Altre assicurano che il ranking non sia troppo sensibile alle manipolazioni di coloro che cercano di migliorare il ranking delle proprie pagine.
Come conclusione generale, cosa abbiamo osservato? Un’idea semplice e intelligente ha portato ad una grandissima svolta nell’ecienza dei motori di ricerca e alla nascita di un impero commerciale. Nonostante l’implementazione sia di per sé un’impresa computazionale, l’idea di base richiede conoscenze di matematica elementare, quali l’algebra lineare e la teoria delle probabilità. Questi strumenti relativamente standard, in particolare la diagonalizzazione delle matrici, hanno espresso pienamente il loro potere quando sono state usate al di fuori del loro usuale contesto. Non solo: abbiamo messo in evidenza le idee unicanti nella scienza, osservando che il teorema del punto fisso di Banach abbia applicazioni così lontane dalle sue origini.
Riferimenti bibliograci
[E] M. Eisermann, Comment Google classe les pages webb, http://images.math.cnrs.fr/Comment-Google-classe-les-pages.html, 2009.
[LM] A. N. Langville and C. D. Meyer, A Survey of Eigenvector Methods
for Web Information Retrieval, SIAM Review, Volume 47, Issue 1,
(2005), pp. 135–161.
[RS] C. Rousseau and Y. Saint-Aubin, Mathematics and
technology, SUMAT Series, Springer-Verlag, 2008 (A French version of the book exists, published in the same series.)
L’analisi del PageRank mediante catene di Markov è interessante per quanto, ormai, sia nel 2013 in un’ottica estremamente limitativa, visto che Google utilizza quasi certamente tecniche più avanzate di IR (rispetto al PageRank) per rilevare lo spam e le pagine non autenticamente pertinenti. Ciò finisce per rendere un po’ obsoleto – oltre che poco utile nella pratica – l’utilizzo di uno strumento matematico del genere.