1 / 48

Přibližné metrické indexování / vyhledávání

Přibližné metrické indexování / vyhledávání. Jan Dědek. Hlavní téma. Michael E. Houle, Jun Sakuma: Fast Approximate Similarity Search in Extremely High-Dimensional Data Sets Proceedings of the 21st International Conference on Data Engineering (ICDE 2005, April 5-8). Obsah.

cleave
Download Presentation

Přibližné metrické indexování / vyhledávání

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Přibližné metrickéindexování/vyhledávání Jan Dědek

  2. Hlavní téma Michael E. Houle, Jun Sakuma:Fast Approximate Similarity Search in Extremely High-Dimensional Data Sets Proceedings of the 21st International Conference on DataEngineering (ICDE 2005, April 5-8)

  3. Obsah • Kvalita přibližného vyhledávání • Přehled existujících indexačních metod • SASH • Datová struktura a algoritmy • Časová, prostorová složitost • Experimentální výsledky • Výhody a nevýhody

  4. Kvalita přibližného vyhledávání 1 • Míra podobnosti dist • dist : D × D → R+ • metrika: • reflexivita, pozitivita, symetrie, trojúhelníková nerovnost • Typy dotazů • query-by-example • rozsahový dotaz – práh r • k nejbližších sousedů – k-NN(k-nearest-neighbor)

  5. Kvalita přibližného vyhledávání 2 • k přibližně nejbližších sousedů (k-ANN) • approximate k-NN • maximální(uspokojivá) chyba ε > 0 • (supplied error) • parametr většiny přibližných algoritmů • výsledek k-ANN(q) dotazu ( U ): • |U| = k • dist(q, u) ≤ (1 + ε)rk u ∈ U, • rk – skutečná vzdálenost ke k-tému nejbližšímu sousedu

  6. Kvalita přibližného vyhledávání 3 • Způsoby měření přesnosti (1) – přesah výsledku (ε) • ui – i-tý nejbližší soused ve výsledku • ri – vzdálenost skutečně i-tého nejbližšího souseda • A1 i A2 nabývají hodnot „1+ ε“

  7. Kvalita přibližného vyhledávání 4 • Způsoby měření přesnosti (2) – úspěšnost dotazu • recall • U’jezároveň podmnožina ideálního (přesného) dotazu • Vyjadřuje procentuelní přesnost / úspěšnost dotazu

  8. Kvalita přibližného vyhledávání 5 • Sekvenční hledání k-NN(q) (Seq) • Objekt se q se porovná s celou databází. • Sekvenční hledání v podmnožině dat (SSeq) • Sekvenční k-NN dotaz se provede na náhodně vybrané podmnožině dat velikosti m. • úspěšnost = m / n • rychlost (n / m)-krát větší než při sekvenčním hledání

  9. Přibližné indexační metody 1FTAE • Ferhatosmanoglu, Tuncel, Agrawal, El Abbadi (2001) • Rozdělí data do clusterů pomocí heuristiky K-means. • Při k-ANN(q) najde clustery nejbližší dotazu. • Data uvnitř vybraných clusterů setřídí podle vzdálenosti od q a nejbližší vrátí. • Při třídění vezme v úvahu jen některé souřadnice • Výsledek se ještě iterativně zpřesňuje • Prozkoumáním více clusterů • Setříděním podle dalších souřadnic

  10. Přibližné indexační metody 2 FTAE - výsledky • Zrychlení zhruba o jeden řád (degree of magnitude) • 100 000 obrázků, 64 dimenzí, 10-ANN • Přesnost 70%, A1 = 1,05 • 43x méně načtených obrázků • Přesnost 90%, A1 = 1,02 • 16x méně načtených obrázků • Nevýhody FTAE • Problematické ladění parametrů algoritmu • Funkčnost závisí na výsledku K-means heuristiky,která má mnoho neduhů.

  11. Přibližné indexační metody 3 Clindex • Li, Chang, Garcia-Molina, Wiederhold (2002) • Opět metoda založená na clusterování • Speciální technika vytváření clusterů • Funguje pouze na datech snadno rozdělitelných do clusterů • Používá Euklidovu vzdálenost

  12. Přibližné indexační metody 4 Clindex - výsledky • 30 000 obrázků, 48 dimenzí, 20-ANN • Přesnost 70% • 21x rychlejší než sekvenční čtení • Přesnost 90% • 12x rychlejší než sekvenční čtení

  13. Přibližné indexační metody 5 Indyk & Motwani • P. Indyk, R. Motwani (1998) • Metoda založená na hašování (LSH) • 200 000 textur, 65 dimenzí, 10-ANN • A2 = 1,14 • 20x méně načtených záznamůnež při sekvenčním hledání

  14. Přibližné indexační metody 6 iMinMax • B. C. Ooi, K. L. Tan, C. Yu, S. Bressan (2000) • Převede vektorové hodnoty na reálná čísla • Výpočet založený na hodnotě největší souřadnice a na pozici této souřadnice uvnitř vektoru • Reálná čísla setřídí • k-NN hledání probíhá postupným rozšiřováním relevantního intervalu reálných čísel. • Dokud interval neobsahuje k nejbližších sousedů.

  15. Přibližné indexační metody 7 iDistance • C. Yu, B. C. Ooi, K. L. Tan, H. Jagadish (2001) • Modifikace iMinMax • Místo extrémních hodnot souřadnic indexuje podle extrémních vzdáleností od referenčních bodů (pivotů). • iDistance a iMinMax dobře fungují pro data s dim < 30 • Při redukci dimenze pro dim < 200

  16. Přibližné indexační metody 8 MTree (1) • P. Zezula, P. Savino, G. Amato, F. Rabitti (1998) • Několik metod pro k-ANN nad prostorovými indexy (především M-tree) • Jedná se o přibližné – „randomizované“ varianty klasického (přesného) algoritmu, založeného na trojúhelníkové nerovnosti.

  17. Přibližné indexační metody 8 MTree (2) • Metoda MTree předčasně ukončí vyhledávání • Využívá hodnotu distribuce vzdáleností k hledanému objektu. • Distribuce se odhaduje. • Odhadnuta z předpočítané distribuce vzdáleností mezi prvky databáze • Nevyhovuje složitě strukturovaným datům

  18. Dimenze - problém všech metod • Všechny uvedené metody selhávají, pokud je dimenze dat příliš vysoká. • Časová složitost často lineárně závisí na počtu dimenzí dat. • Pro vysoké dimenze jsou uvedené metody pomalejší než sekvenční hledání.

  19. SASH The Spatial Approximation Sample Hierarchy (Michael E. Houle, Jun Sakuma) • Přibližná prostorová hierarchie • Prakticky použitelný index pro přibližné vyhledávání v datech s extrémně vysokou dimenzí.

  20. SASH – datová struktura 1 • Orientovaný graf podobný stromu • ohodnocené hrany • S vlastnostmi (1): • Každý uzel odpovídá jednomu záznamu. • Uzly jsou rozděleny do level-ů. • Poslední level obsahuje n / 2 uzlů. • Každý další level je dvakrát menší než předchozí. • První level obsahuje jediný uzel – kořen.

  21. SASH – datová struktura 2 • S vlastnostmi (2): • Hrany vedou pouze mezi sousedními level-y • ve směru dolů (od kořene) • Každý uzel má • alespoň jednoho rodiče (mimo kořen) • maximálně p rodičů • maximálně c dětí (doporučeno c = 4p) • Ohodnocení hrany (u,v) = dist(u,v) • Vypočteno při konstrukci struktury

  22. SASH – datová struktura 3 • S vlastnostmi (3): • Každý uzel je dosažitelný z kořene. • Pro každý uzel v označíme jednoho rodiče jako guarantor, g(v). • Pak říkáme, že uzel je závislý(dependent) na uzlu g(v).

  23. Konstrukce SASH struktury • Uzlům se náhodně přiřadí level-y. • SASH struktura se konstruuje iterativně od kořene. • Level-y se propojují hranami tak, aby byly spojeny právě nejbližší sousedé. • Algoritmus ConnectSASHLevel(l) popisuje, jak ve struktuře, která je zbudovaná (propojená) až po level l-1 připojit level l.

  24. ConnectSASHLevel(l) • If (l == 2) • Připoj všechny prvky v l ke kořeni.g(v) = kořen • Elsepro každý uzel v levelu l: • Najdi p nejbližších sousedů Pl-1(v,p) z levelu l-1. (viz dále) • Označ Pl-1(v,p) jako prozatímní rodiče. • Vyřeš skutečné rodičovství (vytvoř hrany).

  25. Najdi Pi(v,p)(p nejbližších sousedů uzlu v v levelu i) • case (i == 1) P1(v, p) = kořen • case (i > 1) • rekurzivní konstrukce: • Označ Pi’(v) jako množinu všech dětí všech uzlů z Pi-1(v,p) • Vrať Pi (v,p) která má následující vlastnosti: • Pi (v,p)  Pi’(v) • |Pi (v,p)| = p (resp.  p pro malé Pi’(v)) • Prvky Pi (v,p) jsou co nejblíže k v (podle míry dist)

  26. Postupné určování nejbližších sousedů

  27. Vyber rodiče z prozatímních rodičů • Máme • Pro každý uzel v v levelu l množinu prozatímních rodičů z levelu l-1. • Pro každý uzel u v levelu l-1: • Označíme C(u) jako množinu uzlů (v levelu l),které ho chtějí za rodiče. • C(u) zmenšíme na velikost c • vypuštěním nejvzdálenějších prvků od u. • Prvky C(u) spojíme s u hranami. • (uděláme z nich skutečné děti u)

  28. Problém se sirotky • Předchozí postup každému uzlu nezaručí rodiče – vzniknou sirotci. • Pro ne-sirotky nastavíme g(v) na nejbližšího rodiče. • Sirotkům najdem jednoho rodiče, který se stane i guarantor. • Hledáme vždy v dvojnásobném množství nejbližších sousedů.

  29. Problém se sirotky - algoritmus • nastav i = 1 • spočítej Pl-1(v , 2ip) • if • v Pl-1(v , 2ip) mají všechny prvky maximální počet dětí then zvyš i o 1 a opakuj od kroku b) • zvol g(v) = nejbližší volný prvek v Pl-1(v , 2ip) • Konečnost algoritmu je zaručena pro c > 2p.

  30. n=22, p=2, c=5, H nemůže být otcem V

  31. k-ANN dotaz (uniformní verze) • Provádí se podobně jako jako algoritmus pro hledání nejbližších sousedů Pi (v,p). • Spočítá P1(q, k) ∪ P2(q, k) ∪ . . .∪Ph(q, k) • h je počet level-ů. • Ze sjednocení vybere k nejbližších prvků a vrátí je jako výsledek dotazu.

  32. Kandidáti na výsledek dotazu

  33. k-ANN dotaz (geometrická verze) • Od předchozí případu se liší ve vyhledávaném počtu sousedů. • Pro různé levely se používá různé k. • P1(q, k1) ∪ P2(q, k2) ∪ . . .∪Ph(q, kh) • Dává lepší výsledky v kratším čase. • (než uniformní verze)

  34. Prostorová složitost • Počet uzlů v levelu i: • Max počet hran od radičů (z levelu i do i+1): • Max počet hran k dětem (z levelu i-1 do i): • maximálně tolik co bylo rodičovských • Průměrný počet hran na uzel je tedy maximálně2p + 1/2i • Hran celkem: 2pm + O(log2n) < O(pn)

  35. Časová složitost • v počtech použití míry dist • Při zanedbání ošetřování sirotků: • konstrukce struktury: pcn log2n • uniformní k-ANN: ck log2n • geometrický k-ANN:

  36. Časová složitost - zobecnění • Za předpokladu, že by k bylo v Ω(nε): • pro libovolné ε > 0 • konstrukce struktury: O(n log n) • geometrický k-ANN: O(k + logn) • Složitost vůbec nezávisí na na počtu dimenzí!

  37. Testování • Pro srovnání autoři implementovali ještě zmíněnou metodu MTree • Implementace • Microsoft Visual C++ v7.0 • Testování • Windows XP • 3.0GHz Pentium IV single processor • Měření výkonu • Vždy průměr ze 100 náhodných dotazů. • Recall se zvyšoval pomocí parametru k’ < k.

  38. Experimentální paměťové nároky

  39. MEDLINE • Výskyty klíčových slov v MEDLINE žurnálu • z U.S. National Library of Medicine’s PubMed database • 1 055 073 záznamů • 1 101 003 atributů • z toho průměrně 75 nenulových • míra dist: • úhel mezi vektorem dokumentu a dotazu

  40. BactORF • Biologická databáze proteinových sekvencí • DNA Data Bank of Japan • 385 039 záznamů • 40 000 atributů • z toho po filtraci průměrně 125 nenulových

  41. VidFrame • Databáze videosnímků z ranního varieté japonské televize. • 9 000 000 záznamů • 32 atributů • míra dist: • Euklidovská vzdálenost • Testovalo se zrychlení algoritmu při zmenšení počtu objektů v databázi. • zrychlení 100, 200, 350 -krát • pro data velikosti 9×104, 9×105, 9×106

  42. Časová složitost je skutečně sub-lineární

  43. SASH – závěr 1 • První přibližná metoda použitelná na data s dimenzí větší než 1000. • Flexibilní metoda • dist nemusí splňovat metrické axiomy. • Navrženo pro použití v operační paměti. • Kvůli hustému propojení hranami. • Neumí využít procesor cache (oproti MTree).

  44. SASH – závěr 2 • Bohužel pouze statická metoda • Nevadí pro účely clustering-u a klasifikace • Lze doplnit o omezené přidávání nových prvků • Ztrácí se kvalita náhodnosti. • Nejde delete a update. • Dynamická verze struktury je předmětem dalšího výzkumu.

More Related