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

CrowdDB: Answering Queries with Crowdsourcing

Embed Size (px)

DESCRIPTION

Presentation Paper: CrowdDB: Answering Queries with Crowdsourcing Authors: Michael Franklin, Donald Kossmann, Tim Kraska, Sukriti Ramesh, Reynold Xin Publication Date: June 2011 Conference: ACM SIGMOD Conference

Citation preview

Page 1: CrowdDB: Answering Queries with Crowdsourcing

CrowdDB: Answering Queries with CrowdsourcingAuthors: Michael Franklin, Donald Kossmann, Tim Kraska, Sukriti Ramesh, Reynold Xin

Publication Date: June 2011

Conference: ACM SIGMOD Conference

Viviana MurelloScienze delle Reti

a.a. 2010/2011

Page 2: CrowdDB: Answering Queries with Crowdsourcing

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

Page 3: CrowdDB: Answering Queries with Crowdsourcing

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

Page 4: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 5: CrowdDB: Answering Queries with Crowdsourcing

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

Page 6: CrowdDB: Answering Queries with Crowdsourcing

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

Page 7: CrowdDB: Answering Queries with Crowdsourcing

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

Page 8: CrowdDB: Answering Queries with Crowdsourcing

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)

Page 9: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 10: CrowdDB: Answering Queries with Crowdsourcing

Progettazione ed implementazione del CrowdDB 1

crowdDB usa i dati memorizzati quando possibile altrimenti usa interroga la folla

Risultati ottenuti vengono memorizzati

Page 11: CrowdDB: Answering Queries with Crowdsourcing

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)

Page 12: CrowdDB: Answering Queries with Crowdsourcing

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

Page 13: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 14: CrowdDB: Answering Queries with 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");

Page 15: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 16: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 17: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 18: CrowdDB: Answering Queries with Crowdsourcing

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 .

Page 19: CrowdDB: Answering Queries with Crowdsourcing

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 di raggruppare (batch) le tuple.

Assunzione: conviene inserire 2 parti di informazione dello stesso tipo in un unico form che 2 parti in form separati

Altra ottimizzazione è prefetching (richiedere prima) gli attributi di una stessa tupla. Ad esempio se manca sia la email che il dipartimento chiedo entrambi. La versione attuale non implementa questa possibilità

Page 20: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 21: CrowdDB: Answering Queries with Crowdsourcing

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

Page 22: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 23: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 24: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 25: CrowdDB: Answering Queries with Crowdsourcing

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 .

Page 26: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 27: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 28: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 29: CrowdDB: Answering Queries with Crowdsourcing

Queries complesse

3 esperimenti con interrogazioni che non possono essere fatte a DB tradizionali

Page 30: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 31: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 32: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 33: CrowdDB: Answering Queries with Crowdsourcing

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.

Page 34: CrowdDB: Answering Queries with 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

Page 35: CrowdDB: Answering Queries with Crowdsourcing

Fine

La combinazione di input umano con database ad alte prestazioni non solo estende la gamma dei database systems, ma che permette nuove applicazioni