GRUPPO 18 Alessandro Gottardi Vincenzo Laudizio Silvia Umiliacchi Michael J. Cafarella Alon Halevy...

31
Data Integration for the Relational Web GRUPPO 18 Alessandro Gottardi Vincenzo Laudizio Silvia Umiliacchi Michael J. Cafarella Alon Halevy Nodira Khoussainova * * Work done while all authors were at Google, Inc.

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