32
Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Ilaria Bordino Ilaria Bordino e Debora Donato Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Embed Size (px)

Citation preview

Page 1: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Esercitazione 2 Ranking di pagine Web

Ilaria BordinoIlaria Bordino e Debora DonatoIlaria BordinoIlaria Bordino e Debora DonatoIlaria BordinoIlaria Bordino e Debora Donato

Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Page 2: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

• Raccolta delle pagine html;

• Costruzione del webgraph;

• Transformazione dei dati in un formato adeguato;

• Ranking delle pagine del webgraph:– Con Pagerank;– Con Hits.

Passi per il ranking delle pagine

Page 3: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Libreria Software per l'analisi di grafi di grandi dimensioni

• È un tool sviluppato presso il Dipartimento di Informatica e Sistemistica dell' Universita’ La Sapienza.

• Disponibile gratuitamente in http://www.dis.uniroma1.it/~cosin/html_pages/COSIN-Tools.htm

• Documentazione in: http://www.dis.uniroma1.it/~cosin/publications/deliverableD13.pdf

Page 4: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Libreria

• Obiettivo: offre una serie di routines in grado di:– Generare grafi in base alla maggior parte dei modelli

presenti in letteratura

– Calcolare alcune delle misure statistiche proprie del grafo del Web

• Distribuzione indegree outdegree

• Pagerank, hits

• SCCs, Clique

• Bowtie

Page 5: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Installazione della Libreria

• Implementata in C++ versione 2.9;

• Raccomandata almeno 256 MB di RAM;

• Installazione:

– Download e unzip la libreria;

– Type “cd dis_library” (cambia directory)

– Type “make” (compila i source)

Page 6: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Struttura della Libreria

• Per ogni programma viene creata una cartella. Ogni cartella contiene il codice (*.h, *.cpp, *.cc).

• Makefile: compila e crea gli eseguibili dei programma;

• Common: contiene le routine comuni ai diversi algoritmi (memoria secondaria, rappresentazione binaria, etc);

• bin: contiene gli eseguibili creati durante la esecuzione di Makefile;

Page 7: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Struttura della Libreria

• Generators:

• Measures:

• Search algorithms:

• Bow-tie discovering:

• File converters:

• Miscellaneous:

Page 8: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Programmi che saranno usati per l’ esercitazione di oggi

• Della categoria “file converters”:– text2ips.script: transforma un file testo nella

rappresentazione IPS;

• Della categoria “graph measurers”:– pagerank: esegue pagerank– hits: esegue hits

Page 9: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Grafo in Formato Testo

Grafo esempio Formato testo

Page 10: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Il Formato IPS

• Per ogni grafo sono presenti 3 tipi di multifile:– .info: contiene l’indegree, l’outdegree il

puntatore alla lista dei successori (memorizzata in .succ), il puntatore alla lista dei predecessori (memorizzata in .pred)

– .succ: lista dei successori– .pred: lista dei predecessori

Page 11: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Grafo in Formato IPS

Page 12: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Multifile

• I file .ips devono essere in grado di contenere le informazioni relative a milioni di nodi e miliardi di archi.

• Limite: filesystem

• Soluzione: ogni file viene spezzato in piu’ file la cui gestione e’ completamente trasparente all’utente (multiFileWriter, multiFileReader)

Page 13: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Implementazione di PageRank

• Il calcolo di pagerank e’ fatto in blocchi:– I blocchi hanno misura fissa che dipende dal numero di

float allocabili in memoria principale;• numMB = memoria / (1024*1024);• numFloat = numMB/sizeof(float);• Nblocchi = numNodi/numFloat• NnodiPerBlocco = numNodi/Nblocchi

– Ogni blocco e’ caricato in memoria. Il page rank del blocco viene calcolato ed il risultato viene scritto su file;

Page 14: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Inizializzazione

• Verifica la correttezza dei parametri

• Partiziona il file dei successori in blocchi.

• Inizializza tutti nodi a 1/N

• Esegue il ciclo principale

• Normalizza e calcola residual

• Stampa i file dei risultati

Page 15: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Multifile utilizzati

• fileSorgente: contiene i valori di PR calcolati alla fine del passo precedente. Viene inizializzato all’inizio di ogni ciclo con i valori di fileDestinatario

• fileTemporaneo: contiene i valori di PR alla fine del ciclo principale, prima del passo di normalizzazione.

• fileDestinatario: contiene i valori di PR dopo il passo di normalizzazione.

Page 16: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Partizionamento del grafo

• I file Grafo.succ e’ partizionato in Nblocchi file di misura prefissata;

• Funzione partizionaFileSuccessori()

– Calcola: numSucc, numInfo, numNodi e numNodiPerOgniBlocco;

– esegue partizione (pseudocode nella prossima slide);

Page 17: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Partizionamento del GrafoFor each structInfo

i = readInfo() /* fInfo.read() */For each successor node of i

s = readSuccess() /* fSucc.read() */insert(s,buffer) /* buffer = fTempo*/

if block_is_full writeToDisk();

}writeToDisk()

}• writeToDisk(): scrive sul file relativo al blocco corrente l’

ID del nodo, il numero totale di successori del nodo e la lista dei successori.

Page 18: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Inizializzazione del PageRank

• Inizializza il file destinatario con il valore di pagerank;

– bufferFloatPR [numNodiperOgniBlocco]

– For i from 1 to numNodiPerOgniBlocco bufferFloatPR[i] =

– scrive bufferFloatPR nel destFile numOfBlocchi volte;

N

1

N

1

Page 19: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Ciclo Principalewhile (stop==false){

for each blocco b from 1 to Nblocchi{

pr = 0; //azzera il buffer

for each node i del blocco b

prende pr(i);

identifica tutti i successori di I;

for each succ j from 1 to numsucc pr(j) += pr(i)/numsucc;

for each succ j from 1 to numsucc

pr(j)= c*pr(j)+ (1-c)*(1/N);

}

scrive su fileDestPR;

}

}1*

1*)1(*'*

NNcRankcMRankM

Page 20: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Terminazione

stop: l’algoritmo si ferma quando il numero di iterazioni e’ > che maxIter o il residuo e’ < residual

Page 21: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Passo di Normalizzazione

• Si prende la somma di tutti i valori di PR alla fine del ciclo principale: sommaPR

• Si dividono tutti I valori di PR memorizzati all’interno del fileTemporaneo per sommaPR.

• Il risultato viene memorizzato in fileDestinatario

Page 22: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Calcolo del residuo

• Il residuo e’ la radice quadrata della sommatoria dei quadrati delle differenze dei valori di PR calcolati in due iterazioni successive.– residual = 0;– residual += (fileSorgente-fileDestinatario)2

– residual= sqrt(residual)

Page 23: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Text2IPS.script

• INPUT: il nome del file contenente il grafo (ASCII)

• OUTPUT: i file testo in multifile format

– NameMultifile.%d.info

– NameMultifile.%d.pred

– NameMultifile.%d.succ

Page 24: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Text2IPS.script

• Uso: text2ips.script <ram> –savesource <InputFile> <NameMultifile.%d>

– ram: memoria disponibile in MB

– -savesource: non cancella il file originale

– %d: DA SPECIFICARE ogni volta che vogliamo un multifile.

Page 25: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Text2IPS.script• Creare una directory graphs/graph-

name/ nella directory che contiene dis_library;

• Mettere al’interno della cartella appena creata l’archivio graph-testo-name

• Posizionarsi in dis_library

• Creare il grafo IPS: bin/text2ips.script 300 –savesource graphs/graph-name/graph-testo-name graph-ips-name.%d

Page 26: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Uso di Page Rank

• INPUT: il grafo in formato IPS

• OUTPUT: ranking delle pagine secondo l’algoritmo pagerank

• Uso: pagerank <ram> <InputFile.%d> <prob> <residual> <maxIter> <outputFile.%d> columns > printFile

Page 27: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Uso Page Rank

– InputFile: base-name del file in formato IPS

– prob: probabilita’ di scegliere una pagina vicina (e non saltare a un' altra pagina)

– residual: pagerank si ferma se il residuo e’ piu piccolo di residual

– maxIter: numero massimo di iterazioni eseguite per pagerank;

Page 28: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Uso Page Rank– outputFile%d: nome del multifile di output in cui

vengono memorizzati i risultati del calcolo di PageRank

– columns: stampa vari tipi di informazione:

• N: colonna con l’id del nodo;

• I: colonna con l’indegree del nodo;

• O: colonna con l’outdegree del nodo;

• P: colonna con il rank del nodo;

– printFile: contiene l'output generato durante l'esecuzione della routine, ad es. Risultati parziali delle singole iterazioni

Page 29: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Eseguire Page Rank• bin/pagerank 300

graphs/graph-name/graph-ips-name.%d 0.85 0.001 50 outputFile.%d NIOP > print-file.txt

• File generati:

– outputFile.pr_distrib.txt: distribuizione dei risultati di pagerank

– outputFile.report.txt: risultati di pagerank

Page 30: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Visualizzazione dei risultati

• Per entrare nell' ambiente: gnuplot

• gnuplot> set logscale

• gnuplot> plot “outputFile.pr_distrib.txt” using 1:2 w p

Page 31: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Uso di HITS• INPUT: grafo in formato IPS

• OUTPUT: ranking delle pagine secondo l’algorithmo hits

• Uso: bin/hits

• Nota: questa routine e` fornita solo in versione interattiva. I parametri devono essere forniti da std input.

– InputFile: GraphName.%d

– maxResidual: hits si ferma se il residuo e’ piu piccolo di maxResidual

– maxIter: numero massimo di iterazioni

Page 32: Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007

Eseguire Hits

• bin/hits

• Insert graph name : graphs/graph-name/graphIPSName.%d

• Insert maxResidual : 0.001

• Insert maxIteration : 50