TRACCIARE IL WEB

Transcript

TRACCIARE IL WEB
TRACCIARE IL WEB
CRAWLER
Il primo problema da affrontare per tracciare il Web
è la costruzione di Crawler scalabili
per scalabile si intende: quale è il numero P di
pagine oltre il quale il Crawler si blocca
questo dipenderà da:
strategie di percorrenza dei collegamenti,
evitando di finire in punti morti
dalle risorse computazionali utilizzate
ARCHITETTURA
L’architettura base di un Crawler è composta da:
una componente che salvi la lista di URL da
analizzare
una componente che risolva le URL in IP
una componente che scarichi i documenti tramite
HTTP
una componente che analizzi i link e estragga URL
una componente che verifichi le URL già visitate
ARCHITETTURA
Allan Heydon and Marc Najork, Mercator: A Scalable,
Extensible Web Crawler, 1999.
ARCHITETTURA
Input Stream
L’IS deve gestire diversi processi in parallelo
può essere fatto parallelizzando vari processi
può essere fatto più semplicemente con gestione di
processi IO asincroni
URL Frontier
Si può seguire un approccio breath-first ad esempio
con una code FIFO
da molti server è ritenuto inaccettabile tenere attive
un alto numero di connessioni da uno stesso host,
questo comportamento viene quindi punito
L’alternativa è implementare un processo deep-first con
code FILO oppure gestendo in parallelo una molteplicità
di code FIFO
Molte URL devono essere memorizzate e questo
obbliga a servirsi della memoria di massa
Scalabilità
L’obiettivo di ogni crawler è di partire da un insieme
iniziale di URL e raggiungere il numero sempre più
ampio di URL
Limiti rispetto a questo numero, o più in particolare,
limiti rispetto al numero di URL gestibili per un HOST
sono limiti di scalabilità
Scalabilità
Limiti rispetto a questo numero, o più in particolare,
limiti rispetto al numero di URL gestibili per un HOST
sono limiti di scalabilità
Questi limiti sono legati a due aspetti
limiti sulle liste di memoria (DNS, URL seen, URL
frontier)
limiti nella gestione di circoli viziosi
link simbolici, circoli creati ad arte, spam, host
molto ampi dai quali non si riesce ad uscire
Strategie di Navigazione
Le strategie di navigazione definiscono le
caratteristiche di un Crawler: le strutture a cui si
adatta meglio
Strategia di Selezione
Strategia di Aggiornamento
Strategia di Parallelizzazione
Strategia per il rispetto della politeness Web
Strategia di Selezione
Esistono diversi approcci
Breadth-first
Indegree (Backlink-count)
PageRank
Path-ascending
Strategia di Aggiornamento
Due sono le misure per definire l’aggiornamento
Freshness
Age
Politiche di aggiornamento possono essere:
Uniforme
Proporzionale alla velocità di aggiornamento
Proporzionale alla rilevanza della pagina
Strategia di
Paralelizzazione
È importante trovare l’equilibro tra parallelizzare, e
quindi usare meglio le risorse computazionali, e
controllare il processo di navigazione, visto che due
processi paralelizzati potrebbero lavorare sulle stesse
risorse
Strategia di Politeness
Spesso i Web Server implementano delle politiche di
politeness, a volte definite nei file robot.txt
bloccare host che richiedano un carico di lavoro
eccessivo
definire quali parti del sito non sono scaricabili da
un robot
Oltre la Scalbilità
Se inizialmente si è pensato alle strategie in termini
di scalabilità oggi si nota come queste influenzino
anche la struttura della rete tracciata
la dimensione della porzione IN tracciata dipende
molto dalle regole dei crawler
la capacità di navigare risorse con collegamenti
reciproci dipende molto dalle regole dei crawler
Serrano, Vespignani et al., Decoding the Structure of the
WWW, 2007.
Focused Crawler
È possibile anche scegliere di navigare solo risorse
che siano inerenti ad uno stesso ambito
URL (dominio, lunghezza, parametri, ...)
(rilevanza)
similarità del contenuto (ricerca locale)
Chakrabarti, van den Berg, and Dom, Focused crawling: a
new approach to topic-specific web resource discovery, 1999.
Una prova
wget -r -l depth -H -w seconds url
reperimento ricorsivo (opzione -r) Fino ad una
distanza massima dall'url iniziale pari a depth link
(opzione -l depth)
attraversando host diversi (opzione -H)
attendendo seconds secondi prima di ogni
tentativo(opzione -w seconds)
Focused Crawler
Tradizionalmente la similarità nel contenuto è stata
gestita nelle applicazioni di crawling in modo leggero,
per problemi di efficienza
similarità rispetto ad una query:
URL
vettori di parole
testo delle ancore o prossimo alle ancore
Focused Crawler e Reti
Queste tecniche sono basate sull’uso di informazione
contenuta solo nei documenti analizzati
Lo studio delle reti ci spinge invece ad analizzare una
comunità a partire dal confronto tra strutture locali e
strutture globali della rete
M. Diligenti, et al., Focused Crawling Using Context
Graphs, 2000.
Centralità nelle reti
Nello studio delle reti complesse la nozione di
centralità può essere importante per:
giudicare la rilevanza di nodi o aree delle rete
attribuire una misura di distanza fra nodi o aree
delle rete
identificare il grado di coesione di un area della
rete
Densità
Si può parlare di densità di un grafo G = (N, A) come
di misura del rapporto tra gli archi in A e il massimo
numero di archi possibili tra i nodi di N
Reti non direzionate (grafo non
orientato
Reti direzionate (grafo
orientato)
2|A|
N (N − 1)
|A|
N (N −1)
La densità è pari a 1 se tutti i nodi sono connessi tra
loro, a volte chiamata clique
Comunità - Cluster ...
Si può parlare di una cluster di un grafo G = (N,
A) se esiste un sottografo i cui nodi S ⊂ N e gli
archi As connettono i nodi S:
con una densità maggiore che i nodi non in S
quindi i numero di connessioni verso non S è
minore che verso S
Se S è un cluster allora tutti i sottografi del
cluster hanno più connessioni coi loro complementi
all’interno di S che con nodi all’esterno di S
si può quindi parlare di gerarchia di cluster
Modelli crisp o multivalenti
Molti modelli danno una definizione di cluster che è
crisp, meglio sarebbe utilizzare modelli che consentano
una definizione multivalente di appartenenza alla
comunità
Modelli crisp o multivalenti
Definizioni forti e deboli
Una definizione forte di comunità richiede che il
grado dei nodi considerando le connessioni all’interno
della comunità sia maggiore che all’esterno
kiintra > kiinter , ∀i ∈ G
Definizioni forti e deboli
Una definizione più debole di comunità richiede la
somma dei gradi all’interno della comunità sia maggiore
che all’esterno
!
!
kiintra >
kiinter , ∀i ∈ G
i
i
Definizioni forti e deboli
Una ulteriore definizione è quella così detta di
mdularità, nella quale si esprime il rapporto tra il
numero di archi in una comunità con il numero archi di
una rete casuali
!
i,j ! " i,j
!
i,j " i,j
È una misura usata per ottenere un valore minimo di
credibilità delle comunità
Si possono così definire dei valori tipici (che vanno
solitamente da 0.3 a 0.7)
Archi espliciti o non
Nel momento in cui definiamo una rete di relazioni
possiamo servirci di relazioni implicite o esplicite
proprietà
distanze
superamento di soglie
grafi di navigazione
Web 2.0: risorse, tag
Similarità Strutturale
Un altro modo per determinare se due nodi
appartengono ad uno stesso gruppo è quello di
valutarne la similarità strutturale
Una tipica misura di similarità è la misura di Jaccard
o la sua generalizzazione
|A ∩ B|
S(A, B) =
|A ∪ B|
|F (n) ∩ F (m)|
S(A, B) =
|F (n) ∪ F (m)|
Similarità Strutturale
La generalizzazione della similarità è importante
perché ci consente di superare i limiti tipici di una
analisi di similarità, cioè la limitazione ad una
ricerca locale, ad analizzare solo i nodi vicini
Per questo si usano due misure derivate dalla
biblioteconomia
Similarità Strutturale
Per questo si usano due misure derivate dalla
biblioteconomia
indice di cocitazione
indice di citazioni comuni
Architettura del Crawler
Esempio Algoritmo
8
9
7
5
6
10
1
2
11
3
0
4
ID
NI index
10
20.68
2
19.61
6
11.38
1
10.28
7
2.06
0
1.73
9
0.99
8
0.99
4
0.75
5
0.00
11
0.00
D. Katsaros, G. Pallis, K. Stamos, A. Vakali, A.
Sidiropoulos, and Y. Manolopoulos. Cdns content
outsourcing via generalized communities, 2009.