Survey of rank-aware approaches
Transkript
Survey of rank-aware approaches
A Tutorial Survey of rank-aware approaches George J. Klir State University of New York (SUNY) Binghamton, New York 13902, USA [email protected] Ondřej Vaverka (Palacky University, Olomouc) Palacky University, Olomouc, Czech Republic ! prepared for International Centre for Information and Uncertainty, Palacky University, Olomouc ! ! ! Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 1 / 24 Přehled seminářů 28. listopadu 5. prosince 12. prosince Vaverka O. (DAMOL) Vilém Vychodil Indexing structures in RDBMs Vilém Vychodil Query execution algorithms in RDBMs Ondřej Vaverka Survey of rank-aware approaches Survey of rank-aware approaches Dec 12, 2013 2 / 24 Motivace Dotazy v klasických relačnı́ch databázı́ch = striktnı́ podmı́nky ( hard constraints“) ” Daná n-tice patřı́ do výsledku dotazu právě když zcela vyhovuje dotazu Člověk běžně v přesných pojmech neuvažuje Nutnost převést svou představu do přesných hodnot (může být nepřirozené) Někdy je obtı́žné bez znalosti dat v databázi takový dotaz vytvořit Přı́klad Hledáme hotely v centru New Yorku s cenou kolem 3000 Kč za noc s dobrým hodnocenı́m. Možné podmı́nky: SELECT * FROM Hotels WHERE (location = ’New York’) AND (price = 3000) AND (rating = 5) (price BETWEEN x AND y) AND (rating >= 4.5) (price < z) AND (rating >= 3.5) Jak upravit dotaz, pokud hotel, který by vyhovoval podmı́nce, neexistuje? Co když po úpravě dotazu dostaneme přı́liš mnoho výsledků? Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 3 / 24 Motivace Výsledkem klasického dotazu je flat“ tabulka ” Taková tabulka nezachycuje, jak relevantnı́ je pro uživatele daná n-tice Navı́c se může stát: Málo restriktivnı́ dotaz = přı́liš mnoho n-tic Přı́liš restriktivnı́ dotaz = málo nebo žádná n-tice Přı́klad: flat“ tabulka ” Name The Jane Hotel Pod 51 Ravel Hotel Hotel Vetiver Comfort Suites North Bergen Stars 2 3 4 2.5 2.5 ··· Hotel Boutique at Grand Central 3.5 Holiday Inn – Wall Street 3.5 Vaverka O. (DAMOL) Rating 4 4.1 3.6 3.9 3.8 Price 1892 2024 2707 2805 2971 Distance 2.8 1.5 3.2 4.4 5.3 4.1 3.9 3372 3380 1.1 5.6 Survey of rank-aware approaches Dec 12, 2013 4 / 24 Motivace Chceme umožnit dotazy s vágnı́mi podmı́nkami ( soft constraints“) ” Přı́klad: neformálnı́ vágnı́ podmı́nky Preferuji cenu pod x Kč, ale pokud je hotelová restaurace dobrá, klidně připlatı́m. Dostupnost stanice metra je výhodou. Vágnı́ podmı́nky umožňujı́ modelovat preferenci, podobnost a relevanci. Možné přı́stupy k formalizaci vágnı́ch podmı́nek pomocı́: ranking funkcı́ (RankSQL), např. cheap(h.price) podmı́nek na podobnost (RESIQL), např. h.price ≈ 3000 Výsledek vyhodnocenı́ striktnı́ podmı́nky = true / false Výsledek vyhodnocenı́ vágnı́ podmı́nky = skóre (čı́slo, obvykle z intervalu [0, 1]) Výpočet ranku n-tice pro dotaz s vágnı́mi podmı́nkami: 1 2 Vyhodnotı́ se všechny vágnı́ podmı́nky (pro každou podmı́nku vypočı́táme jejı́ skóre) Rank n-tice se vypočı́tá pomocı́ agregačnı́ funkce z výsledků předchozı́ho kroku Rank vyjadřuje, do jaké mı́ry daná n-tice odpovı́dá dotazu (přesná interpretace záležı́ na modelu!) Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 5 / 24 Motivace Výsledkem dotazu je tabulka rozšı́řená o atribut rank Dotazu může vyhovovat velké množstvı́ n-tic Zajı́má nás však pouze několik prvnı́ch n-tic (= nejvı́ce relevantnı́ n-tice) Přı́klad: tabulka s ranky Rank 0,963 0,923 0,881 0,863 0,821 0,754 0,724 Name Club Quarters, Trade Center Hyatt Regency Holiday Inn – Long Island World Center Hotel Club Quarters, Wall Street Four Points – Sheraton Long Island Courtyard Jersey City ··· Vaverka O. (DAMOL) Stars 4.0 4.0 3.0 4.0 3.5 3.0 3.0 Survey of rank-aware approaches Rating 4.5 4.5 4.2 4.3 4.2 4.1 4.5 Price 2945 3203 3029 2945 2945 3152 3402 Distance 5.7 5.9 4.4 5.7 5.9 4.3 5.2 Dec 12, 2013 6 / 24 Top-K dotazy Cı́l: Najı́t K n-tic s nejvyššı́m rankem (nejvı́ce relevantnı́) Přı́klad Plánuji výlet do New Yorku. Chci se ubytovat v levném hotelu (p1 ≡ cheap(h.price)). Dále chci navštı́vit italskou restauraci (c1 ≡ r.cuisine = ’Italian’), která se nacházı́ v blı́zkosti hotelu (p2 ≡ close(h.addr, r.addr)). Cena za hotel a jı́dlo musı́ být menšı́ než 5000 Kč (c2 ≡ h.cost + r.cost < 5000). Chci vybrat hotely a restaurace, které splňujı́ c1 , c2 a seřadit je podle hodnot uživatelsky definovaných funkcı́ p1 , p2 : SELECT * FROM Hotels h, Restaurants r WHERE c1 AND c2 ORDER BY p1 + p2 LIMIT K Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 7 / 24 Top-K dotazy Postup vyhodnocenı́ dotazu z přı́kladu v databázi bez podpory Top-K dotazů: 1 2 3 4 5 Zpracuj oba vstupy Hotels a Restaturants Spoj je a materializuj všechny výsledky spojenı́ Vypočı́tej p1 , p2 Seřad’ n-tice podle p1 + p2 Vrat’ prvnı́ch K n-tic Problémy: 1 2 3 Vstupnı́ tabulky mohou být velmi velké Uživatele nezajı́má pořadı́ všech možných kombinacı́ Výpočet pi může být drahý Řešenı́: 1 2 Algoritmy umožňujı́cı́ efektivnı́ zpracovánı́ Top-K dotazů Rozšı́řenı́ relačnı́ algebry (podpora optimalizacı́ Top-K dotazů) Podpora ranků a Top-K (RankSQL) Fundamentálnı́ rozšı́řenı́ (RESIQL) – Top-K vedlejšı́ produkt Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 8 / 24 Výpočet odpovědi Top-K dotazu Uvažujme dotaz v kanonickém tvaru (RankSQL) Q = πa1 ,...,al λk τF (p1 ,...,pn ) σc1 ,...,cm (R1 × · · · × Rh ) λk – Top-K operator τF (p1 ,...,pn ) – sorting operator s agregačnı́ funkcı́ F a ranking funkcemi p1 , . . . , pn Výpočet ranku n-tice x pro dotaz s vágnı́mi podmı́nkami: 1 2 Pro každou podmı́nku vypočı́táme jejı́ skóre: µpi (x) Rank n-tice µ(x) se vypočı́tá pomocı́ agregačnı́ funkce F: µ(x) = F(p1 , . . . , pn )(x) = F(µp1 (x), . . . , µpn (x)) Při výpočtu výsledku A dotazu nutno před aplikacı́ τ materializovat celý výsledek Po materializaci a uspořádánı́ ponecháme pouze několik prvnı́ch n-tic Za určitých podmı́nek se lze úplné materializaci vyhnout a odpověd’ spočı́tat efektivně Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 9 / 24 Typy přı́stupu k datům Označme: QB = σc1 ,...,cm (R1 × · · · × Rh ) Pro každou ranking funkci pi z dotazu Q budeme uvažovat tabulku Ai , která bude obsahovat všechny n-tice x vyhovujı́cı́ QB a jejich rank bude dán µ(x) = µpi (x). Řekneme, že Ai poskytuje: uspořádáný přı́stup (sorted access), pokud lze n-tice z Ai sekvenčně procházet v pořadı́ od nejvyššı́ho ranku k nejnižšı́mu náhodný přı́stup (random access), pokud lze přı́mo vypočı́tat rank libovolné n-tice (bez průchodu přes jiné n-tice) Možnost uspořádaného nebo náhodného přı́stupu umožnı́ efektivnějšı́ výpočet výsledků původnı́ho dotazu Q. Tabulky Ai sloužı́ pouze pro představu. Při implementaci přistupujeme k výsledkům dotazu QB . Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 10 / 24 Vlastnosti agregačnı́ funkce Řekneme, že agregačnı́ funkce F je monotonnı́, jestliže: F(v1 , . . . , vn ) ≤ F(v10 , . . . , vn0 ) pokud vi ≤ vi0 pro každé i Řekneme, že agregačnı́ funkce F je striktnı́, jestliže: F(v1 , . . . , vn ) = 1 právě když vi = 1 pro každé i Přı́klady monotonnı́ch agregačnı́ch funkcı́ F(x, y) = min(x, y) F(x, y) = max(0, x + y − 1) F(x, y) = x · y F(x, y) = x + y Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 11 / 24 Algoritmy pro Top-K dotazy Algoritmy realizujı́cı́ agregaci n-tic z tabulek Ai V ideálnı́m přı́padě je z každé Ai materializováno jen několik n-tic Návrh algoritmu záležı́ na typech přı́stupů poskytovaných jednotlivými Ai : 1 2 3 Všechny Ai poskytujı́ uspořádaný i náhodný přı́stup – např. Faginův A0 , TA, ... Všechny Ai poskytujı́ jen uspořádáný přı́stup – NRA, Stream-Combine, ... Alespoň jedna Ai poskytuje uspořádáný přı́stup, náhodný přı́stup se použije jen v přı́padě nutnosti – MPro, Rank-Join, ... Podporu náhodného přı́stupu lze zajistit pomocı́ B-tree indexu na některém klı́či. Podporu uspořádaného přı́stupu lze zajistit např.: v některých přı́padech pomocı́ B-tree indexu na ranku pro podobnosti splňujı́cı́ jisté podmı́nky (RESIQL) Omezı́me se pouze na agregačnı́ funkce, které jsou monotonnı́ Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 12 / 24 Algoritmus A0 (Faginův) Algoritmus pracuje ve třech krocı́ch: 1 2 3 Fáze s uspořádaným přı́stupem – ze všech Ai postupně po jednéT načı́tej n-tice uspořádané podle skóre µpi (x) a ukládej je do Xi . Fázi ukonči, jakmile L = i Xi obsahuje alespoň K prvků (ze všech Ai jsme načetli alespoň K stejných n-tic). Fáze s náhodným přı́stupem – pro každou n-tici x, která byla načtena v prvnı́m kroce, zjisti ostatnı́ hodnoty µpj (x), které doposud nejsou k dispozici. Výpočetnı́ fáze – Pro každou n-tici x spočı́tej rank µ(x) = F(µp1 (x), . . . , µpn (x)). Na výstup postupně vypisuj n-tice s nejvyššı́m rankem (ozn. Y – uspořádaný seznam K n-tic s nejvyššı́m rankem) Pokud si uživatel vyžádá dalšı́ch K n-tic, nenı́ nutné algoritmus spouštět znovu (vypočı́tat a zahodit prvnı́ch K výsledků), ale lze v algoritmu pokračovat. Algoritmus lze pro speciálnı́ agregačnı́ funkce ještě zefektivnit: 1 2 F(v1 , . . . , vn ) = min(v1 , . . . , vn ) – lze mı́rně vylepšit fázi s náhodným přı́stupem F(v1 , . . . , vn ) = max(v1 , . . . , vn ) – jednoduššı́ a efektivnějšı́ algoritmus Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 13 / 24 Algoritmus A0 (Faginův) – důkaz správnosti Předpokládáme, že databáze obsahuje dostatek n-tic, aby měl Top-K dotaz smysl Pro výsledek X (uspořádaný seznam n-tic) Top-K dotazu musı́ platit µ(x) ≥ µ(y), ∀x ∈ X, ∀y 6∈ X Řekneme, že množina n-tic X je upwards closed vzhledem k A (Ai ), když pro n-tice x, y platı́, že když x ∈ X a µ(y) > µ(x) (µpi (y) > µpi (x)), pak i y ∈ X. Theorem (Proposition 1) Necht’ je Xi upwards closed vzhledemTk Ai , 1 ≤ i ≤ n. Předpokládejme,Sže F je monotonnı́ a pro n-tice x, z platı́ x ∈ i Xi a µ(z) > µ(x). Potom z ∈ i Xi . Důkaz. Pokud by pro každé j platilo, že µpj (x) ≥ µpj (z), pak z monotonie F by muselo platit µ(x) ≥ µ(z), T což je spor s předpokladem. Pro některé j tedy máme µpj (x) < µpj (z). Platı́ x ∈ Si Xi ⊆ Xj . Vı́me, že Xj je upwards closed vzhledem k Aj , musı́ tedy platit, že z ∈ Xj ⊆ i Xi . Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 14 / 24 Algoritmus A0 (Faginův) – důkaz správnosti Theorem (Proposition 1) Necht’ je Xi upwards closed vzhledemTk Ai , 1 ≤ i ≤ n. Předpokládejme,Sže F je monotonnı́ a pro n-tice x, z platı́ x ∈ i Xi a µ(z) > µ(x). Potom z ∈ i Xi . Theorem (Korektnost algoritmu) Pro každou monotonnı́ agregačnı́ funkci F algoritmus A0 správně vracı́ Top-K n-tic. Důkaz. Předpokládáme, že databáze obsahuje dostatek n-tic, aby měl Top-K dotaz smysl. Výsledný seznam Y má právě K prvků. Stačı́ ukázat, že pokud je n-tice z 6∈ Y , pak pro každé y ∈ Y máme µ(y) µ(z) pro některé T ≥ µ(z). SPředpokládejme, že z 6∈ Y a µ(yj ) < S yj ∈ Y . Vı́me, že L = i Xi ⊆ i Xi s alespoň K n-ticemi. Dále Y ⊆ i Xi s právě K n-ticemi, které majı́ nejvyššı́ ranky. Pro yj ∈ Y tedy existuje x ∈ L takové, že µ(x)T≤ µ(y) a tedy µ(x) < µ(z). Každá Xi je upwards closed vzhledem k Ai . Jelikož x ∈ L = i Xi , S pak z Proposition 1 máme z ∈ i Xi . Ale potom, protože µ(yj ) < µ(z), pak z definice Y plyne, že z ∈ Y , což je spor. Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 15 / 24 Threshold algoritmus Popis algoritmu 1 2 Z každé Ai načti pomocı́ uspořádaného přı́stupu jednu n-tici. Pokud načteš doposud neviděnou n-tici x, pomocı́ náhodného přı́stupu načti ze všech Aj ostatnı́ hodnoty µpj (x). Vypočı́tej rank n-tice µ(x) = F(µp1 (x), . . . , µpn (x)). Pokud je tento rank mezi K nejvyššı́mi ranky, které se doposud objevily, tak ulož x do X. Pro každé Ai si pamatuj skóre µpi naposledy načtené n-tice, která byla načtena uspořádaným přı́stupem. Průběžně počı́tej hraničnı́ (threshold) hodnotu T = F(µp1 , . . . , µpn ). Jakmile X obsahuje alespoň K n-tic s rankem většı́m než T , vrat’ K n-tic z X sestupně uspořádaných podle ranku. Hodnota T představuje hornı́ odhad ranku, kterého může doposud nezpracovaná n-tice dosáhnout. Po načtenı́ n-tice pomocı́ uspořádaného přı́stup může dojı́t až k n − 1 náhodným přı́stupům (pokud je náhodný přı́stup drahý, je lepšı́ použı́t jiný algoritmus) Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 16 / 24 Algoritmus NRA Algoritmus použı́vá pouze uspořádaný přı́stup. U některých n-tic vrácených algoritmem nemusı́ být rank spočı́tán přesně. Algoritmus určuje přı́slušnost n-tice do Top-K odpovědi na základě dolnı́ho a hornı́ho odhadu ranku. Dolnı́ odhad ranku vypočı́táme jako µ(x) = F(µp1 , . . . , µpn ), kde neznámé µpi nahradı́me nejmenšı́ hodnotou skóre, která se v Ai vyskytuje. Hornı́ odhad ranku vypočı́táme jako µ(x) = F(µp1 , . . . , µpn ), kde neznámé µpi nahradı́me největšı́ hodnotou skóre, které mohou doposud nezpracované n-tice dosáhnout (stejný princip jako v Threshold algoritmu) Pokud je dolnı́ odhad ranku některé n-tice většı́ nebo roven hornı́m odhadům ranků ostatnı́ch (i doposud nezpracovaných) n-tic, pak tato n-tice patřı́ do odpovědi. Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 17 / 24 Algoritmus NRA 1 Necht’ je µmin nejmenšı́ hodnota skóre vyskytujı́cı́ se v Ai . pi 2 Z každé Ai načti pomocı́ uspořádaného přı́stupu jednu n-tici a proved’: Pro každé Ai si pamatuj skóre µpi naposledy načtené n-tice. Pro každou již viděnou n-tici, pro kterou neznáme některé µpi , vypočı́tej dolnı́ a hornı́ odhad ranku. Udržujeme si seznam X, který obsahuje K n-tic s nejvyššı́m doposud viděným dolnı́m odhadem ranku. Necht’ je Mk K-tý největšı́ dolnı́ odhad ranku n-tic z X. 3 N-tici x označı́me jako živou, pokud µ(x) > Mk . Algoritmus zastavı́me, pokud jsme zpracovali alespoň K různých n-tic a neexistuje žádná živá n-tice mimo X. Tedy µ(x) ≤ Mk pro všechny n-tice x 6∈ X. Výstupem algoritmu je X. Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 18 / 24 Algoritmus MPro Alespoň jedna Ai poskytuje uspořádaný přı́stup Náhodné přı́stupy jsou vykonávány jen tehdy, když jsou nezbytně nutné Nezbytný náhodný přı́stup (necessary probe) – náhodný přı́stup do Ai pro zjištěnı́ skóre µpi (x) n-tice x je nezbytný, pokud by bez tohoto přı́stupu nemohl žádný algoritmus určit výsledek Top-K dotazu, a to ani pomocı́ výsledků dalšı́ch přı́stupů. Dá se dokázat, že nezbytné jsou pouze přı́stupy pro K n-tic s aktuálně největšı́m hornı́m odhadem ranku Hornı́ odhad ranku n-tice µ(x) = F(v1 , . . . , vn ), kde: ( µpi (x) pokud je µpi (x) známé vi = MAX jinak Problém stanovenı́ pořadı́ přı́stupů do A1 , . . . , An – NP-těžký problém Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 19 / 24 Algoritmus MPro Předpokládejme, že A1 poskytuje uspořádaný přı́stup. Inicializace: Do prioritnı́ fronty Q vlož všechny n-tice z A1 , pro každou vkládanou n-tici vypočı́tej jejı́ hornı́ odhad (čı́m vyššı́ má n-tice hornı́ odhad, tı́m má vyššı́ prioritu) Úplná inicializace sloužı́ pouze pro představu a ve skutečné implementaci se n-tice z A1 načı́tajı́ postupně, až když jsou potřeba. Řekneme, že n-tice je úplná, jestliže pro ni známe všechna µpi (x) Průběžný krok: Pokud je n-tice s nejvyššı́ prioritou úplná, pak ji vypiš na výstup. Jinak podle nějakého pořadı́ proved’ náhodný přı́stup do Ai , zjisti skóre µpi (x), vypočı́tej nový hornı́ odhad a n-tici vlož zpět do prioritnı́ fronty s novou prioritou. Ukonči algoritmus, pokud jsi již vypsal K n-tic. Upravený algoritmus lze použı́t i pro výpočet JOINu Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 20 / 24 Algoritmus Hash Rank-Join (HRJN) Důležitou vlastnostı́ fyzických operátorů je pipelining Algoritmy, které využı́vajı́ náhodné přı́stupy, nejsou pro pipelining vhodné Algoritmus NRA nepoužı́vá náhodný přı́stup, ale nevracı́ přesný rank Algoritmus HRJN umožňuje pipelining a vracı́ přesný rank Mějme dvě vstupnı́ tabulky A1 a A2 s ranky Označme µmax rank prvnı́ n-tice, kterou jsme načetli ze vstupu Ai pi Označme µpi rank naposledy načtené n-tice ze vstupu Ai max Hraničnı́ hodnota T = max(F(µmax p1 , µp2 ), F(µp1 ), µp2 ) Význam T – hornı́ odhad ranku každé dalšı́ kombinace již načtených n-tic z A1 (A2 ) s doposud nenačtenými n-ticemi z A2 (A1 ) Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 21 / 24 Algoritmus Hash Rank-Join (HRJN) Open(A1 , A2 ): 1 Vytvoř prioritnı́ frontu Q pro řazenı́ výsledků JOINu 2 Vyvtvoř hash tabulky pro A1 a A2 3 Nastav T na maximálnı́ možnou hodnotu 4 Nastav µmax a µpi na maximálnı́ rank v Ai pi 5 A1 .Open, A2 .Open Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 22 / 24 Algoritmus Hash Rank-Join (HRJN) GetNext(): 1 2 Pokud je Q neprázdná a rank x na vrcholu“ Q je µ(x) ≥ T : ” Vyjmi x z Q, vrat’ x jako výsledek. Jinak v cyklu: 1 2 3 4 5 3 Vyber vstupnı́ tabulku Ai a načti n-tici t = Ai .GetN ext() Pokud je to prvnı́ n-tice načtená z Ai : µmax = µ(t) pi Vlož t do přı́slušné hashovacı́ tabulky, pomocı́ druhé tabulky vytvoř platné kombinace Pro všechny platné kombinace j: Spočı́tej rank j a vlož j do Q Pokud je Q neprázdná a rank x na vrcholu“ Q je µ(x) ≥ T : Ukonči cyklus ” Pro x na vrcholu“ Q: ” Vyjmi x z Q, vrat’ x jako výsledek. Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 23 / 24 Použité zdroje Chang Kevin Chen-chuan, Hwang Seung-won: Minimal Probing: Supporting Expensive Predicates for Top-k Queries In SIGMOD: 346–357 (2002) Fagin Ronald: Combining fuzzy information from multiple systems PODS ’96 Proceedings: 216–226 (1996) Ilyas Ihab F., Aref Walid G., Elmagarmid Ahmed K. Supporting top-k join queries in relational databases The VLDB Journal 3 (13): 207–221 (2004) Ilyas Ihab F., Beskales George, Soliman Mohamed A.: A Survey of Top-k Query Processing Techniques in Relational Database Systems ACM Comput. Surv. 4 (40): 11:1–11:58 (2008) Li Chengkai: Enabling data retrieval: By ranking and beyond University of Illinois at Urbana-Champaign (2007) Vaverka O. (DAMOL) Survey of rank-aware approaches Dec 12, 2013 24 / 24