Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK 8. Metrické přístupové metody (MAM) 3. část – M-strom a varianty.

Podobné prezentace


Prezentace na téma: "Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK 8. Metrické přístupové metody (MAM) 3. část – M-strom a varianty."— Transkript prezentace:

1 Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK 8. Metrické přístupové metody (MAM) 3. část – M-strom a varianty

2 Osnova M-strom  principy  Slim-tree  vícecestné vkládání a zobecněný slim-down algoritmus PM-strom  motivace  struktura

3 (euklidovský 2D prostor) M-strom  dynamický, vyvážený, a stránkovaný metrický strom (vychází z B+-stromu, resp. principů R-stromu)  v listech jsou shluky datových objektů  ve vnitřních uzlech jsou směrovací záznamy (routing entries), které reprezentují sférické metrické regiony, které ohraničují všechny objekty v příslušném podstromu  metrické axiomy dovolují odfiltrovat irelevantní větve M-stromu (a tím i irelevantní objekty) během vyhodnocování dotazu

4 Uzly M-stromu – detaily (1) listový uzel M-stromu  obsahuje datové (ground) záznamy grnd(O i ) = [O i, D p, oid] O i je reprezentace datového objektu (tj. O i  S) D p je vzdálenost k rodičovskému směrovacímu objektu oid je identifikátor skutečného DB objektu (např. obrázku) příslušného k O i vnitřní uzel M-stromu  obsahuje směrovací (routing) záznamy rout(O i ) = [O i, r Oi, D p, ptr] O i a r Oi tvoří je kulový region (O i, r Oi ) (O i se nazývá směrovací objekt – routing object) D p je vzdálenost k rodičovskému směrovacímu objektu ptr je pointer na podstrom – tzv. pokrývající podstrom (covering subtree)

5 Uzly M-stromu – detaily (2) invarianty hierarchie M-stromu:  vyváženost (ala B+-strom)  data v listech (ala B+-stromu), neduplikují se  hnízdící invariant M-stromu: listová data podstromu příslušnému směrovacímu záznamu spadají dovnitř regionu směrovacímu záznamu konstrukční důsledky  regiony směrovacích záznamů na stejné úrovni stromu se mohou překrývat  child-regiony mohou „čouhat ven“ z rodičovských regionů, pokud je splněn hnídzící invariant filtrační důsledky  pokud dotazový region nepřekrývá region směrovacího záznamu, může být příslušný podstrom odfiltrován jako irelevantní  dotaz může na stejné úrovni stromu překrývat více regionů, tj. při vyhledávání se prochází více větví M-stromu (a to i v případě bodového dotazu, kvůli možnému překryvu „sousedních“ regionů)

6 (euklidovský 2D prostor) rozahový dotaz Rozsahový dotaz v M-stromu Během vyhodnocování rozsahového dotazu je M-strom procházen stylem LIFO. Vstupuje se pouze do těch uzlů, jejichž regiony překrývají dotazový region.

7 Optimalizace filtrace Vzdálenost k rodičovskému směrovacímu objektu D p lze využít k pokusu o odfiltrování regionu (v nelistech) nebo objektu (v listech), aniž by se musela počítat vzdálenost regionu/objektu k dotazu. Princip: Vyrobím „prstenec“ z rodičovského směrovacího objektu, kde menší poloměr je rozdíl vzdálenosti k rodiči D p, a poloměru testovaného regionu r Oi (anebo nula, pokud je rozdíl záporný). Větší poloměr je součtem D p a r Oi.Pro listový objekt má prstenec nulovou tloušťku. Pokud se tento prstenec neprotíná s dotazem, nemůže se protínat ani žádná koule uvnitř prstence, tj. ani testovaný region. Test průniku prstence a dotazu je „zadarmo“, protože vzdálenost rodičovského směrovacího objektu k dotazu už jsme spočítali na vyšší úrovni M-stromu.

8 Konstrukce M-stromu dynamicky: podobně jako u R-stromu  nalezení vhodného listu pro vložení objektu  případné štěpení uzlu (v nejhorším případě štepení všech uzlů na „vkládací cestě“) různé politiky štěpení staticky: bulk-loading algoritmus  dávkový algoritmus, kdy je potřeba celou sadu rychle a najednou zaindexovat – vychází z principů bulk-loading algoritmů v R-stromu  využívá se klasický k-cestný algoritmus shlukování s tím, že shluky se rekurzivně „hierarchizují“ do stromu (aby to mohl být M-strom, je navíc potřeba vyvažovat)  rychlejší než dynamické vkládání ale horší hierarchie M-stromu (větší „objemy“ a více překryvů regionů) – experimentálně dynamicky/staticky + postprocessing (viz slim-down algoritmus dále)

9 M-strom, dynamické vkládání – jednocestné nalezení listu Prochází se po jediné větvi M-stromu a to tak, že je zvolen ten podstrom daného uzlu, jehož směrovací region nemusí být po vložení objektu rozšířen a/nebo jehož směrovací objekt je nejblíže ke vkládanému objektu. O(log(|S|)) složitost. O new O w O u O v O z rout) 0 (O w rout) 1 (O u rout) 1 (O w grnd(O z ) w ) v ) u )

10 Štěpení uzlu M-stromu Algoritmus štěpení uzlu: 1) vyberou se směrovací objekty pro nové dva uzly, z nich se vytvoří směrovací záznamy, vybírá se podle tzv. promoting policy 2) objekty se rozdělí do nových uzlů, rozděluje se podle tzv. partitioning policy 3) jeden nový uzel nahradí původní, druhý je alokován 4) oba směrovací záznamy se vloží do rodičovského uzlu (původní směrovací záznam je nahrazen jedním z nových) 5) pokud rodičovský uzel přeteče, štěpí se stejně – pokud se rozštěpí uzel, strom povyroste o jednu úroveň

11 Štěpení uzlu M-stromu – promoting policies random  náhodně se vyberou dva objekty  složitost O(1) – nepočítá se žádná vzdálenost minMax, minAvg  každé dva objekty jsou kandidáty, ke každé dvojici se „cvičně“ provede rozdělení ostatních objektů podle partitioning policy (viz příští slide) – tím vzniknou dva kulové regiony (každý obsahuje „svoje“ objekty)  vybere se ta dvojice kandidátů, pro jejichž regiony platí (vzhledem k ostatím kandidátům), že větší z obou poloměrů nejmenší – v případě minMax průměr obou poloměrů nejmenší – v případě minAvg  složitost O(n 3 ), z čehož se počítá O(n 2 ) vzdáleností a O(n)-krát se rozdělují objekty (CPU costs) sampling  variace minMax a minAvg s tím, že se nezkoumají všechny dvojice, ale nasampluje se menší vzorek  složitost O(n) až O(n 3 )

12 Štěpení uzlu M-stromu – partitioning policies Objekty se přidělí ke dvěma směrovacím objektům, nejvzdálenější objekt zároveň definuje poloměr. U rozdělování směrovacích objektů, tj. vlastně regionů (když se štěpí vnitřní uzel) je vzdálenost k regionu definována jako horní hranice, tj. vzdálenost ke směrovacímu objektu + poloměr. vyvážené dělení  objekty uzlu se setřídí vzestupně podle vzdálenosti ke směrovacímu objektu (zvlášť pro oba směrovací objekty)  střídavě se přidělují objekty k bližšímu směrovacímu objektu v pořadí příslušném setřídění pro daný směrovací objekt  zajišťuje vyváženost – oba uzly obsahují stejný počet objekty  obecně větší překryvy než u dělení dělení nadrovinou  objekty se přidělí k bližšímu směrovacímu objektu kombinace  nejprve vyvážené dělení – do limitního využití uzlu (např. 30%)  potom dělení nadrovinou

13 Slim-strom vychází z M-stromu, má dvě vylepšení  levnější dělení uzlu  základní slim-down algoritmus () dělení uzlu podle minimální kostry grafu  všem dvojicím objektů v děleném uzlu se spočítá vzdálenost – obdržíme úplný graf  podle Kruskalova algoritmu se nalezne minimální kostra (kostra, kde suma vah hran je minimální) – angl. MST – minimum spanning tree  odstraní se nejdelší hrana z MST – vzniknou dvě komponenty, které tvoří obsah nových uzlů (musí se z nich ještě vybrat směrovací objekty)  složitost O(n 2 log(n)), z čehož se počítá O(n 2 ) vzdáleností (úplný graf)

14 k-NN dotazy v M-stromu heuristický branch-and-bound algoritmus (vychází z algoritmu pro R-strom) modifikace rozsahového dotazu, ale poloměr dotazu r Q je dynamický r Q se zmenšuje z nekonečna až do vzdálenosti ke k-tému sousedovi využívají se dvě struktury: prioritní fronta PR and setříděné pole NN  PR: uchovává požadavky na zpracování dosud neodfiltrovaných uzlů požadavek má tvar [směrovací záznam k uzlu N, d min (N)], kde d min (N) je dolní hranice vzdáleností od Q ke všem možným objektům v N, tj. d min (směr. zázn. k N) = max {0, d(Q, O i ) – r Oi }, kde (O i, r Oi ) je region směrovacího záznamu pro uzel N požadavky jsou v PR udržovány setříděny vzestupně podle d min (N))  NN: uchovává k kandidátů na nejbližší sousedy (nebo horní hranice vzdáleností) na konci NN obsahuje výsledek, tj. k nejbližšch sousedů položka NN má tvar [kandidátský objekt Oi, d(Q,Oi)] nebo [ -, d max (N)], kde d max (·) is horní hranice vzdáleností od Q ke všem možným objektům v N, tj. d max ( směr. zázn. k N) = d(Q, O i ) + r Oi PR udržuje ty požadavky, jejichž d min ( · ) < d max ( · ), ostatní jsou odstraňovány, tj. jsou odstraňovány ty (resp. filtrovány příslušné uzly), které nepřekrývají dynamický region dotazu (Q, r Q ) – r Q je vzdálenost posledního prvků (kandidáta) v NN Vykonání dotazu: požadavky v PR jsou zpracovávány FIFO stylem → načte se uzel N, přičemž PR a NN se aktualizují o záznamy z N  PR je inicializována na ([root, ∞]), NN je inicializována k záznamy [-,∞] to ([-,∞], [-,∞],...)  I/O optimalní (totožné I/O náklady jako rozsahový dotaz (Q, d(Q, NN[5]) ) )

15 načti root r Q = ∞ načti uzel(II.) d min (I.) d min (II.) = 0 d max (I.) d max (II.) k-NN dotazy v M-stromu: příklad (k=2)

16 d min (C) d min (D) d max (D) d max (C) načti uzel(D) d max (O 5 ) d max (O 6 ) k-NN dotazy v M-stromu: příklad (k=2)

17 načti uzel(I.) d min (B) načti uzel(B) d max (O 4 ) 5 uzlů načteno, stejně jako v případě rozsahového dotazu (Q, d(Q,O 5 ) ) k-NN dotazy v M-stromu: příklad (k=2)

18 důležitější je rychlost vyhledávání mnoho uživatelů a dotazů ve stejném čase náklady na konstrukci indexu mohou vzrůst aktualizace jsou daleko méně časté než dotazy Revize M-stromu

19 M-strom, vícecestné vkládání List pro vložení nového objektu se hledá tak, že se provede série bodových dotazů, která označí (neplné) listy, do kterých objekt „padne“. Z nich se vybere ten nejbližší. Pokud takový neexistuje, provede se klasické jednocestné vložení. O(|S|) složitost O new O w O u O v O z rout) 0 (O w rout) 1 (O u rout) 1 (O w grnd(O z ) w ) v ) u )

20 Jednocestné vs. vícecestné vkládání výhody vícecestného vkládání  menší objem a překryvy regionů, tj. vyšší efektivita vyhledávání vkládání dovnitř listu, tj. minimalizace rozšiřování regionů (rozšiřuje se pouze při jednocestném vkládání) vkládá se do neplných listů, tj. dochází méně často ke štěpení – a štěpení často nárůst objemu a překryvů  vyšší využití uzlů, tj. vyšší efektivita vyhledávání a nižší náklady na uložení indexu díky vkládání do neplných listů se „málo štěpí“ a „více zahušťuje“ nevýhody  výrazně vyšší náklady na konstrukci – místo jedné cesty se prochází více cest

21 M-strom, zobecněný slim-down algoritmus Post-process metoda inspirovaná jednodušší variantou u Slim-tree. V principu jde o redistribuci listových záznamů (jako u Slim-tree) a také o redistribuci směrovacích záznamů (zobecnění) uvnitř již zkonstruovaného M-stromu. Redistribuce se se provádí po úrovních M-stromu, tj. pro každý objekt (uvnitř uzlu) na jedné úrovni M-stromu se nalezne nejlepší uzel, kam lze daný uzel přemístit. Nejlepší uzel se nalezne sérií dotazů, kde dotazem je přemisťovaný směrovací nebo datový objekt a kandidátní jsou ty uzly, které jsou na stejné úrovni (jako je objekt) a region objekt se vejde dovnitř regionu nalezeného uzlu. Z kandidátních uzlů se vybere ten, který je nejblíže. Algoritmus začíná na listové úroveni M-stromu. Výhody: - výrazné zmenšení objemů a překryvů regionů, což zvyšuje efektivitu dotazování - stabilní algoritmus (může být kdykoliv přerušen a opět spuštěn) Nevýhody: - velké náklady – jak I/O, tak výpočetní (pro každý objekt v indexu se v podstatě provede dotaz)

22 M-strom, zobecněný slim-down algoritmus (příklad) Mějme korektně, ale „mizerně“ zkostruovaný M-strom. Regiony se vysoce překrývají a jejich objem je velký. Slimming the leaf level (Level 0) Dva listové objekty přemístíme do „lepších“ listů.

23 M-strom, zobecněný slim-down algoritmus (příklad) Slimming Level 1 Dva směrovací záznamy na předlistové úrovni přemístíme do „lepších“ uzlů. Poloměry (tj. i objemy) listových a dokonce i nelistových regionů se zmenšily. Zmenšily se i překryvy.

24 M-strom, zobecněný slim-down algoritmus (příklad) The slimmed M-tree Kořen už nejde zpracovat, protože nemá rodiče a tedy není co zmenšovat. Opět, poloměry i překryvy regionů se zmenšily.

25 Motivace pro PM-strom metrické regiony M-stromu jsou zbytečně velké  indexují se velké kusy prázdného prostoru (mrtvý prostor - the “dead” space)  vyšší pravděpodobnost průniku s regionem dotazu  nižší efektivita vyhledávání redukce „objemu“ metrického regionu region by měla vést k efektivnějšímu filtrování irelevantních podstromů otázka je jak specifikovat kompaktní metrický region, který ohraničuje všechny datové objekty více „těsně“  zobecnění M-stromu pro jiné reprezentace „tvaru“ metrického regionu

26 Tvar kompaktního regionu (1) Čtyři požadavky na optimální reprezentaci „tvaru“ metrického regionu: 1)kompaktní uložení - vnitřní uzly by měly v paměti zabírat daleko méně prostoru než listy 2)kompaktní tvar - malý „objem“ mrtvého prostoru 3)jednoduchý test průniku - průnik regionu a dotazu by měl být jednoduše spočitatelný 4)jednoduché vytvoření nadregionu z množiny regionů - kvůli štěpení vnitřních uzlů je potřeba konstruovat nadregion ohraničující rozdělované (nad)regiony - tento požadavek je specifický pro dynamické hierarchické aktualizace (zobecnění štěpení B+-stromu)

27 Tvar kompaktního regionu (2) Reprezentace regionu: (O i,r Oi ) 1)kompaktní uložení 2)nekompaktní tvar 3)jednoduchý test průniku (jediný výpočet vzdálenosti) 4)jednoduché vnořování (koule) Reprezentace regionu: (O 1, O 2, O 3,...) 1)nekompaktní uložení (všechny objekty v podstromu) 2)kompaktní tvar (nulový objem mrtvého prostoru) 3)drahý výpočet průniku (mnoho výpočtů vzdálenosti) 4)jednoduché vnořování (sjednocení) OiOi Hyper-koule (původní region M-stromu) O2O2 O5O5 O4O4 O3O3 O6O6 r Oi O1O1 O2O2 O5O5 O4O4 O3O3 O6O6 „Zrnitý“ region

28 Tvar kompaktního regionu (3) Reprezentace regionu: ??? 1)docela kompaktní uložení 2)docela kompaktní tvar 3)docela jednoduchý test průniku 4)docela jednoduché vnořování O1O1 O2O2 O5O5 O4O4 O3O3 O6O6 ? ?

29 Region PM-stromu  využití globálních pivotů (inspirováno LAESA metodou)  dána pevná množina p globalních pivotů P i (vybraných z dat)  je definováno p hyper-prstencových regionů (P i, HR[i]) pro každý směrovací záznam  pole HR p intervalů  každý interval HR[i] ohraničuje vzdálenosti objektů ke každému pivotu P i  region PM-stromu = region M-stromu + pole HR (pivoty P i jsou sdíleny pro všechny regiony)  průnik hyper-koule a hyper-prstenců tvoří menší region ohraničující všechny objekty v listech  čím víc pivotů, tím těsnější ohraničení regionu  PM-strom je budován stejně jako M-strom, tj. hyper-prstence pouze „ořezávají“ kouli M-stromu

30 region PM-stromu PM-strom, vykonávání dotazu před vykonáním dotazu (Q,r Q ), se spočítají vzdálenosti d(Q, P i )  i ≤ p metrický region je relevantní k dotazu právě v případě, že všechny prstence (a koule) protínají region dotazu  čím více prstenců, tím nižší pravděpodobnost průniku s dotazem  pro test průniku žádné další výpočty vzdáleností nejsou potřeba region M-stromu dotaz Q Q

31 PM-strom, uložení prstenců směrovací záznamy uzlů PM-stromu jsou zvětšeny o další informaci – HR pole intervalů aby režie uložení byla minimální, je potřeba kompaktní uložení intervalu HR[i] vytvoří se histogram vzdáleností pro každý pivot P i, a vybere se interval tak, že např. 90% vzdáleností v histogramu padne do tohoto intervalu každá hodnota HR[i].min, HR[i].max se přeškáluje do intervalu pomocí jediného bytu, tj. každý prstenec HR[i] zabere 2 byty O i, r, ptr(T),... HR[1],HR[2],...,HR[p] uložení pole HR záznam uzlu M-stromu

32 Srovnání hierarchie M-stromu a PM-stromu

33 Experimentální srovnání (syntetická sada) syntetická sada vektorů (4D – 60D); 100,000 vektorů; 1000 shluků velikosti diskových stránek: 1 KB – 4 KB; velikosti indexů: 4.5 MB – 55 MB

34 Experimentální srovnání (databáze obrázků) WBIIS databáze obrázků; cca 10, D-vektory (histogramy šedi) velikost diskových stránek: 32 KB; velikost indexů: 16 MB – 20 MB


Stáhnout ppt "Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK 8. Metrické přístupové metody (MAM) 3. část – M-strom a varianty."

Podobné prezentace


Reklamy Google