Ranking di pagine Web Debora Donato. Pagina 2 Ranking delle pagine Raccolta delle pagine html; Costruzione del webgraph; Transformazione dei dati in un.

Slides:



Advertisements
Presentazioni simili
Training On Line - CONP. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Pluriennali > Nuova Richiesta Si accede alla pagina di Richiesta.
Advertisements

Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Caduta non guidata di un corpo rettangolare in un serbatoio Velocità e rotazione.
Strutture dati per insiemi disgiunti
Seminario Swarm Seminario su Swarm Pietro Terna web.econ.unito.it/terna.
TAV.1 Foto n.1 Foto n.2 SCALINATA DI ACCESSO ALL’EREMO DI SANTA CATERINA DEL SASSO DALLA CORTE DELLE CASCINE DEL QUIQUIO Foto n.3 Foto n.4.
1 Pregnana Milanese Assessorato alle Risorse Economiche Bilancio Preventivo P R O P O S T A.
File System Cos’è un File System File e Directory
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
1 Informatica Generale Susanna Pelagatti Ricevimento: Mercoledì ore presso Dipartimento di Informatica, Via Buonarroti,
Frontespizio Economia Monetaria Anno Accademico
Lez. 91 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Alberi di ricerca.
Training On Line – CONA. 2 Richiesta Da Menu: Conferimenti ad inizio anno termico > Agosto > Annuali > Nuova Richiesta Si accede alla pagina di Richiesta.
Alberi binari di ricerca
Breath-first search Visita in ampiezza di un grafo Algoritmo Esempio
Programmazione Procedurale in Linguaggio C++
Cammini minimi con sorgente singola
Implementazione dell algortimo di Viterbi attraverso la soluzione del problema di cammino mi- nimo tramite software specifico. Università degli studi di.
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl 1 Ordinamenti ottimi.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 5 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 2 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
File.
Algoritmo di Ford-Fulkerson
Programmazione 1 9CFU – TANTE ore
1 Il servizio di prestito e fornitura documenti ILL-SBN una visione di insieme caratteristiche della procedura illustrazione delle funzionalità
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Ufficio Studi UNIONCAMERE TOSCANA 1 Presentazione di Riccardo Perugi Ufficio Studi UNIONCAMERE TOSCANA Firenze, 19 dicembre 2000.
eliana minicozzi linguaggi1a.a lezione2
Corso di Informatica per Giurisprudenza
Ranking di pagine Web Ilaria Bordino, Yahoo! Research Barcelona
Esercitazione 2 Ranking di pagine Web Ilaria Bordino Ilaria Bordino e Debora Donato Corso di Ricerca dell'informazione nel Web - A.A. 2006/2007.
Seminario su clustering dei dati – Parte II
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Ranking di pagine Web Ilaria Bordino, Yahoo! Research Barcelona Ida Mele, Sapienza Universita di Roma.
Hadoop: introduzione (1)
Calcolo di PageRank: esercizio
CORSO DI RICERCA BIBLIOGRAFICA 4. giornata (20 marzo 2008) Web of Science Beilstein e Gmelin Crossfire.
Ranking di pagine Web Ilaria Bordino Ranking di pagine web.
Dipartimento di Ingegneria Idraulica e Ambientale - Universita di Pavia 1 Scritte scritte scritte scritte scritte scritte scritte Scritte scritte Titolo.
Laboratorio di Informatica
Analisi di Immagini e Dati Biologici
Portale Capacità STOGIT
2 3 4 RISERVATEZZA INTEGRITA DISPONIBILITA 5 6.
Melfi, 1 aprile 2011 – MediaShow 1 Social Network: possibilità di uso consapevole nella didattica Uso, consapevolezza, opportunità, proposte Caterina Policaro.
1 Negozi Nuove idee realizzate per. 2 Negozi 3 4.
Elementi di Informatica di base
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
Protocollo informatico: interoperabilità e PEC
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
Calcolo Parallelo e Distribuito
La versione 18 di Aleph500: le novità CATALOGAZIONE Rita Vanin Ottobre 2007.
21 marzo 2002 (ri-)Avvisi: Giovedi 28 marzo la lezione e sospesa. Nuovo indirizzo di Spedire messaggi e esercizi solo.
1 Ly-LAB Sistema di gestione dei dati analitici di laboratorio.
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
14 marzo 2002 Avvisi:.
Documentazione Tecnica
Bando di Residenza Cap Scheda ENTE 3ROL - Richieste On Line.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
Sviluppare un programma in C che, dato un array da 100 elementi interi caricato con numeri casuali compresi tra [10,100], sia in grado di cercare il valore.
Corso di ELETTROTECNICA
METODI DI RAPPRESENTAZIONE TECNICA
A.P. cat. B - 1 Per chi vuole: Libro di testo D.P. Curtis, K. Foley, K. Sen, C. Morin Informatica di base 2° edizione Mc Graw-Hill Companies.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
Transcript della presentazione:

Ranking di pagine Web Debora Donato

Pagina 2 Ranking delle pagine Raccolta delle pagine html; Costruzione del webgraph; Transformazione dei dati in un formato adeguato; Ranking delle pagine del webgraph: – Con Pagerank; – Con Hits.

Pagina 3 Libreria DIS Libreria software per l'analisi di grafi di grandi dimensioni. Tool sviluppato presso il Dipartimento di Informatica e Sistemistica dell' Universita La Sapienza. Disponibile gratuitamente in COSIN-Tools.htm Documentazione in: deliverableD13.pdf

Pagina 4 Libreria DIS 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

Pagina 5 Installazione della Libreria Implementata in C++ versione 2.9; Raccomandata almeno 256 MB di RAM; Installazione: – Scaricare e scompattare la libreria; – Type cd disRelease (cambia directory) – Type make (compila i sorgenti)

Pagina 6 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;

Pagina 7 Struttura della Libreria Generators: Measures: Search algorithms: Bow-tie discovering: File converters: Miscellaneous:

Pagina 8 Programmi da usare nell'esercitazione Della categoria file converters: – text2ips.script: transforma un file testo nella rappresentazione IPS; Della categoria graph measurers: – pagerank: esegue pagerank – hits: esegue hits

Pagina 9 Grafo in formato testo Grafo esempio Grafo in formato testo

Pagina 10 Grafo in formato testo – Per ogni grafo sono presenti 3 tipi di multifile:.info: contiene lindegree, loutdegree 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

Pagina 11 Grafo in formato IPS

Pagina 12 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 allutente ( multiFileWriter, multiFileReader)

Pagina 13 Implementazione di Page Rank – 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;

Pagina 14 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

Pagina 15 Multifile utilizzati – fileSorgente : contiene i valori di PR calcolati alla fine del passo precedente. Viene inizializzato allinizio 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.

Pagina 16 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);

Pagina 17 Partizionamento del grafo For 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.

Pagina 18 Inizializzazione di Page Rank – Inizializza il file destinatario con il valore di pagerank; 1/N bufferFloatPR [numNodiperOgniBlocco] For i from 1 to numNodiPerOgniBlocco bufferFloatPR[i] = 1 / N scrive bufferFloatPR nel destFile numOfBlocchi volte;

Pagina 19 Ciclo principale while (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; }

Pagina 20 Terminazione stop: lalgoritmo si ferma quando il numero di iterazioni e > che maxIter o il residuo e < residual

Pagina 21 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 allinterno del fileTemporaneo per sommaPR. – Il risultato viene memorizzato in fileDestinatario

Pagina 22 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)

Pagina 23 Text2IPSscript – 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

Pagina 24 Text2IPSscript – Uso: text2ips.script –savesource ram: memoria disponibile in MB -savesource: non cancella il file originale %d: DA SPECIFICARE ogni volta che vogliamo un multifile.

Pagina 25 Text2IPSscript – Creare una directory graphs/ nella directory che contiene dis_library; – Mettere alinterno della cartella appena creata larchivio graph-testo-name (es. edgeit) – Posizionarsi in dis_library – Creare il grafo IPS: – bin/text2ips.script 300 -savesource graphs/edgeit edgeit.%d

Pagina 26 Calcolo di PageRank – INPUT: il grafo in formato IPS – OUTPUT: ranking delle pagine secondo lalgoritmo pagerank – Uso: pagerank columns > printFile

Pagina 27 Calcolo di PageRank 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;

Pagina 28 Calcolo di PageRank 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 lid del nodo; – I: colonna con lindegree del nodo; – O: colonna con loutdegree 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

Pagina 29 Esecuzione calcolo di PageRank – bin/pagerank 300 graphs/ graph-ips-name.%d outputFile.%d NIOP > print-file.txt – File generati: outputFile.pr_distrib.txt: distribuizione dei risultati di pagerank outputFile.report.txt: risultati di pagerank

Pagina 30 Visualizzazione dei risultati con Gnuplot – Per entrare nell' ambiente: gnuplot – gnuplot> set logscale – gnuplot> plot outputFile.pr_distrib.txt using 1:2 w p

Pagina 31 HITS – INPUT: grafo in formato IPS – OUTPUT: ranking delle pagine secondo lalgorithmo 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

Pagina 32 Esecuzione di HITS – bin/hits – Insert graph name: graphs/graphIPSName.%d – Insert maxResidual: – Insert maxIteration: 50

Pagina 33 Utilizzo delle librerie Webgraph e LAW per il calcolo di PageRank – Webgraph: framework per lo studio del grafo del Web. Supporta la gestione di grafi di grandi dimensioni attraverso l'utilizzo di moderne tecniche di compressione. – Tool sviluppato presso il Laboratory of Web Algorithmics dell'Universita' di Milano – Disponibile gratuitamente: –

Pagina 34 Utilizzo delle librerie Webgraph e LAW per il calcolo di PageRank – LAW: collezione software distribuita dal laboratory of Web Algorithmics. – Contiene il piu' grande insieme di classi e documentazione relativi a PageRank reso disponibile pubblicamente. –

Pagina 35 Impostazione del classpath – Scaricare e scompattare gli archivi seguenti: – – – Aggiungere al classpath tutti i file jar contenuti negli archivi suddetti.

Pagina 36 Impostazione del classpath – export DIR=(directory in cui sono stati scaricati gli archivi) – export CLASSPATH=$CLASSPATH:.:$DIR/colt-hep jar:$DIR/colt jar:$DIR/dsiutils-1.0.jar:$DIR/fastutil jar:$DIR/gnu.getopt jar:$DIR/jakarta-commons-codec-1.3.jar:$DIR/jakarta-commons- httpclient jar:$DIR/jakarta-commons-io jar:$DIR/jakarta-commons- lang-2.3.jar:$DIR/jakarta-commons-logging-1.1.jar:$DIR/jakarta-commons- collections-3.2.jar:$DIR/jakarta-commons-configuration- 1.2.jar:$DIR/classpathx-jaf-1.0.jar:$DIR/jal jar:$DIR/jetty5/jetty jar:$DIR/jetty5/jetty5-jmx jar:$DIR/jetty5/jetty5-servlet jar:$DIR/jsap-2.0.jar:$DIR/log4j jar:$DIR/mg4j- 2.1.jar:$DIR/sux4j-0.2.jar:$DIR/velocity-1.4.jar:$DIR/webgraph- 2.1.jar:$DIR/law-1.3.1/law jar

Pagina 37 Conversione del grafo in formato Webgraph – Passo 1: conversione nel formato testuale supportato dal framework. – Il grafo e' memorizzato in un file chiamato basename.graph-txt. La prima linea contiene il numero di nodi, n. Quindi, il file contiene n linee: la linea i-esima contiene i successori del nodo i in ordine crescente (la numerazione dei nodi va da 0 a n1). I successori sono separati tra di loro da uno spazio. – java Text2ASCII graph-name crea un file graph-name.graph-txt contenente il grafo in formato ASCIIGraph – more graph-name.graph-txt

Pagina 38 Conversione del grafo in formato Webgraph – Passo 2: conversione dal formato testuale al formato BV. – java it.unimi.dsi.webgraph.BVGraph -g ASCIIGraph graph-name graph-name – Produce un grafo compresso in formato BVGraph, con basename graph-name. – Il grafo risultante viene memorizzato in tre file: – graph-name.graph – graph-name.offsets – graph-name.properties

Pagina 39 Utilizzo della libreria LAW per il calcolo di PageRank – Il package it.unimi.dsi.law.rank contiene una vasta collezione di classi dedicate al calcolo di PageRank. – PageRank: classe astratta base. Definisce metodi e attributi per il supporto delle computazioni di PageRank o simili. – PageRank.IterationNumberStoppingCriterion: criterio di terminazione: si ferma quando il numero di iterazioni raggiunge un dato limite. – PageRankJacobi: calcola PageRank usando il metodo di Jacobi. – PageRankPowerMethod: calcola PageRank usando il metodo delle potenze. –....

Pagina 40 Utilizzo della libreria LAW per il calcolo di PageRank – Il package it.unimi.dsi.law.rank contiene una vasta collezione di classi dedicate al calcolo di PageRank. – PageRank: classe astratta base. Definisce metodi e attributi per il supporto delle computazioni di PageRank o simili. – PageRank.IterationNumberStoppingCriterion: criterio di terminazione: si ferma quando il numero di iterazioni raggiunge un dato limite. – PageRankJacobi: calcola PageRank usando il metodo di Jacobi. – PageRankPowerMethod: calcola PageRank usando il metodo delle potenze. – Input: grafo in formato BVGraph

Pagina 41 Calcolo di PageRank: esempio – java it.unimi.dsi.law.rank.PageRankPowerMethod graph-name graph-name – Calcola sul grafo di nome graph-name il PageRank score di tutti i nodi. – Output: graph-name.properties, graph-name.ranks (file binario contenente i punteggi calcolati per ogni nodo) – Lettura degli score calcolati per i nodi del grafo: – java PrintRanks graph-name.ranks – Stampa lo score calcolato per tutti i nodi. La riga i-esima contiene lo score del nodo i-esimo.

Pagina 42 Calcolo di PageRank: esercizio – Applicare gli altri metodi supportati per il calcolo di PageRank. – java it.unimi.dsi.law.rank.PageRankGaussSeidel graph-name graph-name – java PrintRanks graph-name – java it.unimi.dsi.law.rank.PageRankJacobi graph-name graph-name – java PrintRanks graph-name