Title: Web Information Retrieval
1Web Information Retrieval
2Il World Wide Web
- Sviluppato da Tim Berners-Lee nel1990 al CERN
per organizzare documenti di ricerca disponibili
su Internet. - Combina lidea di scaricare documenti via FTP con
lidea di ipertesti per collegare fra loro i
docmenti - Ha sviluppato il protocollo HTTP, il concetto di
URLs, ed il primo web server.
3Problemi 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..)
4Numero di Web Servers
5Numero di pagine Web
6Numero di pagine Web indicizzate
SearchEngineWatch, Aug. 15, 2001
Assumendo circa 20KB per pagina, 1 miliardo di
pagine sono circa 20 terabytes di dati.
7Crescita delle pagine indicizzate
SearchEngineWatch, Aug. 15, 2001
Google elenca il numero di pagine correntemente
indicizzate.
8Struttura a grafo del Web
Pagine con link di ingresso e uscita
Pagine con link in uscita
Pagine con link in ingresso
http//www9.org/w9cdrom/160/160.html
9Ricerca sul Web usando un sistema di IR
10(No Transcript)
11FASI
- 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
12Web Search
13Spiders (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
14Spiders (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 allutente di
sottomettere pagine per lindicizzazione (o
stabilire i nodi radice).
15Spider 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
16Strategie di ricerca
Breadth-first Search
17Strategie di Ricerca (2)
Depth-first Search
18Trade-Offs
- 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 ununica traccia.
19Algoritmo di Spidering
Inizializza 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) allinverted inedex,oppure memorizza
una copia cache). Analizza P per ottenere
una nuova lista di links N. Appendi N in
coda a Q.
20AppendStrategie 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.
21Strategie 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).
22Dettagli 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 nellesplorazione. - lta hrefhttp//www.cs.utexas.edu/users/mooney/ir-
coursegt - ltframe srcsite-index.htmlgt
- Se esistono URL specificate con riferimento alla
URL della pagina corrente, devono costruire un
URL completo - lta hrefproj3gt diventa
http//www.cs.utexas.edu/users/mooney/ir-course/pr
oj3 - lta href../cs343/syllabus.htmlgt diventa
http//www.cs.utexas.edu/users/mooney/cs343/syllab
us.html
232. 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
(refs) - http//www.cs.utexas.edu/users/mooney/welcome.html
courses - http//www.cs.utexas.edu/users/mooney/welcome.html
243. 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 sullultimo 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.
254. 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 laccesso da direttori specificati
allintero sito. Robots META Tag Etichetta
documenti specifici per evitarne lindicizzazione
o lesplorazione.
26Robots Exclusion Protocol
- Gli amministratori dei siti mettono un file
robots.txt alla radice del web directory
dellhost. - 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 /
27Robot Exclusion Protocol Examples
- Escludere directories
- User-agent
- Disallow /tmp/
- Disallow /cgi-bin/
- Disallow /users/paranoid/
- Escludere uno specifico robot
- User-agent GoogleBot
- Disallow /
- Consentire luso solo ad uno specifico robot
- User-agent GoogleBot
- Disallow
- User-agent
- Disallow /
285. 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.
296. Selezione delle pagine
- Quali pagine scaricare?? (non tutto il web!!)
- Metriche di importanza
- Interest-driven (spiders specializzati)
- Popularity driven
- Location driven
30Sommario (Spiders)
- Strategia di ricerca
- Strategia di aggiornamento (refresh)
- Minimizzazione del carico su altre organizzazioni
(robot exclusion) - Selezione delle pagine
312. Indicizzazione
32Modalità 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
331. 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/
341.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.
351.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.
36Metodi di classificazione automatica
Sport Cn
37Classificazione 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
38Esempio
d1 Politica
d2 Sport
d3Economia
Bush declares war. Berlusconi gives support
Wonderful Totti in the yesterday match against
Berlusconis Milan
Berlusconi acquires Inzaghi before elections
Berlusconi
d2
d1
C1 Politica
d3
C2 Sport
Totti
Bush
39Il Classificatore di Rocchio
- , 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
40Altri metodi di classificazione SVM
411.Classificazione1. Classificazione2.
Creazione degli indici 2.1 Full text 2.2
Usando informazioni aggiuntive sul testo
42Creazione automatica di Indici nel Web IR
- Molti sistemi usano varianti dellinverted file
- Ad ogni parola o keyword viene associato
linsieme 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
allutente)
43Creazione automatica di Indici (2)
- Poiché occorrono circa 500 bytes per memorizzare
linformazione 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)
44Creazione automatica di Indici (3)
- Alcuni inverted files puntano alloccorrenza 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.
45Creazione 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.
46Metodi avanzati Indicizzazione usando il testo
nelle ancore
- Lo Spider analizza il testo nelle ancore (between
ltagt and lt/agt) di ogni link seguito. - Il testo nelle ancore di solito è molto
informativo sul contenuto del documento cui
punta. - Si aggiunge il testo contenuto nellancora alla
rappresentazione del contenuto della pagina
destinazione (keywords). - Questo metodo è usato da Google
- lta hrefhttp//www.microsoft.comgtEvil
Empirelt/agt - lta hrefhttp//www.ibm.comgtIBMlt/agt
47Indicizzazione 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.
481. Classificazione2. Creazione degli
indici 2.1 Full text 2.2 Usando informazioni
aggiuntive sul testo3. Ranking 3.1 Ranking
sulla base del contenuto 3.2 Ranking sulla
base della struttura ipertestuale
49Ranking
- 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.
50Link Analysis
51Outline
- Early Approaches to Link Analysis
- Hubs and Authorities HITS
- Page Rank
- Stability
- Probabilistic Link Analysis
- Limitation of Link Analysis
52Primi metodi di link analysis
Assunzioni
- Gli Hyperlinks contengono informazioni che
sussumono un giudizio sulla pagina - Più links entrano in un sito, più importante è il
giudizio
- 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 limportanza relativa dei
siti parenti (cioè ad esso collegati )
53HITS - Kleinbergs Algorithm
- HITS Hypertext Induced Topic Selection
- Per ogni vertice v ? V in un sottografo di
interesse
a(v) - l authority di v h(v) - la hubness di v
- 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
54Authority e Hubness
5
2
3
1
1
6
4
7
a(1) h(2) h(3) h(4)
h(1) a(5) a(6) a(7)
55Ranking con HA
56Esempio di HITS
Trova un sottografo di partenza
- Inizia con il set di radici R 1, 2, 3, 4
- 1, 2, 3, 4 - nodi rilevanti per largomento
(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) ?
57Esempio HITS (2)
- S il grafo di partenza
- B(i) le pagine che puntano ad una pagina i di S
- (F(i) le pagine punate da una pagina i di S
- Passo 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
58HITS Example Results
Authority
Hubness
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Pesi di authority e hubness
59PageRank
- 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
60Notazione matriciale
Il calcolo di pagerank corrisponde al calcolo
delleigenvector (autovettore) principale della
matrice delle adiacenze normalizzata del web (a
meno del parametro d si ha
Matrice delle adiacenze
A
http//www.kusatro.kyoto-u.com
61Come 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)
Partiamo con P0 PR(A) 0.15
0.85 0 0.15 PR(B) 0.150,850.150.2775 PR(A
) 0.15 0.85 0.27750.385875 PR(B)0.47799..
PR(A)0.5562.. PR(B)0.6228.. Tende a 1!!
d 0.85 PR(A) (1 d) d(PR(B)/1) PR(B)
(1 d) d(PR(A)/1) Partiamo con P1
PR(A) 0.15 0.85 1 1 PR(B)
0.150,8511 già converge!!
62Problemi
- Problema del Rank Sink
- In generale, molte pagine web non hanno
inlinks/outlinks - E.g.
- nessun parente ? rank 0
- MT converge a una matrice
- la cui ultinma colonna contiene
- tutti zero
- nessun figlio ? nessuna soluzione
- MT converge ad una matrice di zeri
63PageRank è usato da Google