Számítástudományi módszerek a webes szolgáltatásokban Rácz Balázs 2009. október 20. Áttekintés Matematikai módszer: min-hash fingerprinting Alkalmazás: perszonalizáció a Google News szolgáltatásban SimRank hasonlósági függvény Személyre szabott PageRank Min-hash fingerprinting On the.
Download
Report
Transcript Számítástudományi módszerek a webes szolgáltatásokban Rácz Balázs 2009. október 20. Áttekintés Matematikai módszer: min-hash fingerprinting Alkalmazás: perszonalizáció a Google News szolgáltatásban SimRank hasonlósági függvény Személyre szabott PageRank Min-hash fingerprinting On the.
Számítástudományi módszerek a
webes szolgáltatásokban
Rácz Balázs
2009. október 20.
Áttekintés
Matematikai módszer: min-hash fingerprinting
Alkalmazás: perszonalizáció a Google News
szolgáltatásban
SimRank hasonlósági függvény
Személyre szabott PageRank
Min-hash fingerprinting
On the resemblance and containment of documents,
A. Broder, 1997.
Dokumentum: szavak halmaza
Két dokumentum hasonlósága: Da Db
Jaccard-együttható
Da Db
Véletlenített módszer a Jaccard-együtthatók
torzítatlan becslésére
Min-hash fingerprinting
Legyen h egy véletlen függvény a szavak halmazán
A D dokumentum ujjlenyomata
Fh ( D) arg minwD h(w)
Az ujjlenyomatok megegyezési valószínűsége egy
adott h függvény esetén pont a Jaccard-együttható
Monte Carlo közelítés: N független ujjlenyomatból
átlagolva torzítatlan becslés a hasonlósági mértékre
Users reading (clicking on) news stories
Users reading news stories
•
Represent a user u by all the stories they clicked on:
•
Find similar users and recommend their clicks to u
User similarity = Sim(U1, U2) =
•
•
Translation: Out of all the stories either user has ever
clicked on, the more clicks they have in common, the
more similar they are
Min-hash fingerprinting alkalmazása
Jaccard-együtthatóval definiáljuk a
felhasználók hasonlóságát
N véletlen permutációból számított
ujjlenyomattal közelíthető, ezek letárolhatóak
Hasonló felhasználók által olvasott híreket
javasolunk
[screenshot of Google News showing
personalized stories]
Introduction / Motivation
Similarity search on the Web
Approaches / Related Results
Text-based
Classic IR
Min-hash fingerprinting (Broder ’97)
Pure link-based
Single-step: cocitation, bibliographic coupling, …
Multi-step:
Companion (Dean, Henzinger, ‘98)
SimRank (Jeh, Widom, ‘02)
random access
quadratic
Hybrid
Anchor text based (Haveliwala et al. ‘02)
Skálázhatóság: a probléma mérete
Hány lap van a weben?
Indexelhető lapok száma
Végtelen sok
2004: 11,5 milliárd; ma: legalább 60 milliárd
Más források: 120 milliárd
Mennyi a hasznos lapok száma?
Átlagos fokszám
Legalább 10
Skálázhatóság: követelmények
Előfeldolgozás (indexelés)
Indexadatbázis mérete
Lineáris
Lekérdezés
Input konstans sok végigolvasása
futási idő < 1 nap
Konstans sok adatbázishozzáférés; <1 sec
Párhuzamosíthatóság
Akár 1000 kisebb gép alkalmazása
SimRank
Jeh and Widom, 2002
“the similarity of two pages is the
average similarity of their referring pages”
Formalized as a PageRank-like equation:
Power iteration: quadratic storage and time
Goal: quadratic linear
Randomization
For pages u and v, start two random walks
from them, following the links backwards.
Let τ be the first meeting time
Jeh, Widom: sim(u,v)=expected value of cτ
Our algorithm:
Monte Carlo method
simulate N independent pair of random walks
approximate sim with the average of cτ
Index DB: N random walk for each page
Query: calculate meeting times
Derandomization
(partially)
trick #1: pair-wise independence is enough
trick #2: anything after the first meeting is
irrelevant
coalescing (sticky) walks
Allows very efficient representation
Gains
V=no. of pages (~109)
N=no. of indep. simulations (100)
Indexing: stream access to the graph, V cells
of memory (or external memory)
Index Database size: N·V (~500 GB)
Query: 2N disk seeks, time proportional to
the number of results
Parallelizable to N machines (5 GB storage, 2
disk seeks/query each)
Ipari alkalmazhatóság
Párhuzamosíthatóság
Hibatűrés
N-1 ujjlenyomatból számítjuk az eredményt
Terheléselosztás
Minden számítógép egy független ujjlenyomat
Nagy terhelés esetén csökkentjük N-et
Inkrementális indexelési algoritmusok
Klaszter kapacitása a gépek számában
lineárisan nő
PSimRank
random walks
SimRank
independent
PSimRank
coupled
uniform
min-hash
Pr(first step meet)
next edge choice
Coupling walks “attract” each other, like they
were walking towards the same goal
Still, PSimRank can be computed within the same
Monte Carlo similarity search framework (all
scalability properties still hold!)
Konvergenciasebesség
N ujjlenyomat átlagából számított értékekre
Rögzített abszolút hiba
Hibavalószínűség exponenciálisan 0
Uniform: a csúcsoktól függetlenül
A gráftól függetlenül
Hasonlóan a toplista-felidézésre is
Következmény: N tekinthető aszimptotikusan
konstansnak
Alsó becslés
Van-e pontos algoritmus?
Nincs.
Tétel
Tétel
Az egzakt feladathoz D = Ω(V2) méretű index kell
A közelítő feladathoz D = Ω(V) méretű index kell
Lehet-e javítani ez utóbbit?
A mi algoritmusunk D = O(V logV) méretű adatbázist
igényel a 2.3. tézis által adott kódolással
Experimental evaluation
Evaluation methodology: Haveliwala et al. ’02
Uses Open Directory Project (dmoz.org)
Ground truth similarity in directory
familial distance: documents in the same class
are more similar as those in different classes
Compare orderings of familial distance and
calculated similarity
Stanford WebBase:
80M pages; including 200K ODP pages
Experiments #1: path length
Multi-step similarity does make sense!...
Experiments #3: number of simul. N
Note: recall (# of results) grows linearly.
Similarity search with SimRank
Approximation algorithm for multi-step/
recursive similarity functions
Uses simulated random walks
Monte Carlo method
Scalable
New similarity functions
First sight of these on real(ly big) web data
Yes, they do make sense!
Perszonalizált PageRank
PageRank(Brin,Page,’98)
PV (1 c) PV M c r
PV PageRank vektor, r egyenletes eloszlás vektora
Globális minőségértékelés
Előfeldolgozás: hatványiterációval kiszámítjuk PV-t
Lekérdezés: PV értékei alapján rendezzük a találatokat
Personalized PageRank(Brin,Page,’98)
r felhasználó preferenciavektora, lekérdezési időben adott
PPV(r):=PV személyes minőségértékelés
Előfeldolgozás: r nem ismert. Mit számítsunk ki?
Lekérdezés: hatványiteráció. 5 óra válaszidő!!!
Teljes személyre szabás
Monte Carlo szimuláció, nem hatványiteráció
Előállítunk közelítő PPV(ri)-t minden kezdőlaphoz
Skálázhatóság: kvázilineáris előfeldolgozás &
konstans lekérdezés
Linearitás:
PPV(1r1 k rk ) 1PPV(r1 ) k PPV(rk )
Alapötlet
Tétel (Jeh, Widom ’03, Fogaras ’03)
Indítsunk egy véletlen sétát az u csúcsból
Egyenletes lépés 1-c , megállunk c val.séggel
PPV(u,v)=Pr{ a megállási pont v }
Monte Carlo algoritmus
Előfeldolgozás
Lekérdezés
Az u-ból szimulálunk N független véletlen sétát
Indexadatbázis ujjlenyomatokból: A megállási pontok az
összes kiinduló csúcsra
PPV(u,v) : = # ( u→v séták ) / N
Lineáris kombinációval tetszőleges r vektorokra
Külső táras indexelés
Cél: N független séta, minden egyes pontból
Bemenet: webgráf V ≈ 1010, E ≈ 1011
V+E > memória
Hozzáférés az élekhez:
Adatfolyam: az élek végigolvasása
Az élek a kiindulópont szerint rendezettek
Külső táras indexelés (2)
Cél: N független séta, minden egyes pontból
Szimuláljuk az összes sétát egyidőben
Ciklus: 1 lépés = 1 futam
Rendezzük az utak végeit
Összefésül a gráffal
Minden séta megáll c vszg-gel
E( #séták ) = (1-c)k∙N∙V
k iteráció után
Elosztott indexelés
M számítógép gyors helyi hálózatba kötve
memória < V+E ≤ M∙(memória)
Párhuzamosítás: N∙V séta
M=3
A gráf részei memóriában
Üzenetküldés: csomagok
Példa: gyakorlati alkalmazhatóság
Web-gráf 10 milliárd csúccsal
Külső táras indexelés
256 TB I/O
60 diszk * 24 óra
Elosztott indexelés
100 számítógép memóriája elegendő
48 TB hálózati forgalom
~1 óra
Köszönöm a figyelmet!