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

Download Report

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