Raymond Chi-Wing Wong, Ada Wai-Chee Fu, Jian Pei, Yip Sing Ho, Tai Wong, Yubao Liu EFFICIENT SKYLINE QUERYING WITH VARIABLE USER PREFERENCES ON NOMINAL ATTRIBUTES 1 Gruppo 3 Alessandro Cangini (Relatore) Marco Casadio Valerio Sandri SCENARIO Le attuali tecniche di valutazione dello skyline si basano sull’ordinamento fisso degli attributi. Esistono attributi il cui ordinamento non è prefissato e varia da utente a utente. E’ il caso degli attributi nominali. Auto Prezzo Cilindrata Colore Alimentazione a 13.500 1400 Nero Gpl b 18.000 1600 Nero Gpl c 23.000 1800 Verde Diesel d 19.500 1400 Azzurro Diesel e 13.500 1200 Nero Benzina f 26.000 1600 Verde Benzina g 19.500 1600 Azzurro Diesel h 11.000 1200 Rosso Diesel 2 SCENARIO Assumiamo che un’auto sia universalmente migliore quanto inferiore è il prezzo e superiore la cilindrata. Questo non vale per gli attributi Colore e Alimentazione. Consideriamo, per ora, solo preferenze sull’attributo colore. Preferenze del genere si dicono preferenze implicite Utente Preferenze Skyline Brian V>A>* {a,b,c,g,h} Chris N>A>* {a,b,c,h} Lois R>* {a,b,c,g,h} Peter A>V>* {a,b,c,g,h} Stewie N>A>R>* {a,b,c,h} 3 SCENARIO - ESEMPIO Consideriamo le tuple: Auto Prezzo Cilindrata Colore A 18.000 1600 Nero B 23.000 1400 Verde Come Gpl Facciamo??? Diesel Se consideriamo solo gli attributi numerici: Alimentazione A > B, in quanto ha minore prezzo e maggiore cilindrata Tuttavia se consideriamo una preferenza del tipo Verde > Nero I.e. una macchina Verde e’ preferibile ad una Nera A non domina più B in quanto e’ preferibile per Prezzo e Cilindrata, ma non per Colore. 4 DEFINIZIONE DEL PROBLEMA Gli algoritmi tradizionali (tipo BBS) non sono applicabili: la funzione distanza, in questo caso, non è calcolata solamente su attributi numerici. Primo approccio: determinare gli skyline di tutte le possibili preferenze implicite. Numero di tutte le possibili preferenze implicite proporzionale a: O((c*c!)m’ ) Es. con 3 ( = m’ ) attributi nominali ognuno dei quali ha 40 ( = c ) possibili valori. Il numero totale di preferenze implicite è nell’ordine di 109. Problema: Trovare un modo efficiente di calcolare gli skyline su attributi nominali con preferenze utente variabili. 5 ANDIAMO OLTRE… Un primo tentativo è stato quello di adattare qualcosa di già esistente. Algoritmi quali BBS e NN richiedono, ad ogni nuova preferenza implicita, una generazione di un indice sull’attributo categorico sul quale l’algoritmo lavora. Es. Supponiamo di avere 10.000 query con preferenze implicite. Per ognuna di esse bisogna calcolare l’indice. Troppo oneroso!!! 6 SFS (SORT-FIRST-SKYLINE) E’ un algoritmo nel quale tutte le tuple sono ordinate con una funzione f di preferenza in base a un loro punteggio e lo skyline viene ricavato sulla base di tale ordinamento. Es. f come somma di tutte le dimensioni di un punto. Vale solo per attributi numerici totalmente ordinati. Se possiamo sfruttare la possibilità di variare i valori dei punteggi in base alle preferenze implicite, non abbiamo costi aggiuntivi in preprocessing e possiamo sfruttare solo raffinamenti sulle preferenze implicite e non più sugli attributi numerici. 7 SFS - ADAPTIVE Calcolo dello skyline senza preferenze implicite Auto Prezzo Cilindrata Colore a 13.500 1400 Nero b 18.000 1600 Nero c 23.000 1800 Verde d 19.500 1400 Azzurro e 13.500 1200 Nero f 26.000 1600 Verde g 19.500 1600 Azzurro h 11.000 1200 Rosso HOW TO: per ogni valore dell’attributo “Colore” si calcola uno skyline. Lo skyline totale si ottiene dall’unione degli skyline parziali Calcolo del punteggio per ogni punto dello skyline Auto Punteggio a 15.904 b 18.204 c 23.004 g 19.704 h 11.604 Punteggio calcolato come: Prezzo + (1800 – Cilindrata) + |Colore| Monotonicità Un’auto è ora più preferibile se Prezzo e Cilindrata sono inferiori. 8 SFS - ADAPTIVE Per ogni nuova query occorrono Modifica (1)una del ranking in base ad unaO(n) preferenza nuova modifica del ranking; ordinamento; n) implicita(2)un e si nuovo ordina per valoriO(n*log crescenti di score. 2 (3)un nuovo check di dominanza. O (n ) Auto Punteggio Query: N > A > * Auto Punteggio PROBLEMA: non scalabilità a fronte di a 15.902 a 15.904 skyline grandi ed alto numero di query… b 18.202 b 18.204 c 23.004 g 19.704 h 11.604 N = 2 , A = 1 e si INFATTIBILE!!! ricalcola il punteggio c 23.004 g 19.703 h 11.604 Si applica SFS coi valori modificati Poiché b > g, si elimina g; lo skyline risultante è { a,b,c,h } IT WORKS! Auto Punteggio h 11.604 a 15.902 b 18.202 g 19.703 c 23.004 9 IPO – TREE: PRESENTAZIONE (IMPLICIT PREFERENCE ORDER) Idea di base: memorizzare alcuni risultati parziali che, combinati tra loro, generino il risultato richiesto. Come? IPO – tree: albero che memorizza risultati per certe combinazioni di preferenze implicite. Come lo usiamo? Esiste la possibilità di dividere la query in sotto-query più semplici e di trovare i relativi skyline. Questi risultati parziali saranno poi composti per formare il totale. 10 E con preferenze del tipo “N > A > *” ?? IPO – TREE: COSTRUZIONE Root N>* A = {} R>* A = {} S:{a,b,c,e,f,g,h} V>* A = {} A>* A = {} … G>* A = {e,f,g} D>* A = {e,f} B>* Φ A = {g} A = {e,f,g} Φ A = {} … … G>* D>* B>* A = {e,f} A = {e,f} A = {} Φ … A = {e,f} 3. Le ogni 2.Ad 1.Per foglie ognilivello combinazione contengono dell’albero ledei tuple civalori sono “squalificate” degli i nodiattributi relativi dallo alle categorici skyline preferenze della si calcola implicite lo radice skyline perdi sugli quella solamente attributi combinazione unnumerici attributo di preferenze e (inclusa questo silaimplicite inserisce preferenza nella nulla radice. Φ). 11 IPO – TREE: PROPRIETÀ DI MERGE Date due preferenze implicite su uno stesso attributo categorico e i rispettivi skyline v1 > v2 > … > vx-1 > * e SKY1 2. vx > * e SKY2 Lo skyline relativo alla preferenza implicita v1 > v2 > … > vx-1 > vx > * (indicato con SKY3) si calcola come SKY3 = (SKY1 ∩ SKY2) ∪ PSKY1 dove PSKY1 è l’insieme dei punti di SKY1 che hanno valori in v1, … , vx-1 (quelli esplicitati nella preferenza implicita) 1. Oss: La definizione è ricorsiva su (1). 12 IPO – TREE: PROPRIETÀ DI MERGE Es. Consideriamo le preferenze sul colore di Chris N>A>* Molto Bene!!! N>A>R>* A>* N>* / \ SKYN = {a,b,c,h} N > A > * R > *SKYA = {a,b,c,g,h} PSKYN = {a,b} / \ N>* A>* (SKYN ∩ SKYA) ∪ PSKYN = {a,b,c,h} Utente Preferenze Skyline Brian V>A>* {a,b,c,g,h} Chris N>A>* {a,b,c,h} Lois R>* {a,b,c,g,h} Peter A>V>* {a,b,c,g,h} Stewie N>A>R>* {a,b,c,h} Come la mettiamo con le mie preferenze?! IT WORKS!!! 13 IPO – TREE: APPLICAZIONE DEL MERGE S:{a,b,c,e,f,g,h} Root N>* R>* G>* D>* A = {e,f,g} A = {e,f} V>* B>* Φ G>* A = {g} A = {e,f,g} A = {e,f} D>* A = {e,f} B>* A = {} Φ A = {e,f} A > *, B > * N > *, B > * SKY1 = {a,b,c,e,f,h} PSKY1 = {e} Φ A>* N > A > *, B > * MERGE: SKY3 = {a,b,c,e,f,h} SKY2 = {a,b,c,e,f,g,h} 14 IPO – TREE: DIMENSIONE L’albero così creato ha un numero di nodi proporzionale a: O(cm’ ) Es. con 3 ( = m’ ) attributi nominali ognuno dei quali ha 40 ( = c ) possibili valori. Il numero totale di nodi è nell’ordine di 104. Oss: la generazione di tutte le preferenze implicite e’ nell’ordine di 109. Che risparmio!!! 15 RISULTATI COMPUTAZIONALI Misuriamo l’efficienza confrontandola con SFS-A su di un Dataset Reale (Nursery Dataset from UCI Machine Learning Repository) in termini di: Memoria impiegata. Costo temporale in fase di preparazione (preprocessing) Costo temporale in fase di esecuzione (query time) Parametri di Riferimento: DB Size Numero di attributi non nominali Ordine delle preferenze implicite delle query 16 RISULTATI COMPUTAZIONALI Misuriamo l’efficienza in termini di Memoria impiegata Costo temporale in fase di preparazione (preprocessing) Costo temporale in fase di esecuzione (query time) DB size Numero di attributi non nominali Ordine delle preferenze implicite delle query 17 RISULTATI COMPUTAZIONALI Misuriamo l’efficienza in termini di Memoria impiegata Costo temporale in fase di preparazione (preprocessing) Costo temporale in fase di esecuzione (query time) DB size Numero di attributi non nominali Ordine delle preferenze implicite delle query 18 RISULTATI COMPUTAZIONALI Misuriamo l’efficienza in termini di Memoria impiegata Costo temporale in fase di preparazione (preprocessing) Costo temporale in fase di esecuzione (query time) DB size Numero di attributi non nominali Ordine delle preferenze implicite delle query 19 CONCLUSIONI E SVILUPPI FUTURI A fronte di una maggiore costo in fase di preprocessing e in termini di memoria impiegata, si hanno notevoli miglioramenti a run-time Maggiore efficienza! Sviluppi futuri: Aggiornamento IPO-tree; Studio di metodologie alternative (introdurre negli attuali algoritmi di skyline il concetto di attributo nominale qualora ne siano sprovvisti). 20 GRUPPO 3 - FINE Alessandro Cangini (Relatore) Marco Casadio Valerio Sandri 21