Ricerca di informazione sul Web! Strumenti per la gestione e ricerca di informazione " Paradigmi basati su ontologie # Directories gerarchiche " Ricerche per similarità # What s related (Alexa/Netscape) " Basati sull interazione di una comunità di utenti: # Collaborative filtering, Yahoo answers # Mailing Lists, blogs, wikis " Basati sulla personalizzazione dei risultati # Recommenders systems " Motori di ricerca basati su keywords # Motori di ricerca generici (utilizzati dall 85% degli utenti) # Motori di ricerca focalizzati # Meta-search engines Parte 7 Ricerca di informazione sul Web e Motori di ricerca
Directories gerarchiche! Esempio: dmoz.org " Directory libera costruita da editor non pagati " Da dmoz.org: The Open Directory Project is the largest human-edited directory of the Web. It is constructed and maintained by a vast, global community of volunteer editors Macchine Motore Radice Moto Links Directories gerarchiche! Ogni nodo corrisponde ad un argomento! I nodi contengono i links ai documenti rilevanti per l argomento (anche i nodi intermedi possono contenere documenti)! Un nodo è figlio di un altro nodo se corrisponde ad un sotto-argomento del padre " Creano ontologie semantiche! Cercare equivale a seguire un cammino dalla radice ad un nodo dell albero " Si cerca da argomenti generali a quelli specifici
Recommender systems! Un Recommender system suggerisce all utente l informazione che gli interessa in modo automatico! Filtrano sorgenti di informazione e trovano cose che l utente avrebbe difficiltà a trovare da solo! Usano profili utente (o gruppi di utenti): " Creazione esplicita: utente fornisce un insieme di oggetti che gradisce o fornisce i voti o il rank di oggetti " Creazione implicita: osservando le azioni, gli acquisti, la rete sociale e/o il contenuto del computer di un utente.! Ancora principalmente usati solo a livello di ricerca Wiki! Un wiki è un sito Web che permette agli utenti di aggiungere, rimuovere o modificare il contenuto. " Ottimi per la gestione di informazione a livello aziendale " Pagine sono connesse tra loro e possono contenere dati multimediali " Permette la creazione di documenti con molti autori " Wikipedia (enciclopedia open-source) è il più famoso! Wiki sono strumenti democratici e possono avere problemi di autorevolezza " In pratica Wikipedia è uno strumento straordinario per l accesso ad informazione di alta qualità
La struttura dei motori di ricerca! Il crawler prende le pagine dal Web! L indicizzatore memorizza le parole in liste inverse! Il ranker decide l importanza delle pagine! Un Web server: " riceve le query degli utenti " le passa alla lista inversa " ritorna i risultati all utente Motori di ricerca! Ve ne sono probabilmente + di 3000! I 20 più usati coprono il 98% di tutte le ricerche! Accesso tramite maschere di ricerca! Ricerca per keyword
Crawling! Crawlers sono spesso chiamati con nomi diversi: " Spiders " softboats Un tipico motore di ricerca Utente Web Server Frontend (CGI) Online Offline WWW Pagine Web Query Risultati Ranker PageRank Scores Query Crawler Grafo del Web Indicizzatore Keywords Lista Inversa
L architettura di un crawler documento keywords WWW richiesta http HTML parser All Indicizzatore Coda di fetch HTML links Al grafo del Web Crawler Come funziona un crawler Web Link Pagina Web Pagina Seme
Massimizzare l efficienza! Allocare un numero di fetcher e di parser adattivo rispetto alle condizioni di lavoro momentanee.! Disporre di + centri di crawling nel mondo DOMANDA cosa succede scaricando dall Italia una parte significativa del Web statunitense? RISPOSTA Saturo la connettività internazionale. Crawler multi-threads WWW documenti Coda pagine i-esimo fetcher j-esimo Fi scaricate Pj F1 Crawler F2 richieste HTTP Links HTML Fn Coda di fetch All Pm P2 parser P1 keywords Indicizzatore
Dati su cui il Crawler lavora! Coda delle pagine dei fetch *! Coda delle pagine da analizzare (HTML parsing ed estrazione links)! Indice delle pagine già visitate *! Numero pagine scaricate! Tabella Hash: sito Web / pagine scaricate! data ed ora di scaricamento pagine (crawler continuo)! Statistiche momentanee: pagine richieste ad un sito, ad una certa area geografica, ecc. * dati critici da memorizzare Crawling continuo o discreto! Crawling continuo: il crawler non si ferma mai, quando incontra una pagina già visitata, decide se rivisitarla in base al tempo trascorso dall ultimo download.! Crawling discreto: una sessione di crawling ogni 1-4 settimane. Ogni volta il database delle pagine è ricostruito da zero.
L etica dei crawlers! si può usare un robot se i risultati da esso conseguiti saranno pubblicamente disponibili.! Non è accettato l'uso di robot per fini personali, a meno che non si tratti di robot che scaricano piccolo numero di pagine e che girano raramente.! Si deve scaricare solo ciò che il proprietario vuole sia osservato dai robots.! Un robot deve identificarsi. ==> Standard per l esclusione dei robots. Le trappole dei Crawler! Siti enormi: Amazon, Geocities, etc. In genere sono esclusi a priori.! Trappole appositamente costruite: siti che includono links ad URLs create dinamicamente ogni volta con contenuto diverso (parole casuali).! Attualmente i crawlers escono dalle trappole fissando un numero massimo di pagine scaricabili da uno stesso sito.
Esempi di Robots.txt - 1! nessun robot può accedere alla directory cgi-bin User-Agent: * Disallow: /cgi-bin! nessun robot deve accedere alle directories pippo e cgi-bin User-Agent: * Disallow: /cgi-bin Disallow: /pippo Il file Robots.txt Il file /robots.txt indica, stramite una sintassi standard cosa non può essere letto e da cui. In realtà non è possibile costringere i robots a rispettare lo standard di esclusione. Vi sono robots che non "firmano" le loro richieste http o si fingono Web browsers. ==> Molti Web masters si difendono escludendo le connessioni da determinati indirizzi IP.
Esempi di Robots.txt -3! nessun robot può accedere alla directory cgi-bin. Il robot "nasty-crawler" non può accedere nemmeno a /stuff/pippo. Il robot even-more-nasty-crawler non può accedere a nessuna pagina User-Agent: * Disallow: /cgi-bin User-Agent: nasty-crawler Disallow: /stuff/pippo User-Agent: even-more-nasty-crawler Disallow: / Esempi di Robots.txt -2! nessun robot può accedere a nessuna pagina User-Agent: * Disallow: /! tutti i robots possono accedere ad ogni pagina User-Agent: * Disallow:! tutti i robots accedono ad ogni pagina, tranne "nasty-crawler" che non accede a nessuna User-Agent: nasty-crawler Disallow: /
Un Crawler, non un Killer! È necessario sempre porre limiti ragionevoli al:! numero di pagine contemporaneamente scaricate da uno stesso server! numero di pagine contemporaneamente scaricate da una stessa area geografica! tempo tra 2 richieste consecutive ad un server Sistemi Gestione Documentale! altrimenti al crawler verrà velocemente negato l accesso a molti siti M. Diligenti
Ranking nei Motori di Ricerca Ranking nei Motori di Ricerca Indicizzazione! Realizzata tramite indici inversi! La abbiamo studiata nelle lezioni precedenti
Graph Models per il Web! Il Web è un grafo diretto, etichettato,ciclico (digraph). I nodi sono le pagine, gli hyperlinks le connessioni. Questo modello influenza applicazioni in molti campi:! Ranking di pagine " PageRank, Brin, Page: Google " Hubs, Authorities: Kleinberg, Clever! Clustering: Bipartite subgraphs, Kumar, et al.! Crawling Ranking per il Web! Classici IR usa solo il contenuto dei documenti! Il contenuto dei documenti non basta per il Web " Il problema dello Spam: facile clonare o truccare il testo " Difficile stabilire l autorità di un testo " Documenti sono formattati, non tutto il test nel Web ha la stessa rilevanza! I documenti Web sono connessi tra di loro, possiamo usare questa informazione nel ranking?
PageRank, un Random surfer! Modella un navigatore (random surfer) che naviga il Web " Il surfer che segue un link a caso che esce da una pagina con prob 1-d " Con prob d, si stanca della sua navigazione attuale e salta ad una pagina a caso del Web! Modello Markoviano (stato al tempo t dipende solo dallo stato e l azione compiuta al tempo t-1)! Modello probabilistico: in grafo senza pozzi la somma di tutti i PageRank at tempo t vale 1:! p"w x p (t)=1! x p (t) modella la probabilità che il surfer si trovi sulla pagina p al tempo t M. Diligenti PageRank! Ogni link equivale ad una citazione. Pagine che ricevono più citazioni sono più rilevanti! Ricevere citazioni da pagine a loro volta rilevanti ha più peso che riceverle da pagine secondarie " Definizione ricorsiva " N numero pagine nel Web, p una pagina Web, d un parametro t.c. 0<d<1 e h p la hubness di una pagina vale a dire il numero di link uscenti dalla pagina stessa e x p (t) il page rank di una pagina p al tempo t, allora: M. Diligenti
Page Rank e ranking! PageRank di una pagina è indipendente dalla query Semplice misura della rilevanza assoluta di una pagina! Il ranking delle pagine si ottiene Calcolando uno score che modella l'importanza di un documento per una query Ordinando i documenti per score M. Diligenti Page Rank, forma matriciale! Si dimostra che converge indipendentemente dalla scelta dei valori iniziali " In forma matriciale X(t+1)=(1-d)W T X(t) +d/n1 " Dove W è simile alla matrice di adiacenza del grafo del Web ma con 1/h p per ogni connessione uscente da p " Soluzione nel punto fisso dove X(t+1)=X(t) X * =(I-(1-d)W T ) -1 d/n1 M. Diligenti
Page Rank: esercizi! Calcolare il PageRank per i nodi dei seguenti grafi 1 2 4 3 5 Page Rank e ranking! Come calcolare lo score per l'ordinamento M. Diligenti Non esiste un modo standard, ogni motore di ricerca ha la sua implementazione segreta Score(D,Q) = f(x D, CS(D,Q)) dove: D è un documento Q una query x D il valore del page rank per la pagina D a convergenza: x D =lim t->inf x D (t) CS(D, Q) una funzione di similarità tra D ed Q (es. similarità coseno) Score dipende dalla rilevanza assoluta di un documento e della sua importanza relativamente alla query
Hubs e Authorities (Kleinberg `98)! Basata su links. Come il PageRank, non analizza il contenuto delle pagine.! Usa due variabili per pagina " Autority: misura l autorevolezza di una pagina " Hubness: misura quanto una pagina è una buona sorgente di links a pagine autorevoli! Definizione ricorsiva: a p =! q"padri(p) h q h p =! q"figli(p) a q M. Diligenti Ranking e Google (Page, Brin `98)! Usa pesantemente l informazione inclusa nel grafo del Web " PageRank " Usa il testo nei links della pagina (ancore o anchor text)! Primo motore a usare l informazione contenuta nei link
Limiti dei motori di ricerca Limiti dei motori di ricerca Hubs e Authorities (Kleinberg `98) Hub Authority
Informazione nascosta! L Hidden web: il Web dietro maschere di ricerca o firewalls.! Parti di Web non raggiungibili dal resto delle pagine.! Pagine a cui i robot non possono accedere a causa dei Robots exclusion standard! Il dynamic web che varia + velocemente della frequenza di aggiornamento dei databases dei motori di ricerca. I crawler scoprono tutto? I motori di ricerca collezionano le pagine facendo crawling. Ma riesce il crawling a trovare tutte l informazione presente sul Web?
Copertura dei motori di ricerca (Lawrence, Giles, Nature Giugno 99)! Copertura del miglior motore di ricerca:16%! Copertura combinata degli 11 motori di ricerca:42% del PIW! Stesso esperimento pubblicato su Science nell Aprile 98 " Miglior motore di ricerca:34% " Copertura di 6 motori di ricerca combinati: 60% Web nascosto e la Bow Tie Parte del Web non è raggiungibile dal core del Web!!!
Copertura/ tutto il Web Copertura/copertura combinata
Freschezza dell informazione dei motori di ricerca (Ricerca Nec)! Una nuova pagina è indicizzata in media dopo 57 giorni " Questi esperimenti evidenziano che l indicizzazione di pagine nuove o modificate può necessitare settimane o mesi Freschezza: Links non validi " Northern Light: 9.8% " Snap: 2.8% " AltaVista: 6.7% " HotBot: 2.2% " Microsoft: 2.6% " Infoseek: 5.5% " Google: 7.0% " Yahoo: 2.9% " Excite: 2.7% " Lycos: 14.0% " EuroSeek: 2.6% Media: 5.3%
Perché i motori non indicizzano tutto il Web? Limiti tecnologici " a) Banda/tempo per effettuare il download " b) Spazio su disco per memorizzare l informazione " c) Scalabilità dell indicizzatore e delle tecniche di information retrieval Vi e un punto in cui non economicamente conveniente indicizzare di più. ==> Soluzione: Motori di ricerca specializzati (Niche search engines), portali verticali. Bias nell indicizzazione Siti con più links entranti hanno più probabilità M. di Diligenti essere indicizzati Sistemi Gestione Documentale