200 likes | 318 Views
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;
E N D
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); • LAESA (Linear AESA); • Spaghettis; • 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 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; • simmetria: d(x,y) = d(y,x); • 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(n2) n(n-1)/2 • Idea di base: funzionamento del tutto simile agli altri algoritmi k-NN: Definizione di prototipi attivi (a), selezionati(s) ed eliminati. Fasi di approximating ed eliminating: definizione di un lower bound sul quale eseguire il pruning.
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(n2); • 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 Distinguo tra: pB e pP-B Doppia condizione per il pruning di 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,pi)-d(q,pi)|≤r pi • Scomponendo, lungo ogni coordinata i: xi [ai ,bi] dove: ai = d(q,pi) – r, bi = d(q,pi) + 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 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,p1) d(q,p2) d(q,p3) k=1 k=2 k=3 Ricerca binaria nell’array => confronto tra interi => extra-CPU time = costo ricerca = O(log n); 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,p1),…,d(q,p4)}={3,4,5,4} e r=2: • prendo il pivot p1: per ogni valore intero i contenuto in [d(q, p1)-r, d(q, p1)+r] cerco nell’array i punti x t.c. d(x,p1) = i; • questi punti costituiscono la lista dei candidati provvisoria; • Itero la ricerca per p2, p3, …, pk.
Verifica prestazioni e conclusioni Paragone tra k-AESA e metodi “esaustivi”: • n = numero distanze calcolate col metodo esaustivo; • TES= tempo di calcolo “esaustivo”; • H = misura relativa dell’approssimazione introdotta usando la disuguaglianza triangolare. • Il tasso di errore cresce con H; • T/TESe 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; • la dimensionalità come fattore molto influente; • 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; • non bisogna dimenticare l’errore introdotto con l’uso di Np pivot; • in generale Nptroppo grande non porta ad una corrispondente crescita di significatività.