Transcript of GRUPPO 18 Alessandro Gottardi Vincenzo Laudizio Silvia Umiliacchi Michael J. Cafarella Alon Halevy...
- Slide 1
- GRUPPO 18 Alessandro Gottardi Vincenzo Laudizio Silvia
Umiliacchi Michael J. Cafarella Alon Halevy Nodira Khoussainova * *
Work done while all authors were at Google, Inc.
- Slide 2
- Introduzione CONTEXT SEARCH .. Il Web un contenitore infinito
di dati raw. La possibilit di COMBINARLI e RIPROPORLI presenta
enormi potenzialit. Integrare dati unoperazione complessa e onerosa
con i sistemi attuali in quanto: Assumono che le sorgenti rilevanti
siano definite a priori. Ipotizzano di avere dati stabili.
Ipotizzano di avere dati puliti e pronti alluso. La semantica dei
dati spesso implicita nella pagina in cui essi sono presenti.
EXTEND
- Slide 3
- Introduzione
- Slide 4
- Fornisce degli operatori per aiutare lutente nel processo di
integrazione dei dati presenti nel web: SEARCH CONTEXT EXTEND
Best-effort operators: non un solo output corretto a fronte di un
dato input, ma quello di qualit massima (simile al ranking
effettuato dai motori di ricerca) Lutente pu interagire con il
sistema: modificare loutput aggiungerne altri combinare gli
operatori Octopus CARATTERISTICHE
- Slide 5
- Utilizzo degli operatori SEARCH(piloti di Formula 1) Lewis
HamiltonInghilterra Felipe MassaBrasile Sebastian VettelGermania
CONTEXT Jenson ButtonInghilterra19/01/1980 Sebastian
VettelGermania03/07/1987 Rubens BarrichelloBrasile23/05/1972 union
EXTEND(c1, scuderie) Lewis HamiltonInghilterra2008 Felipe
MassaBrasile2008 Sebastian VettelGermania2008 Jenson
ButtonInghilterra2009 Sebastian VettelGermania2009 Rubens
BarrichelloBrasile2009 Lewis HamiltonInghilterra2008 Felipe
MassaBrasile2008 Sebastian VettelGermania2008 Jenson
ButtonInghilterra2009 Sebastian VettelGermania2009 Rubens
BarrichelloBrasile2009 Lewis HamiltonInghilterra2008Mclaren
Mercedes Felipe MassaBrasile2008Sauber, Ferrari Sebastian
VettelGermania2008Sauber, Toro Rosso, Red Bull Jenson
ButtonInghilterra2009Williams, Renault, Honda, Brawn GP Sebastian
VettelGermania2009Sauber, Toro Rosso, Red Bull Rubens
BarrichelloBrasile2009Jordan, Stewart, Ferrari, Honda, Brawn GP
classifica mondiale F1 2009 classifica mondiale F1 2008 CONTEXT
project(c=3)
- Slide 6
- Come estrarre dati e tabelle rilevanti da una pagina web? Il
problema consiste nel separare tabelle destinate al layout da
tabelle con contenuto informativo Si usano tecniche descritte dagli
stessi autori nel paper Uncovering the Relational Web: Filtrare i
contenuti di una pagina HTML WebTable System Estrapolare tabelle
relazionali basandosi su tecniche statistiche Metadata Recovery
Estrarre informazioni dal Web
- Slide 7
- SEARCH Ranking: consente di recuperare rapidamente le tabelle
pi rilevanti per lutente. Clustering: consente di accorpare le
tabelle simili in modo che siano unificabili. RANKING + CLUSTERING
RANKING + CLUSTERING insieme di tabelle estratte dal web query q
lista di cluster di tabelle ordinata per rilevanza secondo q
- Slide 8
- SimpleRank SEARCH - SimpleRank Sottopone la query q ad un
motore di ricerca. Estrae le tabelle ordinatamente dagli indirizzi
restituiti. RANKRANK RANKRANK Semplice Il search engine effettua il
ranking sulla base di tutto il contenuto di una pagina: non sempre
a pagine rilevanti corrispondono tabelle rilevanti. In caso vi
siano pi dataset allinterno di una stessa pagina il ranking segue
lordine di presentazione
- Slide 9
- SCPRank SEARCH - SCPRank SCPRank qc SCPRank: data la query q
calcola per ogni cella c di una tabella un valore di Simple
Conditional Probability. Lo score di una tabella pari al massimo
score di una delle sue colonne, calcolato come somma dei valori di
SCP per cella. Unidea migliore: classificare non lintera pagina, ma
le tabelle estratte. T SCPRank(T) (SCP(q,V1)+SCP(q,V2),
max(SCP(q,V3)+SCP(q,V4)), (SCP(q,V5)+SCP(q,V6)) SCP(q,c) misura
quanto pi probabile che un documento contenente c contenga anche q,
rispetto ad una stringa arbitrariamente scelta. Column AColumn
BColumn C V1V3V5 V2V4V6
- Slide 10
- SCPRank SEARCH - SCPRank Calcolo di SCP: scp(q,c) = p(q,c) 2
p(q)p(c) p(q) = totale delle pagine web contenenti q totale delle
pagine web p(q,c) = totale delle pagine web contenenti q e c totale
delle pagine web DI QUANTI TOKEN SONO COMPOSTI q E c? QUANTE CELLE
IN UNA TABELLA? QUANTE PAGINE NEL WEB? Si calcolano gli score solo
per le prime r righe di ogni tabella Si considera solo un
sottoinsieme del Web
- Slide 11
- SEARCH PERFORMANCES Si richiesto a due giudici (selezionati
casualmente da Amazon Mechanical Turk) di valutare la rilevanza di
ogni tabella rispetto ad una determinata query con un voto compreso
tra 1 e 5. Una tabella considerata rilevante se entrambi i giudici
hanno espresso un voto >= 4. Misuriamo la qualit di ogni
algoritmo di ranking calcolando la percentuale di risultati
rilevanti nei primi 2, 5, 10 risultati ottenuti. ALGORITMOTOP 2TOP
5TOP 10 SimpleRank27%51%73% SCPRank47%64%81% SCPRank ha
performances nettamente superiori a SimpleRank. Nei primi 2
risultati troviamo tabelle rilevanti circa la met delle volte. Nei
primi 10 risultati troviamo tabelle rilevanti in pi dell80% dei
casi.
- Slide 12
- SEARCH - Clustering Data la lista ordinata delle tabelle, per
ogni tabella T viene calcolata la distanza di similarit con le
altre. Se tale distanza maggiore di una determinata soglia le
tabelle fanno parte dello stesso cluster. I cluster cos ottenuti
vengono poi ordinati calcolando per ognuno la media dei punteggi di
rilevanza delle tabelle che lo compongono. Come definire la
funzione di distanza di similarit? T1 T2 T3 T4 T5 C1={T1,T2,T5}
C2={T3,T4} RANKRANK RANKRANK RANKRANK RANKRANK
- Slide 13
- Calcola la distanza coseno fra i testi delle tabelle
interessate. sim(T1,T2) = T1 T2 = i=1..3 wi1 x wi2 T1 x T2 ( i=1..3
wi1) x ( i=1..3 wi2) TextCluster SEARCH - TextCluster w11w12 w21w22
w31w32 TABELLA1 TERMINE1 TERMINE2 TERMINE3 TABELLA2 Pesi tf.idf: w
ij = tf ij x idf i Term Frequency (normalized): tf ij = frequenza
ij max i {frequenza ij } Inverse Document Frequency: idf i = log
(numero tabelle numero tabelle contenenti termine i) Per tabelle
anche aventi lo stesso schema, ma nessun termine in comune la
similarity distance nulla
- Slide 14
- SizeCluster SEARCH - SizeCluster SizeCluster SizeCluster:
calcola un similarity score fra colonne che valuta la differenza
fra le lunghezze medie delle loro stringhe. La distanza di
similarit fra tabelle la somma dei punteggi del miglior match fra
colonne. Un diverso approccio: stringhe dello stesso tipo avranno
lunghezza simile. abABcolonne T1T2 mambmAmB lunghezza media
stringhe s(aA) = score (ma-mA) s(aB) = score (ma-mB) s(bA) = score
(mb-mA) s(bB) = score (mb-mB) (s(aA)+s(bB)), (s(aB)+s(bA))
ColumnTextCluster: come SizeCluster, ma calcola lo score fra
colonne utilizzando la distanza coseno. Similarit(T1,T2) = max
- Slide 15
- SEARCH PERFORMANCES ALGORITMOK= 2K= 5K= 10 SizeCluster70%88%97%
TextCluster67%85%91% ColumnTextCluster70%88%97% Misuriamo la qualit
degli algoritmi di clustering calcolando la percentuale di
raggruppamenti di dimensione k in cui esiste almeno una tabella
simile a quella giudicata pi rilevante per una determinata query.
Si richiesto a due giudici (selezionati casualmente da Amazon
Mechanical Turk) di valutare la similarit di due tabelle con un
voto compreso tra 1 e 5. Due tabelle sono considerate simili se
entrambi i giudici hanno espresso un voto >= 4. Anche quando il
cluster ha soli due elementi la qualit interessante nel 70% dei
casi Le performances aumentano con laumentare delle dimensioni del
cluster
- Slide 16
- SEARCH ALGORITMOK= 2K= 5K= 10 SizeCluster3.172.822.57
TextCluster3.322.852.53 ColumnTextCluster3.132.792.48 Valutiamo
inoltre la qualit degli algoritmi di clustering calcolando il
valore medio di similarit fra le tabelle appartenenti allo stesso
raggruppamento al variare della dimensione del cluster k.
Performances simili per i vari algoritmi Anche tecniche semplici
come SizeCluster permettono di ottenere buoni risultati
PERFORMANCES
- Slide 17
- CONTEXT ComponentiGruppo Laudizio Vincenzo 18 Gottardi
Alessandro 18 Umiliacchi Silvia 18 . CONTEXT
ComponentiGruppoSessione Laudizio Vincenzo 18 Sessione 4 Gottardi
Alessandro 18 Sessione 4 Umiliacchi Silvia 18 Sessione 4 . Aggiunge
ad una tabella estratta da una pagina Web una o pi colonne usando
dati presenti allinterno della pagina stessa
- Slide 18
- K Considera la pagina web da cui stata estratta la tabella
sorgente e restituisce in output i K termini con score tf-idf pi
elevato presenti nella pagina ma NON nella tabella.
http://www.ing.unibo.it/Studenti Studenti della facolt di
ingegneria nellanno 2009 2009.. http://www.ing.unibo.it/Studenti
Studenti della facolt di ingegneria nellanno 2009 2009..
NomeMatricola Vincenzo354001 Silvia340002 Alessandro350003 .
SignificantTerms CONTEXT - SignificantTerms Semplice Si basa
sullassunzione che un termine rilevante per una pagina sia ripetuto
spesso allinterno della pagina stessa
- Slide 19
- Lanalisi va oltre la pagina sorgente della tabella estratta. 1.
Si individuano i termini significativi, sig_terms, nella pagina
della tabella in esame tramite lalgoritmo Significant Terms. 2. Per
ogni riga della tabella : viene effettuata una ricerca web e
vengono memorizzate le prime top-k pagine, da cui vengono estratte
le tabelle in esse presenti. Vengono aggiunte ad una lista
list_of_tables solo le tabelle che contengono almeno uno dei
termini significativi presenti in sig_terms. 3. Si riuniscono tutti
i termini presenti in list_of_tables e si ordinano per frequenza,
ovvero per n di tabelle in cui compaiono. 4. Vengono restituiti
solo i primi k termini. RVP CONTEXT - RVP RankRank
- Slide 20
- Hybrid CONTEXT - Hybrid Hybrid: Hybrid: applica entrambi gli
algoritmi e restituisce i termini di contesto recuperati alternando
ordinatamente i risultati. SignificantTermsRVP SignificantTerms e
RVP sono complementari: Significant Terms individua termini di
contesto presenti allinterno della pagina che ospita la tabella.
RVP individua termini di contesto per una tabella effettuando una
ricerca sul web.
- Slide 21
- CONTEXT Si richiesto a due degli autori di analizzare
manualmente le pagine sorgenti delle tabelle pi rilevanti per ogni
query al fine di individuare termini di contesto ritenuti utili.
Termini selezionati da entrambi gli autori fanno parte del
test-set. Per ogni algoritmo stata calcolata la percentuale di
tabelle per le quali stato individuato un vero valore di contesto
tra i primi K (k=1,2,3) generati dallalgoritmo stesso. 80% K Hybrid
decora una tabella con termini utili pi dell80% delle volte con K=
3. Significant Terms efficiente e semplice da implementare. RVP non
supera Significant Terms, ma comunque utilizzato per implementare
lalgoritmo ibrido, che risulta essere il migliore. PERFORMANCES RVP
richiede molte ricerche web la scelta tra Significant Terms e
Ibrido dipende dalle risorse a disposizione
- Slide 22
- EXTEND Obiettivo: Obiettivo: aggiungere nuove informazioni alle
tabelle esistenti T Tabella esistente T + Indicazione della Colonna
di joinc Ricerca + Integrazione Ricerca + Integrazione Topic
keywordk Tabella esistente + Colonne e righe aggiuntive Problemi:
schema matching schema matching k I dati aggiunti dallEXTEND si
riferiscono allargomento k richiesto anche se sono espressi con una
terminologia differente rispetto alla keyword? reference
reconciliation reference reconciliation I dati di cui stato trovato
un match rappresentano lo stesso oggetto del mondo reale?
- Slide 23
- JoinTest EXTEND - JoinTest Tx Ty Tz Tn Schema matching: Motore
di ricerca Motore di ricerca Reference reconciliation: String
edit-distance test String edit-distance test Tabelle non correlate
vengono scartate! Tabella da estendere Tn Tabella candidata Topic
keyword k + Join column c Tabella risultante
- Slide 24
- JoinTest EXTEND - JoinTest Algoritmo semplice: Algoritmo
semplice: 1. Query sul Motore di ricerca 2. Seleziona la tabella
candidata che ha il punteggio pi elevatoProblemi: Dati ottenuti
mediante la ricerca possono essere sporchi ed incompleti
Difficilmente possibile eseguire un join perfetto Soluzione:
join-threshold test Jaccard si utilizza la distanza di Jaccard per
misurare la compatibilit tra cT i valori presenti nella colonna c
della tabella T ed T i valori presenti in ogni colonna di ogni
tabella candidata T T Se J > threshold T viene considerata
joinable Le tabelle che superano il test sono ordinate in base al
rank fornito dal motore di ricerca nel momento in cui si esegue la
query Tn
- Slide 25
- MultiJoin EXTEND - MultiJoin Cosa potrebbe farebbe un utente
per aggiungere informazioni ad una tabella? 1. Selezionare uno ad
uno il contenuto di una riga di una tabella 2. Eseguire una serie
di ricerche sottoponendo al motore di ricerca Il contenuto di ogni
riga + lo specifico argomento (di cui si vogliono ottenere
informazioni) Lavoro oneroso: esaminare un numero elevato di
tabelle risultanti dalla ricerca controllare se esiste una tabella
che Abbia rilevanza nei confronti dellargomento Possa essere messa
in join con una specifica colonna della tabella di partenza
MultiJoin intende automatizzare questo processo Lalgoritmo
MultiJoin intende automatizzare questo processo Schema matching:
Algoritmo column-matching clustering Algoritmo column-matching
clustering Reference reconciliation: Motore di ricerca Motore di
ricerca
- Slide 26
- MultiJoin EXTEND - MultiJoin Algoritmo Join column c + Topic
keyword k RankRank RankRank Score Ad ogni aggiunta di un nuovo
membro: viene eseguito nuovamente il calcolo dello score Lo score
calcolato tenendo conto del rank della tabella appena inserita e
dello score del cluster T Indica quante tuple distinte della
tabella T producono i membri del cluster (Tale valore viene
normalizzato) score di copertura Risultato: viene scelto il cluster
con lo score di copertura pi elevato
- Slide 27
- NOTA: NOTA: non tutte le tabelle sono estendibili! -> i dati
non esistono o non sono recuperabili tramite il WEB Si applica
loperatore SEARCH ad un sottoinsieme delle query di test Per ogni
query, si utilizza la tabella pi rilevante estratta dal Web come
sorgente per loperatore EXTEND ck Si sceglie una colonna c di join
ed un topic k T Si calcola la percentuale delle righe della tabella
T alle quali vengono aggiunte correttamente nuove informazioni
rilevanti EXTEND PERFORMANCES JoinTestMultiJoin Tuple per cui sono
stati recuperati dati aggiuntivi 43%100% Tuple estese (in media)
60%33% Valori aggiuntivi Dipende dalla tabella 45,5 (in media)
- Slide 28
- JoinTest cerca una tabella singola che copra tutte le celle
della colonna di join 3 casi su 7 Trova un risultato in 3 casi su 7
60% In questi casi solo per il 60% delle tuple stato possibile
effettuare un joinMultiJoin cerca una estensione per ogni singola
tupla della colonna di join Trova informazioni addizionali per ogni
singola tupla! 33% In media il 33% di queste pu essere esteso:
Cluster con informazioni presenti nelle tuple appartenenti al
Cluster con maggiore copertura 45,5 tupla estesa (in media) 45,5
valori di estensione Quale algoritmo? Dipende dalla natura dei
dati! EXTEND PERFORMANCES
- Slide 29
- Possibili miglioramenti degli algoritmi in termini di
prestazioni e/o qualit: EXTEND: JoinTest e MultiJoin potrebbero
essere combinati, ovvero si potrebbe applicare per primo JoinTest
e, qualora esso dovesse fallire, si procede con MultiJoin CONTEXT:
RVP richiede molte ricerche web si potrebbero esplorare strutture
di indicizzazione alternative per ridurne il numero Come
indicizzare? Aggiungere semantica agli operatori es. EXTEND:
individuazione della scuderia corrente di un pilota di F1 Sviluppi
futuri
- Slide 30
- In breve: Octopus un sistema che aiuta lutente nellintegrazione
di dati provenienti da molteplici sorgenti strutturate presenti nel
Web. stato presentato il set degli operatori di base che consentono
al sistema di svolgere lavoro utile per lutente Sono stati
descritti gli algoritmi che implementano tali operatori in maniera
efficace con relative performances. Dagli esperimenti si pu
concludere che : con tutti e tre gli operatori si possono ottenere
risultati di buona qualit il sistema migliora la produttivit
dellutente Alternative? Eseguire il lavoro manualmente
Conclusioni
- Slide 31
- Grazie per lattenzione Gruppo 18 Sil Ale Vins