Web Information Retrieval
Il World Wide Web
• Sviluppato da Tim Berners-Lee nel1990 alCERN per organizzare documenti di ricercadisponibili su Internet.
• Combina l’idea di scaricare documenti via FTPcon l’idea di ipertesti per collegare fra loro idocmenti
• Ha sviluppato il protocollo HTTP, il concetto diURLs, ed il primo “web server.”
Problemi per WEB IR• Dati distribuiti: I documenti sono sparsi su milioni di
server differenti• Dati Volatili: Molti documenti appaiono e
spariscono (così detti dead links).• Enormi volumi di dati: Miliardi di documenti diversi• Dati non strutturati e ridondanti: Non esiste una
struttura uniforme, ci sono errori html, circa 30% didocumenti duplicati.
• Qualità dei dati: Non ci sono controlli editoriali, leinformazioni possono essere false, possono essercierrori, testi mal scritti..
• Dati eterogenei: multimediali (immagini, video,suoni..) diversi linguaggi, diversi formati (pdf, ps..)
Numero di Web Servers
Numero di pagine Web
Numero di pagine Web indicizzate
Assumendo circa 20KB per pagina, 1 miliardo di pagine sono circa 20 terabytes di dati.
SearchEngineWatch, Aug. 15, 2001
Crescita delle pagine indicizzate
Google elenca il numero di pagine correntemente indicizzate.
SearchEngineWatch, Aug. 15, 2001
Struttura a grafo del Web
http://www9.org/w9cdrom/160/160.html
Paginecon linkin uscita
Paginecon linkin ingresso
Pagine con linkdi ingresso e uscita
Ricerca sul Web usando un sistemadi IR
Query
DocumentiWeb Spider
Sistema di IR
ranking dei docs
1. Pag.12. Pag.23. Pag.3 . .
INDICI
FASI
• Spidering: esplorazione di una porzione delweb
• Indicizzazione: generazione di indici cheassocino i contenuti dei documenti a puntatori
• Ranking: sulla base della query e degli indici,presentare gli indirizzi delle pagine ordinate perrilevanza
Web Search
1. Spidering
Spiders (Robots/Bots/Crawlers)
• Sono programmi che attraversano la retespedendo pagine nuove o aggiornate ad unserver principale,e dove queste vengonoindicizzate
• Uno Spider gira su macchine locali e spediscerichieste a server remoti
• Gli indici sono usati in maniera centralizzata perrispondere alle query degli utenti
Spiders (Robots/Bots/Crawlers)
• Si parte da un insieme pre-identificato di URL“radice”.
• Si seguono tutti i link a partire dalle radici alla ricercadi pagine addizionali.
• Indicizza le nuove pagine mediante inverted indexes.
• Alcuni sistemi consentono all’utente di sottometterepagine per l’indicizzazione (o stabilire i nodi radice).
Strategie di ricercaBreadth-first Search
Strategie di Ricerca (2)Depth-first Search
Trade-Off’s• Breadth-first esplora uniformemente a partire
dalla pagina(e) root, ma richiede lamemorizzazione di tutti i nodi del livelloprecedente (è esponenziale nel fattore diprofondità p). E’ il metodo standard.
• Depth-first richiede di memorizzare p volte ilfattore di branching (lineare in p), ma “si perde”seguendo un’unica traccia.
Problemi: Evitare duplicazione dellepagine
• Durante una visita bisogna accorgersi se una pagina è stata giàvisitata, poiché il web è un grafo, non un albero.
• Il sistema di indicizzazione deve essere efficente per effettuarerapidamente test di riconoscimento.– Tree indexing (e.g. trie)– Hashtable
• Si possono indicizzare le pagine mediante le URL.– Le url devono essere espresse in qualche forma canonica, ad
esempio eliminando le “/”finali– Non si accorge di pagine duplicate in siti diversi, o
pagine”mirror”.• Indicizza le pagine usando come chiavi il contenuto.
– Richiede di scaricare la pagina in questione..
Algoritmo di SpideringInizializza la coda Q con un set iniziale di URL note.Until Q vuota o si esauriscono i limiti di tempo o paginememorizzabili: Estrai URL, L, dalla testa di Q. Se L non è una pagina HTML (.gif, .jpeg, .ps, .pdf, .ppt…) continua il ciclo. Se L già visitata, continua il ciclo. Scarica la pagina, P, di L. Se non è possibile scaricare P (e.g. 404 error, robot exclusion) continua ciclo. Indicizza P (cioè aggiungi rapp(P) all’inverted
inedex,oppure memorizza una copia cache). Analizza P per ottenere una nuova lista di links N. Appendi N in coda a Q.
Append:Strategie di queueing• I nuovi link aggiunti come modificano la
strategia di ricerca?• FIFO (appendi alla coda di Q) determina una
strategia di ricerca breadth-first.• LIFO (aggiungi in testa a Q) determina una
strategia di ricerca depth-first.• Alcuni sistemi usano delle euristiche per
collocare i nuovi link secondo priorità “focusedcrawler” tese a direzionare la ricerca versopagine “interessanti”.
Estrazione dei Link (puntatori)
• Si devono identificare tutti i links contenuti in una pagina edestrarre le relative URLs, per proseguire nell’esplorazione.
– <a href=“http://www.cs.utexas.edu/users/mooney/ir-course”>
– <frame src=“site-index.html”>
• Se esistono URL specificate con riferimento alla URL dellapagina corrente, devono costruire un URL completo :
– <a href=“proj3”> diventahttp://www.cs.utexas.edu/users/mooney/ir-course/proj3
– <a href=“../cs343/syllabus.html”> diventahttp://www.cs.utexas.edu/users/mooney/cs343/syllabus.html
Sintassi degli URL• Una URL ha la seguente sintassi:
– <scheme>://<authority><path>?<query>#<fragment>
• Una authority ha la sintassi:– <host>:<port-number>
• Una query passa valori di variabili da formati HTMLed ha la sintassi:<variable>=<value>&<variable>=<value>…
• Un fragment è detto anche reference o ref ed è unpuntatore dall’interno di un documento verso un puntospecificato mediante una tag “ancora” che ha la forma:– <A NAME=“<fragment>”>
Esprimere i Link in fromato canonico• Variazioni equivalenti vengono normalizzate
rimuovendo la “slash” finalehttp://www.cs.utexas.edu/users/mooney/– http://www.cs.utexas.edu/users/mooney
• Si rimuovono i riferimenti a pagine interne(ref’s) :– http://www.cs.utexas.edu/users/mooney/welcome.html#courses
– http://www.cs.utexas.edu/users/mooney/welcome.html
Mantenere le pagine aggiornate• Il Web è dinamico: ci sono molte pagine nuove, pagine
aggiornate, cancellate, riposizionate..• Periodicamente lo Spider deve verificare tutte le pagine
indicizzate per aggiornamenti e cancellazioni :– Basta guardare le info di intestazione (es. META tags
sull’ultimo aggiornamento) per verificare se la pagina è stataaggiornata, e ricaricarla se necessario.
• Tiene traccia delle pagine più “dinamiche” nel tempo, econtrolla quelle in prevalenza.
• Aggiorna e verifica con preferenza le pagine piùpopolari.
Spidering Specializzato
• Ristretti a siti specifici.– Rimuove alcuni links da Q.
• Ristretti a directories specifici.– Rimuove i links non contenuti nel directory.
• Obbedisce a restrizioni imposte dai proprietaridei siti (robot exclusion).
Robot Exclusion
• Alcuni siti Web o pagine possono specificareche gli spiders/robot non accedano néindicizzino certe aree.
• Due componenti:– Robots Exclusion Protocol: E’ un protocollo che
vieta l’accesso da direttori specificati all’intero sito.Robots META Tag: Etichetta documenti specificiper evitarne l’indicizzazione o l’esplorazione.
Robots Exclusion Protocol
• Gli amministratori dei siti mettono un file“robots.txt” alla radice del web directorydell’host.– http://www.ebay.com/robots.txt– http://www.cnn.com/robots.txt
• Il file contiene una lista di directories proibiteper un dato robot, o agente di utente.– Exclude all robots from the entire site:
User-agent: * Disallow: /
Robot Exclusion Protocol Examples• Escludere directories: User-agent: * Disallow: /tmp/
Disallow: /cgi-bin/
Disallow: /users/paranoid/
• Escludere uno specifico robot: User-agent: GoogleBot Disallow: /
• Consentire l’uso solo ad uno specifico robot: User-agent: GoogleBot Disallow:
User-agent: *
Disallow: /
Multi-Threaded Spidering
• Il collo di bottiglia consiste nel ritardo di rete perscaricare singole pagine.
• E’ preferibile seguire molti “fili” della rete in paralleloognuno dei quali richiede una pagina da diversi host.
• Il precedente spider di Google aveva molti crawlerscoordinati, ognuno con 300 thread, complessivamentecapaci di scaricare più di 100 pagine al secondo.
2. Indicizzazione
Modalità per indicizzare le paginesul Web
• Per ogni pagina identificata dallo Spider vacreato un indice. Tre metodi (non esclusivi)– Si usano dei directories, che classificano le pagine
Web per argomento
– Si indicizza ogni documento esplorato dallo Spidercome full text
– (ancora non molto usato) Si tiene conto dellastruttura ipertestuale del Web, cioè degli hyperlinks
1. Creazione di Directories:1.1 Classificazione manuale
• Yahoo usa editors umani per generare undirectory gerachico di pagine web.– http://www.yahoo.com/
• Open Directory Project è un progetto simile,basato sul lavoro distribuito di editors volontari(“net-citizens provide the collective brain”). E’utilizzato da molti motori di ricerca. Il progettoè stato avviato da Netscape.– http://www.dmoz.org/
1.2 Classificazione automatica
• La classificazione manuale dei documenti sul web adopera dei gestori di portali o motori di ricerca richiedemolto tempo e molta forza-lavoro, è soggettiva, esoggetta a errori.
• I metodi automatici di classificazione dei testi possonoessere usati per alleviare questo lavoro.
• Questi metodi si basano su tecniche di machinelearning viste precedentemente.
1.3 Gerarchizzazione automatica didocumenti
• Lo sviluppo di tassonomie è un processo complesso,richiede tempo, è soggettivo, produce errori.
• Esistono metodi automatici (HierarchicalAgglomerative Clustering (HAC) ) per ottenereautomaticamente una strutturazione gerarchica.
Metodi di classificazione automatica
Sport Cn
Politica C1
Economia C2
. . . . . . . . . . .
Wonderful Totti
Yesterdaymatch
BerlusconiacquiresInzaghibefore
elections
Bushdeclares war
Classificazione Automatica (2)• Dato:
– Un insieme di categorie:
– Un insieme T di documenti d,
definsci
f : T → 2C
• VSM (Vector Space Model)
– I documenti sono rappresentati come vettori (modellovettoriale).
– Sia i documenti che le categorie sono vettori.
– d è assegnato a ser rd C thi× >
{ } ,.., 1 nCCC =
iC
Esempio
Berlusconi
Bush
Totti
Bushdeclareswar.Berlusconigivessupport
WonderfulTotti in theyesterdaymatchagainstBerlusconi’sMilan
BerlusconiacquiresInzaghibeforeelections
d1: Politica
d1
d2
d3
C1
C1 : Politica
d2: Sport d3:Economia
C2
C2 : Sport
• , il peso di wi in dj
– Ad esempio (ma esistono altri schemi di pesatura) TF *IDF
• , il peso di wi in Ck :
• , i documenti di addestramento per
• Un documento d è assegnato alla classe Ck se:
Il Classificatore di Rocchio
Cwik
C maxT
wwik
kij
dj Tk= { ∑
∈0,
β − ∑ }∈
λTk
wijdj Tk
Tk
r rd Ck th× >
Ck
wij
Iperpiano diseperazione
Altri metodi di classificazione: SVM
Support Vectors
Tk
Tk
1. Classificazione2. Creazione degli indici
2.1 Full text2.2 Usando informazioni
aggiuntive sul testo
Creazione automatica di Indicinel Web IR
¥ Molti sistemi usano varianti dell inverted file
¥ Ad ogni parola o keyword viene associatol insieme dei puntatori alle pagine checontengono la parola
¥ Eliminazione di stopwords, punteggiatura..
¥ Usualmente si associa anche una brevedescrizione del contenuto della pagina (permostrarlo all utente)
Creazione automatica di Indici (2)
—Poich occorrono circa 500 bytes permemorizzare l informazione relativa ad ognipagina, occorrono circa 50 Gb per mantenere leinformazioni relative a 100 milioni di pagine !!
—Tecniche di compressione possono consentiredi ridurre la taglia di un inverted file di circa il30% (dunque bastano 15 Gb per 100 milioni dipagine)
Creazione automatica di Indici (3)¥ Alcuni inverted files puntano all occorrenza di una
parola nel testo (non nel documento), ma la tecnica troppo costosa in termini di memoria.
¥ Se si possiede un puntatore di posizione dentro lapagina, possibile fare proximity search ciocercare frasi (parole fra loro contigue).
¥ Qualche motore di ricerca consente proximitysearch, ma le tecniche non sono note interamente.
Creazione automatica di Indici(4)
¥ Una soluzione intermedia consiste nel puntare ablocchi anzich a singole occorrenze neldocumento.
¥ Questo riduce la taglia dei puntatori e velocizza laricerca.
Metodi avanzati: Indicizzazioneusando il testo nelle ancore
• Lo Spider analizza il testo nelle ancore (between <a>and </a>) di ogni link seguito.
• Il testo nelle ancore di solito è molto informativo sulcontenuto del documento cui punta.
• Si aggiunge il testo contenuto nell’ancora allarappresentazione del contenuto della paginadestinazione (keywords).
• Questo metodo è usato da Google:– <a href=“http://www.microsoft.com”>Evil Empire</a>
– <a href=“http://www.ibm.com”>IBM</a>
Indicizzazione usando il testo nelleancore (cont)
• E’ particolarmente utile quando il contenuto descrittivonelle pagine destinazione è “nascosto” nei logo delleimmagini piuttosto che in testi accessibili.
• Spesso non è affatto utile:– “click here”
• Migliora la descrizione del contenuto di pagine“poplari” con molti link entranti, ed aumenta la recalldi queste pagine.
• Si può anche assegnare un peso maggiore al testocontenuto nelle ancore.
1. Classificazione2. Creazione degli indici
2.1 Full text2.2 Usando informazioni
aggiuntive sul testo3. Ranking
3.1 Ranking sulla base del contenuto
3.2 Ranking sulla bse della strutturaipertestuale
Ranking
• I metodi di ranking usati dai motori di ricercasono top-secret
• I metodi più usati sono il modello vettoriale ebooleano
• Alcuni nuovi motori utilizzano per il rankinganche gli hyperlinks. Le pagine “risposta” pi
vengono valutate (ed il loro numero vieneesteso) sulla base del numero di connessioni dae verso pi.
Ranking basato su Links
• Esistono tre esempi di ranking effettuato mediantel’analisi degli hyperlinks—WebQuery, che consente il browsing virtuale di pagine
Web. WebQuery prende un insieme di pagine Web (peresempio, le risposte ad una query valutate con metodobooleano o vettoriale) e le classifica sulla base di quantoogni pagina web sia connessa con altre
Ranking basato su Links
• WebQuery
Ranking basato su Links: Hubsand Authorities
¥ Lo schema di ranking di Kleinberg dipende dallaquery e considera l insieme di pagine S che puntanoo sono puntate da pagine risposta—Le pagine in S con molti link entranti si chiamano
autorit—Le pagine con molti link uscenti si chiamano hubs
—Le migliori autorit sono quelle che sono puntate daimigliori hubs, e i migliori hubs sono quelli che puntanoalle migliori autorit
Ranking con H&A
H p A uu S p u
( ) ( )= ∑∈ →
A p H vv S v p
( ) ( )= ∑∈ →
Ranking con PageRank
¥ PageRank simula un utente che naviga a caso il Web e che accede aduna pagina casualmente con probabilit q, e segue a caso un hyperlinkcon probabilit 1 - a
¥ Questo processo pu essere modellato come una catena di Markov,dalla quale possibile stimare la probabilit stazionaria di accederead ogni pagina del grafo Web
¥ Sia C(a) il numero di link uscenti dalla pagina a e siano p1 ... pn lepagine che puntano ad a
P a q qP pC p
i
ii
n( ) ( )
( )( )
= + − ∑=
11
PageRank è usato da Google