m-chord : a scalable distributed similarity search structure

28
David Novak and Pavel Zezula GRUPPO 13 Decorte Andrea Giammarino Giuseppe

Upload: percy

Post on 16-Jan-2016

50 views

Category:

Documents


0 download

DESCRIPTION

M-Chord : A Scalable Distributed Similarity Search Structure. David Novak and Pavel Zezula. GRUPPO 13 Decorte Andrea Giammarino Giuseppe. Esempio. Utente f0rnisce un’immagine Trovare immagini simili nel database basandosi su distanza quadratica tra le features. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: M-Chord : A  Scalable Distributed Similarity Search Structure

David Novak and Pavel Zezula

GRUPPO 13Decorte Andrea Giammarino Giuseppe

Page 2: M-Chord : A  Scalable Distributed Similarity Search Structure

Utente f0rnisce un’immagineTrovare immagini simili nel database

basandosi su distanza quadratica tra lefeatures

)()())(();,(1 1

, qhAqhqhqhaAqhL TD

i

D

jjjiijiA

Difficoltà nel lavorare con dati di questo genere?

2Gruppo 13 M-Chord

Page 3: M-Chord : A  Scalable Distributed Similarity Search Structure

Dati ad alta dimensionalitàFunzioni distanza onerose computazionalmente

(nell’ordine di O(D2))Dati non gestibili efficientemente con spazi

vettorialiQuery multidimensionali di similarità

Servono nuove strategie!3Gruppo 13 M-Chord

Page 4: M-Chord : A  Scalable Distributed Similarity Search Structure

Introduzione di spazi metrici anziché vettorialiSviluppo di strategie distribuite per dividere il

carico di lavoro su nodi interconnessi tra loroAl momento della pubblicazione, numerosi

studi su applicazioni di ricerca distribuita, ma la maggior parte di loro si concentrano su spazi vettoriali

Gli unici riguardanti spazi metrici sono GHT* (nativamente metrica, basata sui Generalized Hyperplane Tree) e MCAN, che estende il protocollo CAN (Content Addressable Network)

4Gruppo 13 M-Chord

Page 5: M-Chord : A  Scalable Distributed Similarity Search Structure

Sviluppare una struttura per la ricerca distribuita che sia applicabile a spazi metrici basandosi su alcune soluzioni esistenti:iDistanceProtocollo Chord

Esse verranno integrate ed estese nella struttura di M-Chord

5Gruppo 13 M-Chord

Page 6: M-Chord : A  Scalable Distributed Similarity Search Structure

Uno spazio metrico M è una coppia (U, d)U è il dominio degli oggetti d è una funzione di distanza Tutti gli oggetti di U soddisfano le seguenti

proprietà:

)(),(),(

),(),(

0),(

0),(

zydyxdzxd

xydyxd

yxiffyxd

yxd

).(

)(

)(

)(

etriangolardiseg

simmetria

identità

negativitànon

6Gruppo 13 M-Chord

Page 7: M-Chord : A  Scalable Distributed Similarity Search Structure

Metodo di indicizzazione per ricerca di similarità in spazi vettoriali

Partizione dei dati in n cluster, rappresentati da un pivot pi

A ogni oggetto x viene assegnata chiave unidimensionale che tiene conto della distanza dal pivot

c è una costante per separare i clusterValori sono memorizzati in un B+-tree sulla

base della chiave iDist(x)

cixpdxiDist i ),()(

7Gruppo 13 M-Chord

Page 8: M-Chord : A  Scalable Distributed Similarity Search Structure

P0

P2C0

C1

C2

C 2*C 3*C

P1

8Gruppo 13 M-Chord

Page 9: M-Chord : A  Scalable Distributed Similarity Search Structure

Protocollo P2P per Distributed Hash Table Chord specifica come chiavi debbano essere

assegnate ai nodi, come si possa localizzare nodo responsabile per una chiave e come esso recuperi valore di una chiave specifica

Basato su scambio di messaggiDinamico, consistent hashingDominio mappato uniformemente

nell’intervallo [0,2m)

9Gruppo 13 M-Chord

Page 10: M-Chord : A  Scalable Distributed Similarity Search Structure

Le chiavi Ki sono disposte su un cerchio

A ogni nodo Ni viene assegnata la chiave

Ki dallo stesso dominioNodo Ni responsabile per tutte le chiavi

dell’intervallo (Ki-1, Ki](mod 2m)

Ogni nodo mantiene successore, predecessore e finger table, che garantisce un routing di complessità O(log n)

10Gruppo 13 M-Chord

Page 11: M-Chord : A  Scalable Distributed Similarity Search Structure

N1

N8

N14

N21

N51

N48

N42

N38N32

+1+2+4

+8+16

+32

11Gruppo 13 M-Chord

• Finger table ha dimensioni minori rispetto al numero totale nodi

• Necessario mantenerlaaggiornata nel

tempo

• Non contiene info necessarie per

raggiungere valori di chiave direttamente

• Tiene anche in conto possibilità di failure

del nodo

Page 12: M-Chord : A  Scalable Distributed Similarity Search Structure

12Gruppo 13 M-Chord

N1

N8

N14

N21

N51

N48

N42

N38N32

lookup(54)

K54Cercando la chiave 54 è necessario visitare 2 altri nodi.Se non avessi finger table, li dovrei passare tutti!

Algoritmo semplificato per cercare una chiave:• Se appartiene a chiavi locali, restituisci il valore• Altrimenti accedi alla finger table e cerca il più grande predecessore

della chiave richiesta, in modo da avvicinarsi il più possibile al nodo che contiene la chiave

N56

Page 13: M-Chord : A  Scalable Distributed Similarity Search Structure

Idee alla base di M-Chord:Generalizzare iDistance a spazi metrici e

adattare il suo dominio a quello di ChordDividere il dominio in intervalli da distribuire

sui diversi nodiSviluppare gli algoritmi Range e kNNIntrodurre meccanismi di pruning

13Gruppo 13 M-Chord

Page 14: M-Chord : A  Scalable Distributed Similarity Search Structure

Durante partizionamento, che sfrutta diagrammi di Voronoi, distanze dei punti da ogni pivot sono salvate per essere poi sfruttate nel pruning delle query di Range

Data una query Range(q, r), per diseguaglianza triangolare oggetto x può essere escluso senza valutare d(q, x) se

xr

q Pi

d(x,Pi)

- d(q,Pi)>r ?

rqpdxpdnii ii |),(),(|:)0(

14Gruppo 13 M-Chord

Page 15: M-Chord : A  Scalable Distributed Similarity Search Structure

Selezione pivotCriterio di selezione: aumentare il più possibile

il filtraggioDominio dei dati

Necessaria una funzione di trasformazione h per normalizzare il dominio fornito da iDistance sull’intervallo [0, 2m) ed ottenere una distribuzione uniforme

)),(()( cixpdhxmchord i

15Gruppo 13 M-Chord

Page 16: M-Chord : A  Scalable Distributed Similarity Search Structure

Topologia della rete corrisponde a quella di Chord

Fase di inizializzazione (SampleSet S, numero pivot)Un solo nodo attivo che copre tutto (chiave 2m-

1)Selezione dei pivot su SSi applica formula di iDistance su S per avere

distribuzione dei dati e si ricava funzione di trasformazione h in modo da poter calcolare mchord(x)

16Gruppo 13 M-Chord

Page 17: M-Chord : A  Scalable Distributed Similarity Search Structure

Attivazione altri nodiI nodi a cui non sono assegnate chiavi sono non

attiviOgni nodo attivo può invocare una richiesta di

split secondo criteri personalizzati (carico…)Procedura di split

Si determina la nuova chiave Ki da assegnare al nodo

Si spostano i dati al nuovo nodo e si segue il meccanismo standard di join di Chord

Si cerca di seguire le forme dei cluster se intervallo copre più di un cluster

17Gruppo 13 M-Chord

Page 18: M-Chord : A  Scalable Distributed Similarity Search Structure

Segue l’idea di range query di iDistanceIl nodo Nq che avvia la query procede nel

seguente modo:Determina per ogni cluster Ci l’intervallo di

chiavi Ii

Per ogni i invia una richiesta di INTERVALSEARCH(Ii, q, r) al nodo Ni responsabile per il punto centrale dell’intervallo Ii

)]),((),),(([ rciqpdhrciqpdhI iii

18Gruppo 13 M-Chord

Page 19: M-Chord : A  Scalable Distributed Similarity Search Structure

Se nodo non responsabile dell’intero intervallo, inoltra richiesta a predecessore/successore

Ogni nodo crea risposta localeche include gli x | d(q,x)≤ r

Invio risposta segnalandoeventualmente che ènecessario attendere quelladi altri nodi

Qui si sfruttano distanzecalcolate in precedenzae formula di filtraggio di iDistance

I1

I2

I3

NqNI1

NI2

NI3

19Gruppo 13 M-Chord

wait

Page 20: M-Chord : A  Scalable Distributed Similarity Search Structure

iDistance può escludere un cluster i da ricerca se

d(pi, q) –r > max-disti

Tale pruning non è applicabile in ambienti distribuiti (max-disti non conosciuto da tutti i nodi)

20Gruppo 13 M-Chord

Pi

max-disti

qr

Page 21: M-Chord : A  Scalable Distributed Similarity Search Structure

Approccio di iDistance non adatto ad ambienti distribuiti (query di range a raggio crescente)

Proposta degli autori:1. Utilizzo un’euristica a basso costo per trovare

k oggetti vicino q; δk è un’approssimazione (upper bound) della distanza del k-esimo oggetto

21Gruppo 13 M-Chord

Page 22: M-Chord : A  Scalable Distributed Similarity Search Structure

Nodo responsabile per mchord(q) cerca nel cluster Ci a cui appartiene q

1.Localizza la foglia del B+-Tree dove si trova q2.Esplora a sinistra e destra le foglie e aggiunge

i primi k oggetti al ResultSet, inizializzando δk

3.Continua a esaminare x finché le chiavi mchord(x) appartengono a

4.Se d(q,x) < δk aggiungo x a RS al posto del k-esimo oggetto e aggiorno δk

5.Continuo ricerca finché non ho esplorato tutto Ii o tutto cluster Ci

)]),((),),(([ kikii ciqpdhciqpdhI

22Gruppo 13 M-Chord

q

K=2

δk = distanza K-esimo oggetto

- δk + δk

mchord(q)

Page 23: M-Chord : A  Scalable Distributed Similarity Search Structure

2. Eseguo una query di Range (q, δk) su altri cluster (salto spazio già esplorato) e restituisco i k oggetti più vicini

Si presume la presenza di almeno k oggetti in Ci, altrimenti strategia ottimistica

23Gruppo 13 M-Chord

Page 24: M-Chord : A  Scalable Distributed Similarity Search Structure

2 dataset di esempio: Immagini rappresentate da vettori di 45

dimensioniCorpus di testi confrontati con edit distance

Buona scalabilità all’aumentare delle dimensioni della query e del datasetCresce tuttavia numero messaggi scambiati

Possibilità di influire sulle prestazioni agendo su politiche di split dei nodi

24Gruppo 13 M-Chord

Page 25: M-Chord : A  Scalable Distributed Similarity Search Structure

Buoni livelli di parallelismo intraquery (stessa query processata in parallelo) ed interquery (più query contemporanee)

25Gruppo 13 M-Chord

Page 26: M-Chord : A  Scalable Distributed Similarity Search Structure

Costi maggiori per kNN query

26Gruppo 13 M-Chord

Page 27: M-Chord : A  Scalable Distributed Similarity Search Structure

Limiti:Previsto solo inserimento nuovi oggetti, no

eliminazione/aggiornamentoNessun supporto per disconnessione nodiPruning di iDistance da adattare a ambiente

distribuitoUlteriori studi:

Prestazioni su spazi vettoriali a bassa dimensionalità

Replicazione

27Gruppo 13 M-Chord

Page 28: M-Chord : A  Scalable Distributed Similarity Search Structure

GRUPPO 13

Decorte Andrea

Giammarino Giuseppe