Studio degli indici per query di similarità basati su matrici di distanze Esame di Sistemi Informativi per le Decisioni L-S Presentato da: Ing. Marco Patella Mario Masciulli
Indice Introduzione al problema; Indici per query di similarità basati su alberi; Indici per query di similarità basati su pivot; Esempi: AESA (Approximating and Eliminating Search Algorithm); AESA (Approximating and Eliminating Search Algorithm); LAESA (Linear AESA); LAESA (Linear AESA); Spaghettis; Spaghettis; Fixed Array Queries; Fixed Array Queries; Verifica prestazioni e conclusioni.
Introduzione Evoluzione della tecnologia dei DB; Maggiori difficoltà di reperimento informazioni; Indicizzazione dello spazio (vettoriale o metrico); Settore di studio molto vitale; Due metodologie principali: Indici basati su alberi; Indici basati su alberi; Indici basati su pivot. Indici basati su pivot.
Indici basati su alberi R-tree Indice multidimensionale, deriva da B + -tree; Organizza gli oggetti in regioni (MBR); Indice dinamico, bilanciato, paginato; Informazioni memorizzate nelle entries: E=(key,ptr) Ricerca oggetti top-down Problema: lavora solo su spazi vettoriali
Indici basati su alberi M-tree Evoluzione di R-tree basata su distanze metriche; Black box per il calcolo delle distanze; Condizioni di lavoro in uno spazio metrico: positività: d(x,y)≥0, d(x,y)=0 x = y; positività: d(x,y)≥0, d(x,y)=0 x = y; simmetria: d(x,y) = d(y,x); simmetria: d(x,y) = d(y,x); disuguaglianza triangolare: d(x,y) ≤ d(x,z) + d(z,y). disuguaglianza triangolare: d(x,y) ≤ d(x,z) + d(z,y). Uso di entries per memorizzare informazioni: E=(RoutObjFeat, CovRadius, distP, ptr) Vantaggio: circa il 40% di calcoli in meno
Indici basati su pivot Pivot based techniques (I) Caratteristiche generali: Mapping da spazio metrico a vettoriale in k dimensioni; D(x,y)≤d(x,y) Fase di preprocessing: calcolo di k*n distanze; Def. complessità interna = k: numero di distanze da calcolare per ogni esecuzione query; Def. complessità esterna: numero di punti per cui non vale la condizione di pruning.
Indici basati su pivot Pivot based techniques (II) Caratteristiche generali: Obj: trade off tra complessità interna (numero di pivot) ed esterna => scelta del numero ottimale di pivot; Sulla complessità esterna si interviene con politiche di pruning più efficaci. Definizioni preliminari: spazio metrico E=(U,d); P E: insieme dei prototipi; y E: test sample.
AESA (Approximating and Eliminating Search Algorithm) Definisce una matrice triangolare [n x n] nella fase di preprocessing: O(n 2 ) n(n-1)/2 Idea di base: funzionamento del tutto simile agli altri algoritmi k-NN: Fasi di approximating ed eliminating: definizione di un lower bound sul quale eseguire il pruning. Definizione di prototipi attivi (a), selezionati (s) ed eliminati.
AESA (Approximating and Eliminating Search Algorithm) Vantaggi: La “forza” del pruning cresce man mano che si costruisce la soluzione; La distanza è calcolata solo per i prototipi selezionati; Soluzione trovata molto accurata (k = n). Svantaggi: Complessità spaziale e temporale: O(n 2 ); Overhead dipendente linearmente dalla dimensione di P.
LAESA (Linear AESA) Evoluzione di AESA con preprocessing lineare; Scelta di m prototipi base B (pivot) con B P; Creazione matrice [m x n] delle distanze: O(mn) Scelta prototipi base: Ricerca iterativa dell’elemento di P-B, con distanza cumulata massima dall’ultimo elemento selezionato in B
LAESA (Linear AESA) Algoritmo di ricerca (esempio 1-NN query): Aggiornamento array di pruning solo per s B Doppia condizione per il pruning di p B Distinguo tra: p B e p P-B Due candidati ad essere selezionati: b e q
LAESA (Linear AESA) Le funzioni CHOICE e CONDITION definiscono le strategie di uso ed eliminazione dei prototipi base; In particolare: Scelgo sempre b, se esiste Due esempi di politiche di eliminazione dei prototipi base:
LAESA (Linear AESA) Vantaggi: Elevata riduzione della complessità spaziale e temporale del preprocessing: O(mn). Svantaggi: Minor accuratezza della soluzione trovata (k < n); Leggera crescita del numero di distanze calcolate (LAESA ≈ 1.5 AESA).
Spaghettis Idea di base: PBT lavorano su spazi vettoriali k- dimensionali => una query può essere vista come un ipercubo k-dimensionale; Perché un punto x faccia parte della soluzione: |d(x,p i )-d(q,p i )|≤r p i Scomponendo, lungo ogni coordinata i: x i [a i,b i ] dove: a i = d(q,p i ) – r, b i = d(q,p i ) + r Nel preprocessing Spaghettis crea k arrays, uno per ogni dimensione (pivot).
Spaghettis La struttura conseguente visita sequenzialmente i k array: Complessità temporale del preprocessing: O(km) Vantaggi: ricerca binaria negli array => riduzione tempo di ricerca elemento: O(log n) => riduzione overhead di CPU; ricerca binaria negli array => riduzione tempo di ricerca elemento: O(log n) => riduzione overhead di CPU; ricerca senza successo => abbandono presto; ricerca senza successo => abbandono presto; Svantaggi: maggior complessità dovuta alla creazione dell’indice.
Fixed Queries Arrays Novità: crescita sublineare dell’overhead con creazione di un indice meno “pesante”; Crea un array di kn elementi ordinati lessicograficamente in base alla loro distanza dai pivot (hp: distanze discrete): d(q,p 1 ) d(q,p 2 ) d(q,p 3 ) k=1 k=2 k=3 Ricerca binaria nell’array => confronto tra interi => extra- CPU time = costo ricerca = O(log n); Ricerca binaria nell’array => confronto tra interi => extra- CPU time = costo ricerca = O(log n); Crescita complessità preprocessing per l’ordinamento dell’array: Crescita complessità preprocessing per l’ordinamento dell’array: O(kn log n)
Fixed Queries Arrays Algoritmo per una range query. Ad ogni colonna corrisponde un pivot; in ogni riga abbiamo le distanze di un prototipo dai k pivot. Nell’esempio: k=4, {d(q,p 1 ),…,d(q,p 4 )}={3,4,5,4} e r=2: prendo il pivot p 1 : per ogni valore intero i contenuto in [d(q, p 1 )-r, d(q, p 1 )+r] cerco nell’array i punti x t.c. d(x,p 1 ) = i; prendo il pivot p 1 : per ogni valore intero i contenuto in [d(q, p 1 )-r, d(q, p 1 )+r] cerco nell’array i punti x t.c. d(x,p 1 ) = i; questi punti costituiscono la lista dei candidati provvisoria; questi punti costituiscono la lista dei candidati provvisoria; Itero la ricerca per p 2, p 3, …, p k. Itero la ricerca per p 2, p 3, …, p k.
Verifica prestazioni e conclusioni Paragone tra k-AESA e metodi “esaustivi”: n = numero distanze calcolate col metodo esaustivo; n = numero distanze calcolate col metodo esaustivo; T ES = tempo di calcolo “esaustivo”; T ES = tempo di calcolo “esaustivo”; H = misura relativa dell’approssimazione introdotta usando la disuguaglianza triangolare. H = misura relativa dell’approssimazione introdotta usando la disuguaglianza triangolare. Il tasso di errore cresce con H; Il tasso di errore cresce con H; T/T ES e NC/n decrescono con H, perché ad una misura più larga corrispondono minor accuratezza e significatività, ma maggior velocità d’esecuzione. T/T ES e NC/n decrescono con H, perché ad una misura più larga corrispondono minor accuratezza e significatività, ma maggior velocità d’esecuzione.
Verifica prestazioni e conclusioni Confronto k-AESA – k-LAESA: Il numero di distanze calcolate è indipendente dal numero dei prototipi; Il numero di distanze calcolate è indipendente dal numero dei prototipi; la dimensionalità come fattore molto influente; la dimensionalità come fattore molto influente; si nota il leggero peggioramento delle prestazioni di LAESA. si nota il leggero peggioramento delle prestazioni di LAESA.
Verifica prestazioni e conclusioni Determinazione numero ottimale di prototipi base in k- AESA: Il numero di dimensioni è un fattore ancora determinante; Il numero di dimensioni è un fattore ancora determinante; non bisogna dimenticare l’errore introdotto con l’uso di N p pivot; non bisogna dimenticare l’errore introdotto con l’uso di N p pivot; in generale N p troppo grande non porta ad una corrispondente crescita di significatività. in generale N p troppo grande non porta ad una corrispondente crescita di significatività.