1 / 20

Studio degli indici per query di similarità basati su matrici di distanze

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;

selena
Download Presentation

Studio degli indici per query di similarità basati su matrici di distanze

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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.

  3. 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.

  4. 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

  5. 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

  6. 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.

  7. 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.

  8. 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.

  9. 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.

  10. 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

  11. 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

  12. 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:

  13. 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).

  14. 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).

  15. 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.

  16. 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)

  17. 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.

  18. 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.

  19. 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.

  20. 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à.

More Related