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.