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