Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK

Slides:



Advertisements
Podobné prezentace
OZD: Hašování RNDr. Michal Žemlička.
Advertisements

J. Pokorný 1 DOTAZOVACÍ JAZYKY slajdy přednášce DBI006 J. Pokorný MFF UK
Dopravní úloha Literatura Kosková I.: Distribuční úlohy I.
Rekonstrukce povrchu objektů z řezů Obhajoba rigorózní práce 25. června 2003 Radek Sviták
Vyhodnocování dotazů slajdy k LS I155 Jaroslav Pokorný.
Diskrétní matematika Opakování - příklady.
Aplikace teorie grafů Základní pojmy teorie grafů
SQL – tříhodnotová logika
Multi-dimensional Sparse Matrix Storage J. Dvorský, M. Krátký, Katedra informatiky, VŠB – Technická univerzita.
Plošná interpolace (aproximace)
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Algoritmy I Cvičení č. 4.
Automated data mining Ing. Jan Černý Czech Technical University in Prague Faculty of Information Technology.
Aplikace metrických indexovacích metod na data získaná hmotnostní spektrometrií Jiří Novák
Aplikace metrických indexovacích metod na data získaná hmotnostní spektrometrií Ing. Jiří Novák
ADT Strom.
Medians and Order Statistics Nechť A je množina obsahující n různých prvků: Definice: Statistika i-tého řádu je i-tý nejmenší prvek, tj., minimum = statistika.
Skip-List je datová struktura, která může být použita jako náhrada za vyvážené stromy. představují pravděpodobnostní alternativu k vyváženým stromům (struktura.
B-Strom.
LOGISTICKÉ SYSTÉMY 8/14.
1IT S ÍŤOVÝ DATOVÝ MODEL Ing. Jiří Šilhán. S ÍŤOVÝ DATOVÝ MODEL Je historicky nejstarším datovým modelem. Jeho základem jsou vzájemně propojené množiny.
Statistika Vypracoval: Mgr. Lukáš Bičík
Řadicí algoritmy autor: Tadeáš Berkman.
Adresářová služba Active directory
Shlukovací algoritmy založené na vzorkování
Databáze Tabulky a typy dat VY_32_INOVACE_7B11. Proč datové typy ? Abychom mohli do tabulky vložit data, musíme jednotlivým polím (sloupcům) přiřadit.
Rozšíření dotazu a vývoj tématu v IR Jiří Dvorský Jan Martinovič Václav Snášel.
TI 7.1 NEJKRATŠÍ CESTY Nejkratší cesty - kap. 6. TI 7.2 Nejkratší cesty z jednoho uzlu Seznámíme se s následujícími pojmy: w-vzdálenost (vzdálenost na.
ORIENTOVANÉ GRAFY V této části se seznámíme s následujícími pojmy:
Algoritmy a programovací techniky
Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK
Algoritmy vyhledávání a řazení
Stromy.
Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK
Informatika pro ekonomy II přednáška 10
IGrid index Roman Krejčík. Obsah Motivace Prokletí dimenze Míry podobnosti IGrid, IGrid+ Experimentální porovnání.
CW – 05 TEORIE ROZHODOVACÍCH PROCESŮ
STROMY Datová struktura sestávající z uzlů
Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK 7. Metrické přístupové metody (MAM) 2. část – maticové a statické metody, D-index.
Databázové systémy Informatika pro ekonomy, př. 18.
Generování sítě MIDAS GTS. Prvky pro generování sítě MIDAS má několik typů prvků, jež využívá pro generování sítě. Každý prvek je určen svými uzly (konstrukčně).
Úvod do logiky (presentace 2) Naivní teorie množin, relace a funkce
XML data na disku jako databáze Kamil Toman
Databázové systémy Přednáška č. 5 Datové typy a Fyzická organizace dat.
Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK 4. Mapování a redukce dimenze 1. část – úvod + mapování vektorových sad.
Směrování -RIP. 2 Základy směrování  Předpoklady:  Mějme směrovač X  Směrovač nemůže znát topologii celé sítě  X potřebuje určit směrovač pro přístup.
Anti – Aliasing Ondřej Burkert atrey.karlin.mff.cuni.cz/~ondra/stranka.
Vyhledávání v multimediálních databázích Tomáš Skopal KSI MFF UK
Prostorové datové struktury
Metrické indexování vektorových modelů v oblasti Information Retrieval
Perzistence XML dat Kamil Toman
REPREZENTACE 3D SCÉNY JANA ŠTANCLOVÁ Obrázky (popř. slajdy) převzaty od RNDr. Josef Pelikán, CSc., KSVI MFF UK.
PROGRAMOVÁNÍ 3ITA,3ITB Jaroslav Burdys Hlavní zdroj:
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
KIV/ZD cvičení 8 Tomáš Potužák.
KIV/ZD cvičení 5 Tomáš Potužák.
STROMY A KOSTRY Stromy a kostry - odst. 3.2.
Induktivní statistika
Induktivní statistika
Informatika pro ekonomy přednáška 8
Optimalizace SQL dotazů
Geografické informační systémy
ALG 07 Selection sort (Select sort) Insertion sort (Insert sort)
Toky v sítích.
Algoritmizace a datové struktury (14ASD)
ZAL – 7. cvičení 2016.
Induktivní statistika
Základy statistiky.
AVL a B-stromy cvičení Radek Mařík.
Monitor Object 1.
Transkript prezentace:

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

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

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 (euklidovský 2D prostor)

Uzly M-stromu – detaily (1) listový uzel M-stromu obsahuje datové (ground) záznamy grnd(Oi) = [Oi, Dp, oid] Oi je reprezentace datového objektu (tj. Oi  S) Dp 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 Oi vnitřní uzel M-stromu obsahuje směrovací (routing) záznamy rout(Oi) = [Oi, rOi, Dp, ptr] Oi a rOi tvoří je kulový region (Oi, rOi) (Oi se nazývá směrovací objekt – routing object) Dp je vzdálenost k rodičovskému směrovacímu objektu ptr je pointer na podstrom – tzv. pokrývající podstrom (covering subtree)

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ů)

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. (euklidovský 2D prostor) rozahový dotaz

Optimalizace filtrace Vzdálenost k rodičovskému směrovacímu objektu Dp 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 Dp,a poloměru testovaného regionu rOi (anebo nula, pokud je rozdíl záporný). Větší poloměr je součtem Dp a rOi.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.

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)

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 v O O u w O O j p rout) (O 1 grnd(O ) l m i rout(O 1j k z rout) (O w Onew rout) (O 1 w rout) (O 1 u grnd(O ) grnd(O ) w u grnd(O ) grnd(O ) z v

Štěpení uzlu M-stromu Algoritmus štěpení uzlu: vyberou se směrovací objekty pro nové dva uzly, z nich se vytvoří směrovací záznamy, vybírá se podle tzv. promoting policy objekty se rozdělí do nových uzlů, rozděluje se podle tzv. partitioning policy jeden nový uzel nahradí původní, druhý je alokován 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) pokud rodičovský uzel přeteče, štěpí se stejně – pokud se rozštěpí uzel, strom povyroste o jednu úroveň

Š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(n3), z čehož se počítá O(n2) 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(n3)

Š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

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(n2 log(n)), z čehož se počítá O(n2) vzdáleností (úplný graf)

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 rQ je dynamický rQ 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, dmin(N)], kde dmin(N) je dolní hranice vzdáleností od Q ke všem možným objektům v N, tj. dmin(směr. zázn. k N) = max {0 , d(Q , Oi) – rOi}, kde (Oi , rOi ) je region směrovacího záznamu pro uzel N požadavky jsou v PR udržovány setříděny vzestupně podle dmin(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 [ - , dmax(N)], kde dmax(·) is horní hranice vzdáleností od Q ke všem možným objektům v N, tj. dmax(směr. zázn. k N) = d(Q , Oi) + rOi PR udržuje ty požadavky, jejichž dmin(·) < dmax(·), 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 , rQ) – rQ 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]) ) )

k-NN dotazy v M-stromu: příklad (k=2) rQ = ∞ dmax(I.) dmax(II.) načti root načti uzel(II.) dmin(I.) dmin(II.) = 0

k-NN dotazy v M-stromu: příklad (k=2) dmax(D) dmax(C) dmin(C) dmin(D) dmax(O5) dmax(O6) načti uzel(D)

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

Revize M-stromu 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

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 v O O u w O O j p rout) (O 1 grnd(O ) l m i rout(O 1j k z rout) (O w Onew rout) (O 1 w rout) (O 1 u grnd(O ) grnd(O ) w u grnd(O ) grnd(O ) z v

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

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)

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ý. Dva listové objekty přemístíme do „lepších“ listů. Slimming the leaf level (Level 0)

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

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

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

Tvar kompaktního regionu (1) Čtyři požadavky na optimální reprezentaci „tvaru“ metrického regionu: kompaktní uložení - vnitřní uzly by měly v paměti zabírat daleko méně prostoru než listy kompaktní tvar - malý „objem“ mrtvého prostoru jednoduchý test průniku - průnik regionu a dotazu by měl být jednoduše spočitatelný 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)

Tvar kompaktního regionu (2) Oi Hyper-koule (původní region M-stromu) O2 O5 O4 O3 O6 rOi O1 O2 O5 O4 O3 O6 „Zrnitý“ region Reprezentace regionu: (Oi,rOi) kompaktní uložení nekompaktní tvar jednoduchý test průniku (jediný výpočet vzdálenosti) jednoduché vnořování (koule) Reprezentace regionu: (O1, O2, O3,...) nekompaktní uložení (všechny objekty v podstromu) kompaktní tvar (nulový objem mrtvého prostoru) drahý výpočet průniku (mnoho výpočtů vzdálenosti) jednoduché vnořování (sjednocení)

Tvar kompaktního regionu (3) ? ? O5 O4 O6 O1 O2 O3 Reprezentace regionu: ??? docela kompaktní uložení docela kompaktní tvar docela jednoduchý test průniku docela jednoduché vnořování

Region PM-stromu využití globálních pivotů (inspirováno LAESA metodou) dána pevná množina p globalních pivotů Pi (vybraných z dat) je definováno p hyper-prstencových regionů (Pi , HR[i]) pro každý směrovací záznam pole HR p intervalů <HR[i].min, HR[i].max> každý interval HR[i] ohraničuje vzdálenosti objektů ke každému pivotu Pi region PM-stromu = region M-stromu + pole HR (pivoty Pi 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

PM-strom, vykonávání dotazu před vykonáním dotazu (Q,rQ), se spočítají vzdálenosti d(Q, Pi)  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 dotaz dotaz Q Q region M-stromu region PM-stromu

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 Pi, a vybere se interval <dimin, dimax> 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 <dimin, dimax> pomocí jediného bytu, tj. každý prstenec HR[i] zabere 2 byty uložení pole HR záznam uzlu M-stromu Oi, r, ptr(T), ... HR[1],HR[2],...,HR[p]

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

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

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