data integration for the relational web

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.

Upload: bobby

Post on 24-Feb-2016

55 views

Category:

Documents


0 download

DESCRIPTION

Michael J. Cafarella Alon Halevy Nodira Khoussainova. Data Integration for the Relational Web. *. GRUPPO 18 Alessandro Gottardi Vincenzo Laudizio Silvia Umiliacchi. * Work done while all authors were at G o o g l e , Inc. Introduzione. - PowerPoint PPT Presentation

TRANSCRIPT

Diapositiva 1

Data Integration for the Relational WebGRUPPO 18Alessandro GottardiVincenzo LaudizioSilvia UmiliacchiMichael J. Cafarella Alon Halevy Nodira Khoussainova

** Work done while all authors were at Google, Inc.

IntroduzioneCONTEXTSEARCH..Il Web un contenitore infinito di dati raw. La possibilit di COMBINARLI e RIPROPORLI presenta enormi potenzialit.OCTOPUSIntegrare 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. tuttavia

EXTEND

Stabilit dei dati: queries poste a sorgenti che non cambiano nel tempo.Una soluzione al problema rappresentata da octopus, un sistema formalizzato dagli autori.2

Introduzione

Piloti di Formula 1 e scuderie per cui hanno gareggiato nella loro carrieraFornisce degli operatori per aiutare lutente nel processo di integrazione dei dati presenti nel web:SEARCHCONTEXTEXTENDBest-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 loutputaggiungerne altricombinare gli operatori

OctopusCARATTERISTICHE

Utilizzo degli operatoriSEARCH(piloti di Formula 1)Lewis HamiltonInghilterraFelipe MassaBrasileSebastian VettelGermaniaCONTEXTJenson ButtonInghilterra19/01/1980Sebastian VettelGermania03/07/1987Rubens BarrichelloBrasile23/05/1972unionEXTEND(c1, scuderie)Lewis HamiltonInghilterra2008Felipe MassaBrasile2008Sebastian VettelGermania2008Jenson ButtonInghilterra2009Sebastian VettelGermania2009Rubens BarrichelloBrasile2009Lewis HamiltonInghilterra2008Felipe MassaBrasile2008Sebastian VettelGermania2008Jenson ButtonInghilterra2009Sebastian VettelGermania2009Rubens BarrichelloBrasile2009Lewis HamiltonInghilterra2008Mclaren MercedesFelipe MassaBrasile2008Sauber, FerrariSebastian VettelGermania2008Sauber, Toro Rosso, Red BullJenson ButtonInghilterra2009Williams, Renault, Honda, Brawn GPSebastian VettelGermania2009Sauber, Toro Rosso, Red BullRubens BarrichelloBrasile2009Jordan, Stewart, Ferrari, Honda, Brawn GPclassifica mondiale F1 2009classifica mondiale F1 2008CONTEXTproject(c=3)Nazionalit dei piloti5Come estrarre dati e tabelle rilevanti da una pagina web? Il problema consiste nel separare tabelle destinate al layout da tabelle con contenuto informativoSi usano tecniche descritte dagli stessi autori nel paper Uncovering the Relational Web:Filtrare i contenuti di una pagina HTMLWebTable SystemEstrapolare tabelle relazionali basandosi su tecniche statistiche Metadata Recovery

Estrarre informazioni dal WebLidea quella di filtrare le tabelle basandosi su tecniche statistiche:possiamo trattare il filtraggio relazionale come una macchina di apprendimento per il problema della classificazione.Abbiamo chiesto a due giudici di classificare un grande numero di tabelle HTML come relazionale o meno. Abbiamo abbinato queste classificazioni con una serie di caratteristiche estratte automaticamente per ogni tabella per formare un insieme di addestramento supervisionato per una macchina di apprendimento statistica.

Web tables System : si occupa di estrarre tabelle rilevanti da pagine webDetect Classifier : dichiara se unintestazione relazionale presente o menoReference Match: tenta di creare etichette di colonna6SEARCHRanking: consente di recuperare rapidamente le tabelle pi rilevanti per lutente.Clustering: consente di accorpare le tabelle simili in modo che siano unificabili.

RANKING+ CLUSTERINGqinsieme di tabelle estratte dal webquerylista di cluster di tabelle ordinata per rilevanza secondo q7SEARCH - SimpleRankSottopone la query q ad un motore di ricerca. Estrae le tabelle ordinatamente dagli indirizzi restituiti.

RANKSemplice 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 SEARCH - SCPRankSCPRank: 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.TSCPRank(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.qColumn AColumn BColumn CV1V3V5V2V4V6

SEARCH - SCPRankCalcolo di SCP:scp(q,c) = p(q,c)2 p(q)p(c)p(q) = totale delle pagine web contenenti qtotale delle pagine webp(q,c) = totale delle pagine web contenenti q e c totale delle pagine webDI 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 Numero totale di pagine presenti nel web?10SEARCHPERFORMANCES

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 10SimpleRank27%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.

Per gli esperimenti sono state utilizzate queries fornite dagli utenti web tramite il servizio Amazon Mechanical Turk (tramite il quale un richiedente pu pubblicare un compito che gli utenti possono svolgere dietro retribuzione).

11SEARCH - ClusteringData 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?T1T2T3T4T5C1={T1,T2,T5}C2={T3,T4}RANKRANKCalcola la distanza coseno fra i testi delle tabelle interessate.sim(T1,T2) = T1T2 = i=1..3 wi1 x wi2 T1xT2 ( i=1..3 wi1) x ( i=1..3 wi2)SEARCH - TextClusterw11w12w21w22w31w32TABELLA1TERMINE1TERMINE2TERMINE3TABELLA2Pesi tf.idf:wij = tfij x idfiTerm Frequency (normalized):tfij = frequenzaij maxi {frequenzaij}Inverse Document Frequency:idfi = log (numero tabelle numero tabelle contenenti termine i)Per tabelle anche aventi lo stesso schema, ma nessun termine in comune la similarity distance nulla [EX. Tabella dei punteggi delle nazioni T1 (A-M) ,T2(N-Z) anche se lo stesso schema]13SEARCH - SizeClusterSizeCluster: 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.abABcolonneT1T2mambmAmBlunghezzamediastringhes(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 SEARCHPERFORMANCES

ALGORITMOK= 2K= 5K= 10SizeCluster70%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 clusterUn solo cluster intorno alla tabella pi rilevante per una certa query15SEARCHALGORITMOK= 2K= 5K= 10SizeCluster3.172.822.57TextCluster3.322.852.53ColumnTextCluster3.132.792.48Valutiamo 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 risultatiPERFORMANCES

Utilizzando il giudizio dato dai giudici per ogni coppia di tabelle appartenenti allo stesso cluster16CONTEXT

ComponentiGruppoLaudizioVincenzo18GottardiAlessandro18UmiliacchiSilvia18..CONTEXT

ComponentiGruppoSessioneLaudizioVincenzo18Sessione 4GottardiAlessandro18Sessione 4UmiliacchiSilvia18Sessione 4..Aggiunge ad una tabella estratta da una pagina Web una o pi colonne usando dati presenti allinterno della pagina stessaNOTA: Bisogna far vedere che Sessione recuperato come metadato analizzando lHTML17Considera 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..

NomeMatricolaVincenzo354001Silvia340002Alessandro350003..CONTEXT - SignificantTerms

Semplice Si basa sullassunzione che un termine rilevante per una pagina sia ripetuto spesso allinterno della pagina stessa Lanalisi va oltre la pagina sorgente della tabella estratta.

Si individuano i termini significativi, sig_terms, nella pagina della tabella in esame tramite lalgoritmo Significant Terms. 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. Si riuniscono tutti i termini presenti in list_of_tables e si ordinano per frequenza, ovvero per n di tabelle in cui compaiono. Vengono restituiti solo i primi k termini.

CONTEXT - RVP

Rank2. Pagine top-k considerando come query il contenuto della riga19CONTEXT - HybridHybrid: applica entrambi gli algoritmi e restituisce i termini di contesto recuperati alternando ordinatamente i risultati.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.CONTEXTSi 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.

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 disposizioneEXTENDObiettivo: aggiungere nuove informazioni alle tabelle esistentiTabella esistente T+Indicazione della Colonna di joincRicerca+Integrazione

Topic keywordkTabella esistente + Colonne e righe aggiuntive Problemi: schema matching I dati aggiunti dallEXTEND si riferiscono allargomento k richiesto anche se sono espressi con una terminologia differente rispetto alla keyword? reference reconciliation I dati di cui stato trovato un match rappresentano lo stesso oggetto del mondo reale? schema matching: verificare che i nuovi dati aggiunti dall'operatore Extend effettivamente si concentrino sullargomento k, anche se la terminologia della pagina candidata o della tabella diversareference reconciliation: per garantire che i valori nella colonna di join c possono essere accoppiati se rappresentano lo stesso oggetto del mondo reale, anche se la rappresentazione in stringa differisce22EXTEND - JoinTestTxTyTzTnSchema matching: Motore di ricercaReference reconciliation: String edit-distance testTabelle non correlate vengono scartate!Tabella da estendere

TnTabella da estendereTabella candidataTopic keyword k+Join column cTabella risultanteSe una join-table candidata stata restituita da una ricerca sullargomento k, e la tabella sorgente T e la tabella candidata possono essere messe in join, allora ragionevole pensare che le colonne della nuova tabella sono rilevanti.Schema matching -> il motore di ricerca tiene conto dei sinonimi (Thresauri) e degli abbreviativi (Stemming)Edit distance test -> pruning dei risultati ottenuti dal motore di ricerca [Ex. Alon Halevy - Alon Levy]23EXTEND - JoinTestAlgoritmo semplice: Query sul Motore di ricercaSeleziona la tabella candidata che ha il punteggio pi elevatoProblemi:Dati ottenuti mediante la ricerca possono essere sporchi ed incompletiDifficilmente possibile eseguire un join perfettoSoluzione: join-threshold testsi utilizza la distanza di Jaccard per misurare la compatibilit trai valori presenti nella colonna c della tabella T edi valori presenti in ogni colonna di ogni tabella candidata TSe 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 TnEXTEND - MultiJoinCosa potrebbe farebbe un utente per aggiungere informazioni ad una tabella?Selezionare uno ad uno il contenuto di una riga di una tabellaEseguire una serie di ricerche sottoponendo al motore di ricercaIl contenuto di ogni riga + lo specifico argomento (di cui si vogliono ottenere informazioni)

Lavoro oneroso: esaminare un numero elevato di tabelle risultanti dalla ricercacontrollare se esiste una tabella cheAbbia rilevanza nei confronti dellargomentoPossa essere messa in join con una specifica colonna della tabella di partenza

Lalgoritmo MultiJoin intende automatizzare questo processo

Schema matching: Algoritmo column-matching clusteringReference reconciliation: Motore di ricerca

Per la reference reconciliation viene utilizzato direttamente il motore di ricerca!!!!25EXTEND - MultiJoin

AlgoritmoJoin column c + Topic keyword k

RankScoreScoreScoreAd 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 clusterIndica quante tuple distinte della tabella T producono i membri del cluster(Tale valore viene normalizzato)

Risultato: viene scelto il cluster con lo score di copertura pi elevatoMultiJoin risolve il problema dello schema matching attraverso l'algoritmo di clustering column-matching descritto nella sezione 3.1.2.

Tabelle distinte relative allo stesso argomento dovrebbero apparire nello stesso cluster

26NOTA: non tutte le tabelle sono estendibili!-> i dati non esistono o non sono recuperabili tramite il WEBSi applica loperatore SEARCH ad un sottoinsieme delle query di testPer ogni query, si utilizza la tabella pi rilevante estratta dal Web come sorgente per loperatore EXTENDSi sceglie una colonna c di join ed un topic kSi calcola la percentuale delle righe della tabella T alle quali vengono aggiunte correttamente nuove informazioni rilevanti

EXTENDPERFORMANCES

JoinTestMultiJoinTuple per cui sono stati recuperati dati aggiuntivi43%100%Tuple estese (in media)60%33%Valori aggiuntiviDipende dalla tabella45,5 (in media)non tutte le tabelle sono estendibili -> i dati non esistono o non sono recuperabili tramite il WEB27JoinTest cerca una tabella singola che copra tutte le celle della colonna di joinTrova un risultato in 3 casi su 7In questi casi solo per il 60% delle tuple stato possibile effettuare un join

MultiJoincerca una estensione per ogni singola tupla della colonna di joinTrova informazioni addizionali per ogni singola tupla!In media il 33% di queste pu essere esteso:con informazioni presenti nelle tuple appartenenti al Cluster con maggiore copertura

tupla estesa (in media) 45,5 valori di estensione

Quale algoritmo?Dipende dalla natura dei dati! EXTENDPERFORMANCES

I Cluster possono avere pi tabelle che contengono il valore della cella della colonna di join -> in media 45,528Possibili 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 MultiJoinCONTEXT: 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 futuriIn 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 lutenteSono 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 dellutenteAlternative? Eseguire il lavoro manualmente

ConclusioniGrazie per lattenzione

Gruppo 18

SilAleVins