Title: Vyhled
1Vyhledávání v multimediálních databázíchTomáš
SkopalKSI MFF UK
- 7. Metrické prístupové metody (MAM) 2. cást
maticové a statické metody, D-index
2Osnova
- maticové MAM
- AESA, LAESA
- statické MAM
- gh-strom
- GNAT
- vp-strom
- mvp-strom
- SAT
- metrické hašování D-index
- metody volby globálních pivotu
3AESA/LAESA (1)
- (Linear) Approximating and Eliminating Search
Algorithm - volba globálních pivotu
- u AESA je pocet pivotu roven S
- tj. pri pridání objektu do S vzroste i pocet
pivotu - u LAESA se vybere konstantní pocet pivotu k lt S
- pri pridání objektu do S se pivoty nemení
- konstrukce matice vzdáleností (index) od pivotu k
objektum v S - AESA casová i prostorová složitost O(n2), po
pridání nového objektu O do S (což je taky pivot)
je potreba do matice pridat a spocítat sloupec
vzdáleností od O ke všem ostatním objektum - LAESA casová i prostorová složitost O(kn)
4AESA/LAESA (2)
- úzká spojitost s kontraktivní pivot-based metodou
- matice vzdáleností mapování do vektorového
prostoru dimenze k - pri dotazování se využívá L? metrika (v kombinaci
s puvodní metrikou to navíc dovoluje
implementovat i kNN dotazy)
5AESA/LAESA (2)
- puvodne urceno pro NN dotazy
- AESA prumerná složitost vyhledání je O(1)
experimentálne - LAESA prumerná složitost vyhledání je k O(1)
experiment. - lze modifikovat i pro kNN a rozsahové dotazy
- pro kNN se udržuje k kandidátu
- implementace rozsahového dotazu je triviální
prímé odfiltrování objektu podle L? metriky
(kontraktivní vzdálenosti) a dofiltrování puvodní
metrikou d - optimalizováno pouze pro minimalizaci poctu
aplikací puvodní metriky - tj. database un-friendly, prochází se sekvencne
celá matice
6NN dotaz - AESA
- podobný algoritmus jako hledání nejbližšího
souseda v Ai u kontraktivního SparseMap mapování
(viz predchozí prednáška) - myšlenka pocítají se prubežne hodnoty mapovaného
vektoru q pro dotaz Q a zároven se filtrují
irelevantní objekty (resp. príslušné vektory) - Algoritmus
- (inicializace) Mejme NN dotaz Q a neprázdnou
množinu pivotu S S. Aktuální vzdálenost k
nejbližšímu sousedovi Onn necht je dmin ?. - Náhodne se vybere pivot P ? S
- Spocítá se vzdálenost d(Q, P), tj. nejaká
souradnice mapovaného vektoru q. Pokud dmin gt
d(Q, P), pak dmin d(Q, Onn) a Onn P. S
S P. - (eliminace) Z S se odfiltrují objekty Oi, pro
jejichž vektory platí L?(q, oi) gt dmin. U oi se
uvažují pouze ty souradnice, které už byly
vypocítány i pro q. - (aproximace) Pokud je S již prázdná, NN byl
nalezen (je to Onn) a algoritmus koncí, jinak se
nalezne ten pivot P ? S, jehož vektor p má
nejmenší L?(q, p). - Opakuje se od kroku 3, až než se odfiltrují
všechny objekty z S (tj. zbude jediný kandidát
Onn pravý nejbližší soused)
7NN dotaz - LAESA
- lze implementovat dvema zpusoby
- jednofázove podobne jako AESA
- souradnice mapovaného dotazového objektu se
pocítají postupne a zároven se filtruje - výhodné, když k je velké, resp. srovnatelné s
S - modifikace oproti AESA je v tom, že pivotu je
méne S ? S a tudíž po vycerpání všech pivotu
se zbytek neodfiltrovaných objektu zpracuje
dvoufázovým zpusobem (kde odpadá první krok,
protože vektor q už je celý spocítaný) - dvoufázove
- spocítá se nejdríve celý vektor q mapovaného
dotazového objektu Q - objekty Oi ? S se setrídí vzestupne podle
vzdáleností L?(q, oi) - v tomto poradí se pocítá se d(Q, Oi), podle toho
se aktualizuje kandidát Onn na nejbližšího
souseda a jakmile d(Q, Onn) lt L?(q, oi),
filtrování koncí (neexistuje žádný bližší
kandidát než Onn) - tj. Onn je výsledek
8AESA/LAESA - zobecnení pro kNN
- u algoritmu AESA se v kroku 5 (aproximace)
neuvažuje pouze nejbližší vektor, ale k
nejbližších vektoru dmin je potom nastaveno na
vzdálenost dmin min(dmin, dk) - dk je maximum ze vzdáleností d(Q, Pi), kde Pi
jsou pivoty príslušné tem k vektorum - u dvoufázového algoritmu LAESA se v kroku 3
aktualizuje k kandidátu (místo jednoho) a
filtruje se podle toho nejvzdálenejšího
(nejvzdálenejšího podle d) - srovnání jednofázového a dvoufázového algoritmu
- jednofázový alg. je výhodný pokud k je vysoké (v
krajním prípade k S, tj. prípad AESA), tj.
dvoufázový algoritmus by v prvním kroku sekvencne
prohledal znacnou cást S - dvoufázový je výhodný pro malé k, protože po
jednorázovém namapování je potreba setrídit
vektory podle L? pouze jednou, címž se redukují
ostatní CPU náklady
9(L)AESA rozšírení pro rozsahový dotaz
- Algoritmus
- Mejme rozsahový dotaz (Q, rQ)
- Zvolí se malý pocet pivotu k.
- Dopocítá se príslušný pocet souradnic vektoru
dotazu q. - Sekvencne se procházejí (zbylé) vektory v S a
filtrují se podle k dimenzí, tj. jsou
odfiltrovány ty objekty, pro které L?(q, oi) gt
rQ. - Pokud zbyl v S malý pocet objektu (anebo byly
vycerpány všechny pivoty), zbytek S se dofiltruje
sekvencne, jinak se zvýší k a pokracuje se krokem
3.
Ukázka filtrování podle jedné dimenze (pivotu)
10Další LAESA-based indexacní metody
- TLAESA
- redukce I/O nákladu použitím stromové struktury
podobné gh-stromu (viz dále) - ROAESA
- AESA heuristiky pro redukci pruchodu maticí
(omezeno pouze na kNN dotazy) - Spaghettis
- redukce I/o nákladu použitím polí setrídených
páru objekt-pivot (jakoby indexování zvlášt pres
všechny pivoty) - OmniFamily
- využití R-stromu a dalších SAM pro indexování
vektoru
11gh-strom (generalized-hyperplane tree)
- binární strom
- každý uzel má prirazeny dva pivoty, podstromy
uchovávají data prostorove rozdelená nadrovinou
mezi obema pivoty - podobné struktury
- Bisector tree
- Voronoi tree
12gh-tree
Rozsahový dotazFiltrování levého
podstromu Pokud nejbližší objekt uvnitr dotazu
(vzhledem k O1) je dál než nejvzdálenejší objekt
uvnitr dotazu (vhledem k O6), muže být levý
podstrom odfiltrován Filtrování pravého podstromu
obrácene.
13GNAT (geometric nearest-neighbor access tree)
- zobecnení gh-stromu na n-ární strom
- nejaká další rozšírení (neuvádíme)
- tj. n pivotu delí prostor na n regionu, kde
myšlenou hranici tvorí ty body všech možných
nadrovin (mezi všemi dvojicemi pivotu), které
nezasahují dovnitr žádného regionu binárního
delení - jinými slovy, všechny body prostoru jsou
rozdeleny do n regionu tak, že bod patrí k
regionu i, pokud je nejblíže k pivotu Oi
všechny ostatní body tvorí onu hranici - body hranice se nejakým dohodnotým zpusobem
rozdelí taky mezi regiony
14GNAT
Rozsahový dotazFiltrování O5-podstromu Pokud
nejbližší objekt uvnitr dotazu (vzhledem k O5) je
dál než nejvzdálenejší objekt uvnitr dotazu
(libovolne vhledem k O1, O3, O4), muže být
O5-podstrom odfiltrován Filtrování odstatních
podstromu podobne.
15vp-strom
16(No Transcript)
17mvp-strom
18(No Transcript)
19SAT (spatial approximation tree)
20(No Transcript)
21Metrické hašování D-index (1)
- založen na delích hašovacích funkcích bps1,r,j,
kde Pj je pivot, dm je medián vzdáleností k
objektum a r je rozdelující parametr - funkce priradí objektu 0 pokud není uvnitr
prstence (Pj, dm r, dm r) a to tak že je
uvnitr koule dané menším polomerem prstence, a
1 pokud také není uvnitr, ale je vne koule dané
vetším polomerem - jinak priradí 2 (když padne dovnitr prstence)
22Metrické hašování D-index (2)
- funkce bps lze kombinovat, takže obdržíme až 2n
hašovacích hodnot složených z 1 a 0, které
odpovídají 2n regionum v prostoru (tvorených
pruniky) - hašovací hodnoty, kde se vyskytuje alespon jedna
2 tvorí tzv. množinu vyloucených (exclusion set) - množina vyloucených lze dále stejným zpusobem
rozdelit (pricemž mužeme použít úplne jiné
pivoty a parametry dm a r)
23D-index
Struktura D-indexuhašované regiony mají své
kapsy (buckets) na disku, množina vyloucených se
dále rozdeluje až je dostatecne malá. Tím
obdržíme nekolikaúrovnový hašovaný index.
Výhody - pokud je polomer dotazu rQ lt r, na
každé úrovni D-indexu se projde maximálne jedna
kapsa- pokud navíc je celý dotaz na dané úrovni
uvnitr množiny vyloucených, pokracuje se na další
úrovni bez potreby pristupovat do kapes na
soucasné úrovniNevýhody- volba pivotu,
parametru dm a r a s tím spojená nevyváženost
struktury- parametr r zpravidla musí být velmi
malý, aby kapsy nebyly prázdné a vše neskoncilo v
množine vyloucených (tj. nevhodné pro velké
dotazy)
24Metody volby globálních pivotu