SlideShare a Scribd company logo
1 of 35
CrowdDB: Answering Queries
with Crowdsourcing
Authors: Michael Franklin, Donald Kossmann, Tim Kraska, Sukriti
Ramesh, Reynold Xin

Publication Date: June 2011

Conference: ACM SIGMOD Conference




                                                         Viviana Murello
                                                      Scienze delle Reti
                                                         a.a. 2010/2011
Riassunto 1
   Alcune query non possono essere
    soddisfatte dai database tradizionali
   l’elaborazione di tali query hanno
    bisogno di input da parte delle
    persone per
     Snellire l’elaborazione
     Per i confronti
     Per la classificazione
     O aggregazione dei risultati
Riassunto 2
   I CrowdDB usano l’input umano
    fornito tramite crowsorcing per
    rispondere alle query
   Descriviamo alcune caratteristiche
    di un CrowdDB e alcuni esperimenti
    fatti usando Amazon Mechanical
    Turk
RDBMS
   Le assunzioni di base dei RDBMS
    sono:
     Correttezza
     Completezza
     Non ambiguità
    Dei dati.

    Quando queste assunzioni mancano il
     sistema fornisce risposte sbagliate
     oppure non ne fornisce affatto.
Potere alle persone
   Il sistema fornisce risposte sbagliate
       Es. SELECT market_capitalization FROM
        company WHERE name = "I.B.M.";
          I.B.M. non è stato inserito

          I.B.N.

          International Business Machine

   Altro esempio di queries che non trovano
    risposte con gli attuali RDBMS:
       Es. stabilire quanto un’immagine è rilevante
        per un certo argomento
Potere alle persone 2
   2 problemi
     Close World Assuption: le informazioni
      che non sono inserite nel DB sono
      considerate false o innesistenti
     RDBMS sono estremamente letterali: si
      aspettano valori validi
CrowdDB
   Sfruttare Human Computation per
    risolvere problemi
   AMT (Amazon’s Mechanical Turk)

   Trovare nuovi dati
       RDBMS: limitato dalla Closed World Assuption
       Persone: aiutate da strumenti sono brave nel
        trovare nuove informazioni
   Confrontare dati
       RDBMS: algoritmi di confronto sono difficili o
        impossibili
       Persone: sono qualificate a fare confronti
Crowdsourcing
   Amazon’s Mechanical Turk
       Assignment (compito)
       HIT
       HIT Group

   API di Mechanical Turk
       createHIT(title, description, question, keywords, reward,
        duration,maxAssignments, lifetime)  HitID
       getAssignmentsForHIT(HitID)list(asnId, workerId ,
        answer)
       approveAssignment(asnID) / rejectAssignment(asnID)
       forceExpireHIT(HitID)
Considerazione sulla progettazione del
CrowdDB
   La progettazione del CrowdDB è influenzata da:
       Prestazioni e variabilità: le persone e le macchine
        differiscono in velocità e qualità.
       Attività di progettazione e ambiguità: le persone
        richiedono UI per evitare che certe istruzioni
        vengano interpretate in modo sbagliato.
       Affinità ed apprendimento: l’insieme dei lavoratori
        sviluppa relazioni con i richiedenti e competenze per
        certi HITs
       Quantità di lavoratori relativamente piccola:
       Mondo chiuso vs Mondo aperto: ogni operazione
        potrebbe ritornare un numero illimitato di risposte
        influenzando così l’ottimizzazione della query, i costi
        di esecuzioni e la qualità della risposta.
Progettazione ed implementazione del
CrowdDB 1

   crowdDB usa i dati
    memorizzati
    quando possibile
    altrimenti usa
    interroga la folla
   Risultati ottenuti
    vengono
    memorizzati
Progettazione ed implementazione del
CrowdDB 2
   Sulla sx ci sono i
    componenti
    tradizionali
   Sulla dx i nuovi
    componenti per
    interagire con la folla
       Turker Relationship
        Management
       User Interface
        Management
       Hit manager:
        controlla iterazioni
        tra CrowdDB e
        piattaforma di
        crowdsourcing (AMT)
CrowdSQL
   CrowdSQL è un’estensione dell’SQL che
    supporta il crowdsourcing nei casi d’uso
    che coinvolgono dati mancanti e
    comparazioni soggettive.
   Attributi specifici di una tupla, intere tuple
    o intere tabelle possono essere
    crowdsourced.
   Gestiamo i casi di dati mancanti con la
    parola chiave CROWD.
   Per i confronti soggettivi e ordinamenti
    usiamo rispettivamente le parole chiave
    CROWDEQUAL e CROWDORDER
CrowdSQL – esempi
   Crowdsorced Colum
       CREATE TABLE Department ( university STRING, name
        STRING, url CROWD STRING, phone STRING, PRIMARY KEY
        (university,name) );
       Se un nuovo dipartimento viene creato automaticamente
        spesso non viene inserita direttamete l’url, ma questa è
        disponibile in altra forma (crowdsourced)
   Crowdsorced Table
       CREATE CROWD TABLE Professor (name STRING PRIMARY
        KEY, email STRING UNIQUE, university STRING,
        department STRING, FOREIGN KEY (university,
        department) REF Department(university,name));
       CrowdDB si aspetta che ci possono essere altri professori per
        il dipartimento che possono essere reperiti tramite
        crowdsourcing.
CrowdSQL – esempi e considerazioni
   CROWDEQUAL
       Questa funzione prende 2 parametri in input
        (lvalue,rvalue) e viene usata per decidere se 2 valori sono
        uguali ~=. La seguente query richiede nomi diversi per
        identificare “computer science” nel DB
       SELECT profile FROM department WHERE name ~=
        "CS";
   CROWDORDER
       Questa funzione è usata per classificare o ordinare i
        risultati.
       CREATE TABLE picture (p IMAGE, subject STRING);
        SELECT p FROM picture WHERE subject = "Golden
        Gate Bridge“ ORDER BY CROWDORDER(p,"Which picture
        visualizes better %subject");
CrowdSQL
   CNULL è equivalente al NULL del SQL
    standard ma indica che il valore può
    essere crowdsourced quando viene usato
    per la prima volta.
   CNULL è generato automaticamente per
    le istruzioni di INSERT (è il valore di
    default per le colonne crowd)
   Se un attributo viene inizializzato a NULL
    il crowdsourcing non avrà effetto.
CrowdSQL
   SELECT * FROM Professor WHERE email LIKE
    “%berkeley%” AND dept = “Math”;
   La query richiede email e il dipartimento (se
    hanno valore CNULL) di tutti i professori
    individuati dalla condizione where
   Le specifiche del CrowdSQL prevedono che le
    tabelle siano aggiornate quando vengono
    interrogate le persone.
   Gli aggiornamenti e gli inserimenti fanno parte
    della stessa transazione e vengono eseguiti prima
    dell’interrogazione.
CrowdDB – in pratica
   Dato che si passa all’assunzione di mondo aperto
    il costo per ogni query potrebbe essere illimitato
       Non è chiaro il numero di tuple che possono essere
        coinvolte per eseguire completamente la query
       Clausola LIMIT per limitare il numero di tuple che
        possono essere ritornate dalle interrogazioni
   Una futura estensione del CrowdDB potrebbe
    includere
       il controllo della derivazione dei dati (ad esempio
        per escludere i dati forniti da un utente che si sa
        essere uno spammer, o per sapere la data di
        inserimento per sapere quando un dato non è più
        valido)
       controllo sulla pulizia dei dati in quanto in una
        tabella di tipo crowd può succedere che la chiave
        primaria si un dato crowdsourced.
Generazione delle interfaccia utente
   La chiave del successo per il
    crowdsourcing è avere delle
    interfacce utenti efficaci.
   Alla compilazione il crowdDB crea i
    template per richiedere alle persone
    i dati mancanti per le tabelle crowd
    e gli attributi crowd.
   I template possono comunque
    essere estesi dai programmatori .
Interfacce di base
   In generale UI sono
    generate copiando i dati
    conosciuti mentre tutti i
    dati che hanno valore
    CNULL diventano campi di
    input del form
   Se il CrowdDB prevede il
    vincolo CHECK questo
    limita il dominio del valore
    richiesto.
   Un’ottimizzazione è quella         Altra ottimizzazione è
    di raggruppare (batch) le          prefetching
    tuple.                             (richiedere prima) gli
        Assunzione: conviene
                                       attributi di una stessa
         inserire 2 parti di           tupla. Ad esempio se
         informazione dello stesso     manca sia la email
         tipo in un unico form che 2   che il dipartimento
         parti in form separati        chiedo entrambi. La
                                       versione attuale non
                                       implementa questa
                                       possibilità
Interfacce di base
   Queste sono le
    interfacce per il
    confronto e
    l’ordinamento
   Entrambi possono
    essere raggruppate
   Nell’attuale
    implementazione sono
    supportati solo i
    confronti binari.
Interfacce di base – relazioni con chiavi
esterne




   Nel caso più semplice la chiave esterna punta a
    una tabella non crowd, viene quindi visualizzato
    un menù a tendina con i valori possibili
   Nel caso in cui la chiave esterna punti a una
    tabella crowd i possibili valori non si conoscono a
    priori e quindi possono essere richieste tuple in
    più rispetto a quella richiesta
Elaborazione della query




   Il parse del crowdDB è stato esteso per
    analizzare CrowdSQL
   L’ottimizzatore del crowdDB è stato
    implementato in modo da tenere conto
    dei nuovi operatori.
I nuovi operatori
   CrowdProbe: usato per inserire nuovi informazioni
    o creare nuovo tuple. L’operatore forza il controllo
    di qualità selezionando la risposta che è stata
    data più volte. Nel caso di nuove tuple i valori
    inseriti possono differire nella chiave primaria in
    questo caso il task viene riproposto lasciano vuoti
    tutti i dati non confermati a parte la chiave
    primaria.
   CrowdJoin: per ogni tupla della relazione più
    esterna, l’operatore crea uno o più HITs al fine di
    crowdsourcing nuove tuple dalla relazione interna
    che corrispondano alla relazione più esterna. Il
    controllo di qualità è quello usato nel CrowdProbe.
   CrowdCompare: questo operatore implementa
    CROWDEQUAL e CROWDORDER. Il controllo di
    qualità viene fatto a maggioranza.
Esperimenti
   AMT (ottobre 2010)
   25000 HITs
   Vari parametri come prezzo, jobs per HIT
    e ora.
   Sono stati misurati tempo di risposta e
    qualità delle risposte fornite dalle persone
   Obiettivo dell’esperimento: esaminare il
    comportamento delle persone per i vari
    tipi di compiti richiesti dal CrowdDB non
    che di ottenere intuizioni per ottimizzare i
    costi di esecuzione delle queries.
Base dell’esperimento
   Tabella: CREATE TABLE businesses ( name VARCHAR
    PRIMARY KEY, phone_number CROWD VARCHAR(32),
    address CROWD VARCHAR(256));
   Richiesta: SELECT phone_number, address FROM
    businesses;
   Dato che le competenze e le persone non sono
    equamente distribuite nei vari fusi orari, l’ora può
    incidere sui tempi di risposta e la qualità
   In questo articolo riportiamo solo i risultati ottenuti tra
    le 0600 e 1500 PST per ridurre la variabilità
   Gli esperimenti sono stati ripetuti 4 volte e fatto la
    media dei valori ottenuti.
   Ricompensa di default: 1 centesimo/HIT e ogni HIT
    richiedeva numero di telefono e indirizzo .
Esperimento 1 – Tempo di risposta al
variare # HIT/gruppo
   Esaminiamo il tempo di risposta dei compiti in funzione del numero di
    HITs in un HIT Group.
   Il # di HITs per HIT Group varia da 10 a 400, # di incarichi per HIT =
    1
   (4) mostra tempi di risposta, (5) # di HITs completati in 30 min.
   Risultato: le prestazioni per compiti semplici possono variare
    notevolmente anche quando a variare è un unico parametro.
Esperimento 2 – Reattività /
ricompensa
   Analizziamo quanto il tempo di
    risposta varia in funzione della
    ricompensa
   (6) mostra che la % di HITs
    completata è in funzione del
    tempo. Ovviamente più si
    aspetta e più compiti vengono
    completati.
   (7) mostra la frazione di HITs che
    ricevono almeno una risposta in
    funzione del tempo.
   Confronto:
        In 60 minuti la maggioranza di
         HITs riceve almeno una risposta
         se il pagamento è 2/3/4 cent.Se
         anche una sola risposta è
         accettabile non c’è nessun
         incentivo a pagare più di 2cent.
Esperimento 3 – affidabilità e qualità
   Focus sulla distribuzione del
    lavoro tra le persone e la
    qualità.
   (8)mostra # di HITs fatti da
    ogni persona e il # di errori
    commessi. La distribuzione
    è asimmetrica e conferma
    gli studi che dicono che il
    richiedente acquisisce una
    comunity di lavoratori che
    si specializzano nei compiti
    proposti. Possibilità di
    creare delle communità
   La percentuale di errori non
    migliora con l’aumentare
    dei HIT eseguiti.
Queries complesse
   3 esperimenti con interrogazioni che
    non possono essere fatte a DB
    tradizionali
1)
   Tabella con 2 attributi
    (company name, headquarter
    address) popolata con 100
    aziende.
   SELECT name FROM company
    WHERE name ~=“[a non-
    unifrom name of the
    company]”
   (9) 4 diverse istanze. Ogni
    HIT mette a confronto 10
    nomi di società con uno dei 4
    nomi completi. Ogni HIT
    aveva 3 compiti e la
    ricompensa era di 1
    cent./HIT. In tutti e 4 i casi la
    maggioranza ha prodotto la
    risposta corretta, ma solo in
    un caso c’è stata l’unanimità.
    Il tempo totale per
    completare i 40 HITs (120
    compiti) è stato di 39 minuiti.
2) Ordinamento di immagini
   CREATE TABLE picture (p IMAGE, subject STRING); SELECT p FROM
    picture WHERE subject = "Golden Gate Bridge“ ORDER BY
    CROWDORDER(p,"Which picture visualizes better %subject");
   Abbiamo testato 30 soggetti e 8 foto per ogni soggetto. Ogni HIT prevedeva il
    confronto di 4 coppie di foto. Questa classificazione è stata fatta con 210 HITs
    ognuno con 3 compiti. 68 minuti per completare l’esperimento.
   (10) mostra il numero di persone che hanno votato, il ranking della foto in base
    al voto di maggioranza e il ranking in base al voto di 6 esperti.
3) Join tra Professor e Departments
   In questo esperimento vengono confrontati 2 modalità di
    esecuzione per un’operazione di join.
   SELECT p.name, p.email, d.name,d.phone FROM
    Professor p, Department d WHERE p.department =
    d.name AND p.university = d.university AND p.name =
    “[name of a professor]”;
   1) prima vengono richieste le informazioni per il professore e
    poi per il dipartimento a cui è associato facendo così il
    join(3d) – 206 minuti, $ 0.99
   2) chiedere per il professore e il dipartimento nello stesso
    momento usando l’interfaccia (2e) – 173 minuti $ 0.75
   Le 2 diverse procedure sono state simili nei tempi di
    esecuzione e nei costi ma significativamente diversi nella
    qualità, con il secondo sono stati forniti risultati sbagliati per
    tutti i numeri di dipartimento i soggetti infatti ha fornito il #
    di tel. del professore invece che quello del dipartimento.
Osservazioni
    Gli esperimenti: 25817 compiti eseguiti da 718
     diversi lavoratori.

1.   La risorsa “folla” implica memoria a lungo
     termine che può influenzare le performace. Le
     persone e i richiedenti possono tenere traccia
     dei rispettivi comportamenti e questo influenza
     le relazioni future.
2.   La progettazione delle interfacce e la precisione
     delle istruzioni sono importanti
3.   I risultati sperimentali mostrano la complessità e
     le nuove sfide che si presentano per
     l’elaborazione delle query tramite
     crowdsourcing.
Conclusioni
   Gli esperimenti effettuati con CrowdDB e AMT
    dimostrano che gli input delle persone possono essere
    sfruttati per estendere notevolmente le funzionalità del
    SQL
   La qualità è fortemente influenzata dalle motivazioni e
    capacità delle persone.
   Ci sono dei parametri chiavi per la progettazione:
       Ricompensa
       # di compiti per HIT
   È importante creare una comunity di lavoratori e dare
    loro ricompensa adeguata o un feedback adeguato.

   Lavoro futuro:
       Migliorare il controllo sulla qualità delle risposte
       Tecniche di ottimizzazione adattiva
Fine
La combinazione di input umano con
  database ad alte prestazioni non solo
  estende la gamma dei database systems,
  ma che permette nuove applicazioni

More Related Content

Viewers also liked

Gerencia Industrial | Alejandro Zúñiga Espinoza - SAIA A
Gerencia Industrial | Alejandro Zúñiga Espinoza - SAIA AGerencia Industrial | Alejandro Zúñiga Espinoza - SAIA A
Gerencia Industrial | Alejandro Zúñiga Espinoza - SAIA AAlejandro Zúñiga Espinoza
 
Книгата-прозорец към света
Книгата-прозорец към светаКнигата-прозорец към света
Книгата-прозорец към светаmnpc2012
 
Activitats tema 5
Activitats  tema 5Activitats  tema 5
Activitats tema 5Barbaraeg00
 
Αγία Σοφία,Π.Νικολάου
Αγία Σοφία,Π.ΝικολάουΑγία Σοφία,Π.Νικολάου
Αγία Σοφία,Π.ΝικολάουIliana Kouvatsou
 
Inge Matthee Resume 1 [20161]
Inge Matthee Resume 1 [20161]Inge Matthee Resume 1 [20161]
Inge Matthee Resume 1 [20161]Inge Louw
 
современные мультфильмы для детей
современные мультфильмы для детейсовременные мультфильмы для детей
современные мультфильмы для детейvirtualtaganrog
 
How Underwriters Can Access Claims Data Now
How Underwriters Can Access Claims Data NowHow Underwriters Can Access Claims Data Now
How Underwriters Can Access Claims Data NowTrillium Software
 
teropong hikmat
teropong hikmatteropong hikmat
teropong hikmatAbd Fatah
 

Viewers also liked (11)

Gerencia Industrial | Alejandro Zúñiga Espinoza - SAIA A
Gerencia Industrial | Alejandro Zúñiga Espinoza - SAIA AGerencia Industrial | Alejandro Zúñiga Espinoza - SAIA A
Gerencia Industrial | Alejandro Zúñiga Espinoza - SAIA A
 
Книгата-прозорец към света
Книгата-прозорец към светаКнигата-прозорец към света
Книгата-прозорец към света
 
Activitats tema 5
Activitats  tema 5Activitats  tema 5
Activitats tema 5
 
Αγία Σοφία,Π.Νικολάου
Αγία Σοφία,Π.ΝικολάουΑγία Σοφία,Π.Νικολάου
Αγία Σοφία,Π.Νικολάου
 
CV of Frederik Dirksen
CV of Frederik DirksenCV of Frederik Dirksen
CV of Frederik Dirksen
 
Inge Matthee Resume 1 [20161]
Inge Matthee Resume 1 [20161]Inge Matthee Resume 1 [20161]
Inge Matthee Resume 1 [20161]
 
Wiimax
WiimaxWiimax
Wiimax
 
современные мультфильмы для детей
современные мультфильмы для детейсовременные мультфильмы для детей
современные мультфильмы для детей
 
How Underwriters Can Access Claims Data Now
How Underwriters Can Access Claims Data NowHow Underwriters Can Access Claims Data Now
How Underwriters Can Access Claims Data Now
 
Chapter 27
Chapter 27Chapter 27
Chapter 27
 
teropong hikmat
teropong hikmatteropong hikmat
teropong hikmat
 

Similar to CrowdDB: Answering Queries with Crowdsourcing

MongoDB
MongoDBMongoDB
MongoDBNaLUG
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRSManuel Scapolan
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009Massimiliano Dessì
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
 
GraphRM - Introduzione al Graph modelling
GraphRM  - Introduzione al Graph modellingGraphRM  - Introduzione al Graph modelling
GraphRM - Introduzione al Graph modellingGraphRM
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
 
Py a6 python-database
Py a6 python-databasePy a6 python-database
Py a6 python-databaseMajong DevJfu
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & AnalyticsDavide Mauri
 
Entity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernateEntity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernateManuel Scapolan
 
Database NO-SQL: Anything else ?
Database NO-SQL: Anything else ?Database NO-SQL: Anything else ?
Database NO-SQL: Anything else ?Codemotion
 
noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]Andrea Maddalena
 
Sql Injection: attacchi e rimedi
Sql Injection: attacchi e rimediSql Injection: attacchi e rimedi
Sql Injection: attacchi e rimediDavide Micale
 
Note di Data Warehouse e Business Intelligence - La gestione delle descrizioni
Note di Data Warehouse e Business Intelligence - La gestione delle descrizioniNote di Data Warehouse e Business Intelligence - La gestione delle descrizioni
Note di Data Warehouse e Business Intelligence - La gestione delle descrizioniMassimo Cenci
 
Cloud infrastructure
Cloud infrastructureCloud infrastructure
Cloud infrastructureMattia Azzena
 

Similar to CrowdDB: Answering Queries with Crowdsourcing (20)

MongoDB
MongoDBMongoDB
MongoDB
 
Domain Driven Design e CQRS
Domain Driven Design e CQRSDomain Driven Design e CQRS
Domain Driven Design e CQRS
 
Descrizione di NO-SQL
Descrizione di NO-SQLDescrizione di NO-SQL
Descrizione di NO-SQL
 
MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009MongoDB SpringFramework Meeting september 2009
MongoDB SpringFramework Meeting september 2009
 
ORM - Introduzione
ORM - IntroduzioneORM - Introduzione
ORM - Introduzione
 
Database Data Aggregator
Database Data AggregatorDatabase Data Aggregator
Database Data Aggregator
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
 
GraphRM - Introduzione al Graph modelling
GraphRM  - Introduzione al Graph modellingGraphRM  - Introduzione al Graph modelling
GraphRM - Introduzione al Graph modelling
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
 
Py a6 python-database
Py a6 python-databasePy a6 python-database
Py a6 python-database
 
Dbms
DbmsDbms
Dbms
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & Analytics
 
Entity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernateEntity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernate
 
Database NO-SQL: Anything else ?
Database NO-SQL: Anything else ?Database NO-SQL: Anything else ?
Database NO-SQL: Anything else ?
 
noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]noSQL La nuova frontiera dei Database [DB05-S]
noSQL La nuova frontiera dei Database [DB05-S]
 
Sql Injection: attacchi e rimedi
Sql Injection: attacchi e rimediSql Injection: attacchi e rimedi
Sql Injection: attacchi e rimedi
 
Vdcnn daniele meetup_27_june
Vdcnn daniele meetup_27_juneVdcnn daniele meetup_27_june
Vdcnn daniele meetup_27_june
 
Corso access 2010
Corso access 2010Corso access 2010
Corso access 2010
 
Note di Data Warehouse e Business Intelligence - La gestione delle descrizioni
Note di Data Warehouse e Business Intelligence - La gestione delle descrizioniNote di Data Warehouse e Business Intelligence - La gestione delle descrizioni
Note di Data Warehouse e Business Intelligence - La gestione delle descrizioni
 
Cloud infrastructure
Cloud infrastructureCloud infrastructure
Cloud infrastructure
 

CrowdDB: Answering Queries with Crowdsourcing

  • 1. CrowdDB: Answering Queries with Crowdsourcing Authors: Michael Franklin, Donald Kossmann, Tim Kraska, Sukriti Ramesh, Reynold Xin Publication Date: June 2011 Conference: ACM SIGMOD Conference Viviana Murello Scienze delle Reti a.a. 2010/2011
  • 2. Riassunto 1  Alcune query non possono essere soddisfatte dai database tradizionali  l’elaborazione di tali query hanno bisogno di input da parte delle persone per  Snellire l’elaborazione  Per i confronti  Per la classificazione  O aggregazione dei risultati
  • 3. Riassunto 2  I CrowdDB usano l’input umano fornito tramite crowsorcing per rispondere alle query  Descriviamo alcune caratteristiche di un CrowdDB e alcuni esperimenti fatti usando Amazon Mechanical Turk
  • 4. RDBMS  Le assunzioni di base dei RDBMS sono:  Correttezza  Completezza  Non ambiguità Dei dati. Quando queste assunzioni mancano il sistema fornisce risposte sbagliate oppure non ne fornisce affatto.
  • 5. Potere alle persone  Il sistema fornisce risposte sbagliate  Es. SELECT market_capitalization FROM company WHERE name = "I.B.M.";  I.B.M. non è stato inserito  I.B.N.  International Business Machine  Altro esempio di queries che non trovano risposte con gli attuali RDBMS:  Es. stabilire quanto un’immagine è rilevante per un certo argomento
  • 6. Potere alle persone 2  2 problemi  Close World Assuption: le informazioni che non sono inserite nel DB sono considerate false o innesistenti  RDBMS sono estremamente letterali: si aspettano valori validi
  • 7. CrowdDB  Sfruttare Human Computation per risolvere problemi  AMT (Amazon’s Mechanical Turk)  Trovare nuovi dati  RDBMS: limitato dalla Closed World Assuption  Persone: aiutate da strumenti sono brave nel trovare nuove informazioni  Confrontare dati  RDBMS: algoritmi di confronto sono difficili o impossibili  Persone: sono qualificate a fare confronti
  • 8. Crowdsourcing  Amazon’s Mechanical Turk  Assignment (compito)  HIT  HIT Group  API di Mechanical Turk  createHIT(title, description, question, keywords, reward, duration,maxAssignments, lifetime)  HitID  getAssignmentsForHIT(HitID)list(asnId, workerId , answer)  approveAssignment(asnID) / rejectAssignment(asnID)  forceExpireHIT(HitID)
  • 9. Considerazione sulla progettazione del CrowdDB  La progettazione del CrowdDB è influenzata da:  Prestazioni e variabilità: le persone e le macchine differiscono in velocità e qualità.  Attività di progettazione e ambiguità: le persone richiedono UI per evitare che certe istruzioni vengano interpretate in modo sbagliato.  Affinità ed apprendimento: l’insieme dei lavoratori sviluppa relazioni con i richiedenti e competenze per certi HITs  Quantità di lavoratori relativamente piccola:  Mondo chiuso vs Mondo aperto: ogni operazione potrebbe ritornare un numero illimitato di risposte influenzando così l’ottimizzazione della query, i costi di esecuzioni e la qualità della risposta.
  • 10. Progettazione ed implementazione del CrowdDB 1  crowdDB usa i dati memorizzati quando possibile altrimenti usa interroga la folla  Risultati ottenuti vengono memorizzati
  • 11. Progettazione ed implementazione del CrowdDB 2  Sulla sx ci sono i componenti tradizionali  Sulla dx i nuovi componenti per interagire con la folla  Turker Relationship Management  User Interface Management  Hit manager: controlla iterazioni tra CrowdDB e piattaforma di crowdsourcing (AMT)
  • 12. CrowdSQL  CrowdSQL è un’estensione dell’SQL che supporta il crowdsourcing nei casi d’uso che coinvolgono dati mancanti e comparazioni soggettive.  Attributi specifici di una tupla, intere tuple o intere tabelle possono essere crowdsourced.  Gestiamo i casi di dati mancanti con la parola chiave CROWD.  Per i confronti soggettivi e ordinamenti usiamo rispettivamente le parole chiave CROWDEQUAL e CROWDORDER
  • 13. CrowdSQL – esempi  Crowdsorced Colum  CREATE TABLE Department ( university STRING, name STRING, url CROWD STRING, phone STRING, PRIMARY KEY (university,name) );  Se un nuovo dipartimento viene creato automaticamente spesso non viene inserita direttamete l’url, ma questa è disponibile in altra forma (crowdsourced)  Crowdsorced Table  CREATE CROWD TABLE Professor (name STRING PRIMARY KEY, email STRING UNIQUE, university STRING, department STRING, FOREIGN KEY (university, department) REF Department(university,name));  CrowdDB si aspetta che ci possono essere altri professori per il dipartimento che possono essere reperiti tramite crowdsourcing.
  • 14. CrowdSQL – esempi e considerazioni  CROWDEQUAL  Questa funzione prende 2 parametri in input (lvalue,rvalue) e viene usata per decidere se 2 valori sono uguali ~=. La seguente query richiede nomi diversi per identificare “computer science” nel DB  SELECT profile FROM department WHERE name ~= "CS";  CROWDORDER  Questa funzione è usata per classificare o ordinare i risultati.  CREATE TABLE picture (p IMAGE, subject STRING); SELECT p FROM picture WHERE subject = "Golden Gate Bridge“ ORDER BY CROWDORDER(p,"Which picture visualizes better %subject");
  • 15. CrowdSQL  CNULL è equivalente al NULL del SQL standard ma indica che il valore può essere crowdsourced quando viene usato per la prima volta.  CNULL è generato automaticamente per le istruzioni di INSERT (è il valore di default per le colonne crowd)  Se un attributo viene inizializzato a NULL il crowdsourcing non avrà effetto.
  • 16. CrowdSQL  SELECT * FROM Professor WHERE email LIKE “%berkeley%” AND dept = “Math”;  La query richiede email e il dipartimento (se hanno valore CNULL) di tutti i professori individuati dalla condizione where  Le specifiche del CrowdSQL prevedono che le tabelle siano aggiornate quando vengono interrogate le persone.  Gli aggiornamenti e gli inserimenti fanno parte della stessa transazione e vengono eseguiti prima dell’interrogazione.
  • 17. CrowdDB – in pratica  Dato che si passa all’assunzione di mondo aperto il costo per ogni query potrebbe essere illimitato  Non è chiaro il numero di tuple che possono essere coinvolte per eseguire completamente la query  Clausola LIMIT per limitare il numero di tuple che possono essere ritornate dalle interrogazioni  Una futura estensione del CrowdDB potrebbe includere  il controllo della derivazione dei dati (ad esempio per escludere i dati forniti da un utente che si sa essere uno spammer, o per sapere la data di inserimento per sapere quando un dato non è più valido)  controllo sulla pulizia dei dati in quanto in una tabella di tipo crowd può succedere che la chiave primaria si un dato crowdsourced.
  • 18. Generazione delle interfaccia utente  La chiave del successo per il crowdsourcing è avere delle interfacce utenti efficaci.  Alla compilazione il crowdDB crea i template per richiedere alle persone i dati mancanti per le tabelle crowd e gli attributi crowd.  I template possono comunque essere estesi dai programmatori .
  • 19. Interfacce di base  In generale UI sono generate copiando i dati conosciuti mentre tutti i dati che hanno valore CNULL diventano campi di input del form  Se il CrowdDB prevede il vincolo CHECK questo limita il dominio del valore richiesto.  Un’ottimizzazione è quella Altra ottimizzazione è di raggruppare (batch) le prefetching tuple. (richiedere prima) gli  Assunzione: conviene attributi di una stessa inserire 2 parti di tupla. Ad esempio se informazione dello stesso manca sia la email tipo in un unico form che 2 che il dipartimento parti in form separati chiedo entrambi. La versione attuale non implementa questa possibilità
  • 20. Interfacce di base  Queste sono le interfacce per il confronto e l’ordinamento  Entrambi possono essere raggruppate  Nell’attuale implementazione sono supportati solo i confronti binari.
  • 21. Interfacce di base – relazioni con chiavi esterne  Nel caso più semplice la chiave esterna punta a una tabella non crowd, viene quindi visualizzato un menù a tendina con i valori possibili  Nel caso in cui la chiave esterna punti a una tabella crowd i possibili valori non si conoscono a priori e quindi possono essere richieste tuple in più rispetto a quella richiesta
  • 22. Elaborazione della query  Il parse del crowdDB è stato esteso per analizzare CrowdSQL  L’ottimizzatore del crowdDB è stato implementato in modo da tenere conto dei nuovi operatori.
  • 23. I nuovi operatori  CrowdProbe: usato per inserire nuovi informazioni o creare nuovo tuple. L’operatore forza il controllo di qualità selezionando la risposta che è stata data più volte. Nel caso di nuove tuple i valori inseriti possono differire nella chiave primaria in questo caso il task viene riproposto lasciano vuoti tutti i dati non confermati a parte la chiave primaria.  CrowdJoin: per ogni tupla della relazione più esterna, l’operatore crea uno o più HITs al fine di crowdsourcing nuove tuple dalla relazione interna che corrispondano alla relazione più esterna. Il controllo di qualità è quello usato nel CrowdProbe.  CrowdCompare: questo operatore implementa CROWDEQUAL e CROWDORDER. Il controllo di qualità viene fatto a maggioranza.
  • 24. Esperimenti  AMT (ottobre 2010)  25000 HITs  Vari parametri come prezzo, jobs per HIT e ora.  Sono stati misurati tempo di risposta e qualità delle risposte fornite dalle persone  Obiettivo dell’esperimento: esaminare il comportamento delle persone per i vari tipi di compiti richiesti dal CrowdDB non che di ottenere intuizioni per ottimizzare i costi di esecuzione delle queries.
  • 25. Base dell’esperimento  Tabella: CREATE TABLE businesses ( name VARCHAR PRIMARY KEY, phone_number CROWD VARCHAR(32), address CROWD VARCHAR(256));  Richiesta: SELECT phone_number, address FROM businesses;  Dato che le competenze e le persone non sono equamente distribuite nei vari fusi orari, l’ora può incidere sui tempi di risposta e la qualità  In questo articolo riportiamo solo i risultati ottenuti tra le 0600 e 1500 PST per ridurre la variabilità  Gli esperimenti sono stati ripetuti 4 volte e fatto la media dei valori ottenuti.  Ricompensa di default: 1 centesimo/HIT e ogni HIT richiedeva numero di telefono e indirizzo .
  • 26. Esperimento 1 – Tempo di risposta al variare # HIT/gruppo  Esaminiamo il tempo di risposta dei compiti in funzione del numero di HITs in un HIT Group.  Il # di HITs per HIT Group varia da 10 a 400, # di incarichi per HIT = 1  (4) mostra tempi di risposta, (5) # di HITs completati in 30 min.  Risultato: le prestazioni per compiti semplici possono variare notevolmente anche quando a variare è un unico parametro.
  • 27. Esperimento 2 – Reattività / ricompensa  Analizziamo quanto il tempo di risposta varia in funzione della ricompensa  (6) mostra che la % di HITs completata è in funzione del tempo. Ovviamente più si aspetta e più compiti vengono completati.  (7) mostra la frazione di HITs che ricevono almeno una risposta in funzione del tempo.  Confronto:  In 60 minuti la maggioranza di HITs riceve almeno una risposta se il pagamento è 2/3/4 cent.Se anche una sola risposta è accettabile non c’è nessun incentivo a pagare più di 2cent.
  • 28. Esperimento 3 – affidabilità e qualità  Focus sulla distribuzione del lavoro tra le persone e la qualità.  (8)mostra # di HITs fatti da ogni persona e il # di errori commessi. La distribuzione è asimmetrica e conferma gli studi che dicono che il richiedente acquisisce una comunity di lavoratori che si specializzano nei compiti proposti. Possibilità di creare delle communità  La percentuale di errori non migliora con l’aumentare dei HIT eseguiti.
  • 29. Queries complesse  3 esperimenti con interrogazioni che non possono essere fatte a DB tradizionali
  • 30. 1)  Tabella con 2 attributi (company name, headquarter address) popolata con 100 aziende.  SELECT name FROM company WHERE name ~=“[a non- unifrom name of the company]”  (9) 4 diverse istanze. Ogni HIT mette a confronto 10 nomi di società con uno dei 4 nomi completi. Ogni HIT aveva 3 compiti e la ricompensa era di 1 cent./HIT. In tutti e 4 i casi la maggioranza ha prodotto la risposta corretta, ma solo in un caso c’è stata l’unanimità. Il tempo totale per completare i 40 HITs (120 compiti) è stato di 39 minuiti.
  • 31. 2) Ordinamento di immagini  CREATE TABLE picture (p IMAGE, subject STRING); SELECT p FROM picture WHERE subject = "Golden Gate Bridge“ ORDER BY CROWDORDER(p,"Which picture visualizes better %subject");  Abbiamo testato 30 soggetti e 8 foto per ogni soggetto. Ogni HIT prevedeva il confronto di 4 coppie di foto. Questa classificazione è stata fatta con 210 HITs ognuno con 3 compiti. 68 minuti per completare l’esperimento.  (10) mostra il numero di persone che hanno votato, il ranking della foto in base al voto di maggioranza e il ranking in base al voto di 6 esperti.
  • 32. 3) Join tra Professor e Departments  In questo esperimento vengono confrontati 2 modalità di esecuzione per un’operazione di join.  SELECT p.name, p.email, d.name,d.phone FROM Professor p, Department d WHERE p.department = d.name AND p.university = d.university AND p.name = “[name of a professor]”;  1) prima vengono richieste le informazioni per il professore e poi per il dipartimento a cui è associato facendo così il join(3d) – 206 minuti, $ 0.99  2) chiedere per il professore e il dipartimento nello stesso momento usando l’interfaccia (2e) – 173 minuti $ 0.75  Le 2 diverse procedure sono state simili nei tempi di esecuzione e nei costi ma significativamente diversi nella qualità, con il secondo sono stati forniti risultati sbagliati per tutti i numeri di dipartimento i soggetti infatti ha fornito il # di tel. del professore invece che quello del dipartimento.
  • 33. Osservazioni  Gli esperimenti: 25817 compiti eseguiti da 718 diversi lavoratori. 1. La risorsa “folla” implica memoria a lungo termine che può influenzare le performace. Le persone e i richiedenti possono tenere traccia dei rispettivi comportamenti e questo influenza le relazioni future. 2. La progettazione delle interfacce e la precisione delle istruzioni sono importanti 3. I risultati sperimentali mostrano la complessità e le nuove sfide che si presentano per l’elaborazione delle query tramite crowdsourcing.
  • 34. Conclusioni  Gli esperimenti effettuati con CrowdDB e AMT dimostrano che gli input delle persone possono essere sfruttati per estendere notevolmente le funzionalità del SQL  La qualità è fortemente influenzata dalle motivazioni e capacità delle persone.  Ci sono dei parametri chiavi per la progettazione:  Ricompensa  # di compiti per HIT  È importante creare una comunity di lavoratori e dare loro ricompensa adeguata o un feedback adeguato.  Lavoro futuro:  Migliorare il controllo sulla qualità delle risposte  Tecniche di ottimizzazione adattiva
  • 35. Fine La combinazione di input umano con database ad alte prestazioni non solo estende la gamma dei database systems, ma che permette nuove applicazioni