Web Information Retrieval. Il World Wide Web Sviluppato da Tim Berners-Lee nel1990 al CERN per...
-
Upload
benigna-capelli -
Category
Documents
-
view
214 -
download
1
Transcript of Web Information Retrieval. Il World Wide Web Sviluppato da Tim Berners-Lee nel1990 al CERN per...
Web Information Retrieval
Il World Wide Web
• Sviluppato da Tim Berners-Lee nel1990 al CERN per organizzare documenti di ricerca disponibili su Internet.
• Combina l’idea di scaricare documenti via FTP con l’idea di ipertesti per collegare fra loro i docmenti
• Ha sviluppato il protocollo HTTP, il concetto di URLs, 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% di documenti duplicati.
• Qualità dei dati: Non ci sono controlli editoriali, le informazioni possono essere false, possono esserci errori, 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 sistema di IR
Query
DocumentiWeb Spider
Sistema di IR
ranking dei docs
1. Pag.12. Pag.23. Pag.3 . .
INDICI
WWW
Spiders/Crawlers
}
Page Respository
ModuloIR
ModuloIndiciz-zazione
Testo Struttura LinkControllo Spidering
Utenti
Query Rankedresults
FASI• Spidering/Crawling: esplorazione di una porzione del web
• Indicizzazione: generazione di indici che associno i documenti a dei puntatori, su tre basi: struttura del documento, contenuto, posizione del documento nel grafo del web.
• Ranking: sulla base della query e degli indici, presentare gli indirizzi delle pagine ordinate per rilevanza
Web Search
1. Spidering
Spiders (Robots/Bots/Crawlers)
• Sono programmi che attraversano la rete spedendo pagine nuove o aggiornate ad un server principale,e dove queste vengono indicizzate
• Uno Spider gira su macchine locali e spedisce richieste a server remoti
• Gli indici sono usati in maniera centralizzata per rispondere 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 ricerca di pagine addizionali.
• Alcuni sistemi consentono all’utente di sottomettere pagine per l’indicizzazione (o stabilire i nodi radice).
Spider Control
• Decide quali link i crawler debbano esplorare e quali ignorare
• Può usare dei feedback provenienti da “usage patterns” (analisi di comportamenti di utente) per guidare il processo di esplorazione
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 la memorizzazione di tutti i nodi del livello precedente (è esponenziale nel fattore di profondità p). E’ il metodo standard.
• Depth-first richiede di memorizzare p volte il fattore di branching (lineare in p), ma “si perde” seguendo un’unica traccia.
Algoritmo di SpideringInizializza la coda Q con un set iniziale di URL note. Until Q vuota o si esauriscono i limiti di tempo o pagine memorizzabili: 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à “focused crawler” tese a direzionare la ricerca verso pagine “interessanti”.
Strategie per Spider specializzati
• 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 proprietari dei siti (robot exclusion).
Dettagli sulle tecniche di Spidering : 1. Estrazione dei Link (puntatori)
• Si devono identificare tutti i links contenuti in una pagina ed estrarre 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 della pagina corrente, devono costruire un URL completo :– <a href=“proj3”> diventa
http://www.cs.utexas.edu/users/mooney/ir-course/proj3– <a href=“../cs343/syllabus.html”> diventa
http://www.cs.utexas.edu/users/mooney/cs343/syllabus.html
2. Esprimere i Link in fromato canonico• Variazioni equivalenti vengono normalizzate
rimuovendo la “slash” finale http://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
3. Refresh: aggioramento delle pagine
• 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 è stata aggiornata, e ricaricarla se necessario.
• Tiene traccia delle pagine più “dinamiche” nel tempo, e controlla quelle in prevalenza.
• Aggiorna e verifica con preferenza le pagine più popolari.
4. Robot Exclusion
• Alcuni siti Web o pagine possono specificare che 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 specifici per evitarne l’indicizzazione o l’esplorazione.
Robots Exclusion Protocol
• Gli amministratori dei siti mettono un file “robots.txt” alla radice del web directory dell’host.– http://www.ebay.com/robots.txt– http://www.cnn.com/robots.txt
• Il file contiene una lista di directories proibite per 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: /
5. Multi-Threaded Spidering
• Il collo di bottiglia consiste nel ritardo di rete per scaricare singole pagine.
• E’ preferibile seguire molti “fili” della rete in parallelo ognuno dei quali richiede una pagina da diversi host.
• Il precedente spider di Google aveva molti crawlers coordinati, ognuno con 300 thread, complessivamente capaci di scaricare più di 100 pagine al secondo.
6. Selezione delle pagine
• Quali pagine scaricare?? (non tutto il web!!)
• Metriche di importanza:– Interest-driven (spiders specializzati)– Popularity driven – Location driven
Sommario (Spiders)
• Strategia di ricerca
• Strategia di aggiornamento (refresh)
• Minimizzazione del carico su altre organizzazioni (robot exclusion)
• Selezione delle pagine
2. Indicizzazione
Modalità per indicizzare le pagine sul Web
• Per ogni pagina identificata dallo Spider va creato un indice. Tre metodi (non esclusivi)– Si usano dei directories, che classificano le pagine Web
per argomento– Si indicizza ogni documento esplorato dallo Spider
come full text (flat o strutturato)– Si tiene conto della struttura ipertestuale del Web, cioè
degli hyperlinks
1. Creazione di Directories: 1.1 Classificazione manuale
• Yahoo usa editors umani per generare un directory 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 ad opera dei gestori di portali o motori di ricerca richiede molto tempo e molta forza-lavoro, è soggettiva, e soggetta a errori.
• I metodi automatici di classificazione dei testi possono essere usati per alleviare questo lavoro.
• Questi metodi si basano su tecniche di machine learning.
1.3 Gerarchizzazione automatica di documenti
• Lo sviluppo di tassonomie è un processo complesso, richiede tempo, è soggettivo, produce errori.
• Esistono metodi automatici (Hierarchical Agglomerative Clustering (HAC) ) per ottenere automaticamente una strutturazione gerarchica.
Metodi di classificazione automatica
Sport Cn
Politica C1
Economia
C2
. . . . . . . . . . .
Wonderful Totti
Yesterday match
Berlusconi acquires Inzaghi before
elections
Bush declares war
Classificazione Automatica (2)• Dato:
– Un insieme di categorie:– Un insieme T di documenti d,
definisci
f : T 2C
• VSM (Vector Space Model)
– I documenti sono rappresentati come vettori (modello vettoriale).
– Sia i documenti che le categorie sono vettori.
– d è assegnato a se
r d ×
r C i >th
{ } ,.., 1 nCCC =
iC
Esempio
Berlusconi
Bush
Totti
Bush declares war.Berlusconi gives support
Wonderful Totti in the yesterday match against Berlusconi’s Milan
Berlusconi acquires Inzaghi before elections
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
Cwik =max{ 0,
βTk
wijdj∈Tk
∑ − λTk
wijdj∈Tk
∑ }
Tk
r d ×
r C k>th
Ck
wij
Iperpiano di seperazione
Altri metodi di classificazione: SVM
Support Vectors
Tk
Tk
1.Classificazione
1. Classificazione2. Creazione degli indici
2.1 Full text2.2 Usando informazioni aggiuntive sul testo
Creazione automatica di Indici nel Web IR
• Molti sistemi usano varianti dell’inverted file
• Ad ogni parola o keyword viene associato l’insieme dei puntatori alle pagine che contengono la parola
• Eliminazione di stopwords, punteggiatura..
• Usualmente si associa anche una breve descrizione del contenuto della pagina (per mostrarlo all’utente)
Creazione automatica di Indici (2)
– Poiché occorrono circa 500 bytes per memorizzare l’informazione relativa ad ogni pagina, occorrono circa 50 Gb per mantenere le informazioni relative a 100 milioni di pagine !!
– Tecniche di compressione possono consentire di ridurre la taglia di un inverted file di circa il 30% (dunque bastano 15 Gb per 100 milioni di pagine)
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 la pagina, è possibile fare “proximity search” cioè cercare frasi (parole fra loro contigue).
• Qualche motore di ricerca consente proximity search, ma le tecniche non sono note interamente.
Creazione automatica di Indici (4)
• Una soluzione intermedia consiste nel puntare a blocchi anziché a singole occorrenze nel documento.
• Questo riduce la taglia dei puntatori e velocizza la ricerca.
Metodi avanzati: Indicizzazione usando 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 sul contenuto del documento cui punta.
• Si aggiunge il testo contenuto nell’ancora alla rappresentazione del contenuto della pagina destinazione (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 nelle ancore (cont)
• E’ particolarmente utile quando il contenuto descrittivo nelle pagine destinazione è “nascosto” nei logo delle immagini 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 recall di queste pagine.
• Si può anche assegnare un peso maggiore al testo contenuto 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 base della struttura ipertestuale
Ranking
• I metodi di ranking usati dai motori di ricerca sono top-secret
• I metodi più usati sono il modello vettoriale e booleano • Alcuni nuovi motori utilizzano per il ranking anche gli
hyperlinks. Le pagine “risposta” pi vengono valutate (ed il loro numero viene esteso) sulla base del numero di connessioni da e verso pi.
Link Analysis
Outline1. Early Approaches to Link Analysis2. Hubs and Authorities: HITS3. Page Rank4. Stability5. Probabilistic Link Analysis6. Limitation of Link Analysis
Primi metodi di link analysis
• Gli Hyperlinks contengono informazioni che sussumono un giudizio sulla pagina
• Più links entrano in un sito, più importante è il giudizio
Assunzioni
• La visibilità di un sito si misura mediante il numero di siti che puntano ad esso
• La liminosità di un sito è il numero di altri siti che esso punta
Limite: non cattura l’importanza relativa dei siti “parenti” (cioè ad esso collegati )
HITS - Kleinberg’s Algorithm
• HITS – Hypertext Induced Topic Selection
• Per ogni vertice v V in un sottografo di interesse:
• Un sito è autorevole se riceve molte citazioni. Le citazioni da parte di siti importanti pesano di più di quelle da parte di siti meno importanti.
• Un buon hub è un sito che è collegato con molti siti autorevoli
a(v) - l’ authority di vh(v) - la hubness di v
Authority e Hubness
2
3
4
1 1
5
6
7
a(1) = h(2) + h(3) + h(4) h(1) = a(5) + a(6) + a(7)
Ranking con H&A
H(p)= A(u)u∈S p→ u
∑
A(p)=H(v)v∈Sv→p
∑
Esempio di HITS
• {1, 2, 3, 4} - nodi rilevanti per l’argomento (query)• Espandi il set di radici R includendo tutti i figli e un numero fisso di di nodi parenti
Un nuovo set S (sottografo base)
• Inizia con il set di radici R {1, 2, 3, 4}
Trova un sottografo di partenza:
Esempio HITS (2)S il grafo di partenzaB(i) le pagine che puntano ad una pagina i di S(F(i) le pagine punate da una pagina i di SPasso H:
Passo A:
Inizializza ai,hi con valori arbitrari (1 i n)Ripeti fino all convergenza• applica il passo A• applica il passo H• normalizza Fine
hi = ajj∈F(i )
∑
ai = hjj∈B(i)
∑
(ai )2
i∑ =1
(hi)2
i∑ =1
HITS Example ResultsAuthorityHubness
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Pesi di authority e hubness
PageRank
• Introdotto da Page et al (1998)– Il peso è assegnato dal rank dei nodi parenti
• Differenza rispetto a HITS– HITS prende i pesi di Hubness & Authority– Page rank è proporzionale al rank dei suoi nodi parenti ma
inversamente proporzionale al outdegree dei suoi parenti
P(a)=(1−α)+α P(aii∈Ain
∑ )1
C(ai)
Notazione matriciale
Matrice delle adiacenze
A =
* http://www.kusatro.kyoto-u.com
Il calcolo di pagerank corrisponde al calcolo dell’eigenvector (autovettore) principale della matrice delle adiacenze normalizzata del web (a meno del parametro d si ha P =AT P
Come si calcola pageRank?
• Si parte da pesi casuali e si itera il procedimento• Es:
d
= 0.85
PR(A)
= (1 – d) + d(PR(B)/1)
PR(B)
= (1 – d) + d(PR(A)/1)
i.e.
PR(A)
= 0.15 + 0.85 * 1
= 1
PR(B)
= 0.15 + 0.85 * 1
= 1
d = 0.85 PR(A) = (1 – d) + d(PR(B)/1) PR(B) = (1 – d) + d(PR(A)/1) Partiamo con P=1 PR(A)= 0.15 + 0.85 * 1= 1 PR(B)= 0.15+0,85*1=1 già converge!!
Partiamo con P=0 PR(A)= 0.15 + 0.85 * 0= 0.15 PR(B)= 0.15+0,85*0.15=0.2775
PR(A)= 0.15 + 0.85 * 0.2775=0.385875PR(B)=0.47799..
PR(A)=0.5562..PR(B)=0.6228..Tende a 1!!
Problemi• Problema del “Rank Sink”
– In generale, molte pagine web non hanno inlinks/outlinks
E.g.
nessun parente rank 0MT converge a una matricela cui ultinma colonna contiene tutti zero
nessun figlio nessuna soluzioneMT converge ad una matrice di zeri
PageRank è usato da Google