Transcript 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; 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 pruning
più efficaci.
si interviene con politiche di 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: 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(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
Distinguo tra:
p B
e
p P-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:
dimensionali PBT
lavorano su spazi vettoriali
k-
=> 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
dimensione (
pivot
).
crea
k arrays,
uno per ogni
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
un indice meno “pesante”; con creazione di 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 )
1 1 3 4 5 5 2 3 3 4 5 6 1 3 3 4 4 6
k=1 k=2 k=3
Ricerca binaria nell’
array
=> confronto tra interi =>
extra CPU time =
costo ricerca =
O(log n);
Crescita complessità
preprocessing
dell’
array:
per l’ordinamento
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 d(x,p 1 ) = i;
i punti
x
t.c. questi punti costituiscono la lista dei candidati provvisoria; 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;
T ES =
tempo di calcolo “esaustivo”;
H
= misura relativa dell’approssimazione introdotta usando la disuguaglianza triangolare.
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.
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
N p pivot;
in generale
N p
di significatività.
troppo grande non porta ad una corrispondente crescita