Webbányászat PageRank, Szegedi Tudományegyetem
Miért akarjuk rangsorolni a Weboldalakat? Mert tudásra szomjazunk Mert a Google-nak megéri. Pontosan hogy is? Mert állatorvost keresünk, pizzázni akarunk, meg akarjuk találni a szállásunkat, köszi esszét akarunk írni,...
Milyen a Web felépítése? Nagy erősen összefüggő, központi komponens Kisebb erősen összefüggő komponensek, melyek a központi EÖK-hoz be,-vagy kiélekkel csatlakoznak A központi EÖK-hoz beélekkel csatlakozó komponens elemei és az ahhoz kiélekkel csatlakozó komponens elemei közötti linkek Leszakadó komponensek
Mi kell a hatékony információvisszakereséshez? Ismerni kell a dokumentumok tartalmát indexelés problémaköre (Esetleg többszavas) keresőkifejezésre vissza kell tudni adni, mely dokumentumokban szerepeltek Szótövezés Termek relevancia szerinti súlyozása, pl. tf-idf súlyozás (és annak számtalan variánsa) Keresőkifejezést tartalmazó találatok rangsorolása várható hasznosság tekintetében
Weboldalak rangsorolása Miben mérjük egy oldal fontosságát? Látogatottság? Linkek? Rekurzív definíciónkban egy oldal fontossága legyen arányban a rá mutató oldalak fontosságával rang (j) = X rang (i) fokszám(i) i j Mit okoz, ha magas egy csúcs befoka? És ha a kifoka?
Sztochasztikus mátrixok M mátrix sor-sztochasztikus, amennyiben mi,j, továbbá n P i {,..., n} mi,j = j= Hasonlóan adható meg az oszlop-sztochasztikusság definíciója M mátrix mi,j elemének jelentése? M átmenet/tranzíciós mátrix, mely segítségével Markov folyamatok írhatók le Milyen jelentés társítható p = p M és p = Mp szorzatokhoz? M = p M i -hez? És milyen pi = pi
Sztochasztikus mátrixok stacionárius eloszlása Irreducibilitás: bármely pontból bármely másikba vezessen irányított út Aperiodicitás: i n : P(σn = i σ = i, n > n ) > p sztochasztikus vektor, mely M stacionárius eloszlása Stacionárius eloszlás: p = lim p M t t Kicsit másképp: azon pt, melyre pt pt M Hatványiteráció: szorozzuk p -t M-el, amíg nem konvergál A konvergencia vonatkozhat az oldalak rangbéli változásának (valamilyen norma szerinti) összességére, de a sorrendjükre is 3 3 3 2 2 2 M= 2 2 3
Ergodikus Markov lánc Hatványiteráció 2 M2 = 3 M3 = 5 8 2 6 5 2 3 6 5 2 3 2 6 3 8 2 6 3 8 6 6 3 5 2 6 p p p2 p3,25,375,33,3,25,28,229,29,25,28,229,29,25,28,229,29 Mennyire meglepő, hogy 3 pont p6...,332...,22...,22...,22 fontossága is p9...,333...,222...,222...,222 végig teljesen egyező?
A Web azonban nem ergodikus Léteznek olyan oldalak, amelyekről nem mutat kimenő link Az ilyen oldalak elnyelik a hálózat szereplőinek fontosságát Legegyszerűbb ilyen gráf M v, lim v M i = ~ M = 2 2 M i = 2i i
A zsákutcák lehetséges feloldása példa Fejtsük vissza a gráfot, amíg zsákutcamentes nem lesz A zsákutca jelenséget okozó csúcsok eltávolításával sokszor újabb zsákutca csúcso(ka)t generálunk Határozzuk meg a zsákutcamentesített gráf csúcsainak rangját, és abból származtassuk a korábban eltávolított csúcsok rangját Ezzel az eljárással a rangok összege meghaladja,-t (persze normalizálhatunk utólag) 3 3 3 2 2 M= 2 2
A Web azonban nem ergodikus Kijártat nélküli csapda komponens a hálózatban, ami magába gyűjti az összes oldal fontosságát Legegyszerűbb megjelenése: hurokélen túli éllel nem rendelkező csúcs (persze elképzelhetők nagyobb csapdák is) 3 3 3 2 2 M= 2 2 p p p2 p3 p6 p9,25,25,,73...,29...,,25,28,6,8...,2...,6,25,58,6,72...,888...,957,25,28,6,8...,2...,6
A pókháló struktúrák lehetséges feloldása példa A weben történő véletlen bolyongás modellezésébe vegyük bele a teleportálás lehetőségét A véletlen böngészés során β(, 8, 9) valószínűséggel kövessük az adott tartózkodási helyünkből kimenő élek egyikét ( β) valószínűséggel találjuk magunkat egy random weboldalon megszüntetjük a beragadást ~ p(i+) = p(i) βm + ( β) csúcsok száma ~~ Esetleg p(i+) = p(i) (βm + ( β) n ), ahol n a csúcsok száma, ha az jobban tetszik
A pókháló struktúrák lehetséges feloldása példa 5 2 5 βm = 52 Mekkora volt β p p,25,5,25,27,25,7,25,27 5 5 2 5 5 2 5 a példában? p2 p3,37,2,77,57,5,565,77,57 p6,5,3,627,3 p9,,3,639,3
Mennyire objektív a PageRank által kapott sorrendje a weboldalaknak? Eltérő emberek számára ugyanarra a keresőkifejezésre más számít releváns találatnak Minden ember számára legyen eltérő súlyozása a weboldalaknak? Sőt, ugyanannak az embernek is eltérő időpontokban eltérő találatok kellhetnek Minden ember minden lelkiállapotához legyen eltérő súlyozása a weboldalaknak, amiket tárolunk is?
Elfogult véletlen séták Általában egy topikon belül van szükségünk egy találatra (pl. jaguár a sport vagy autózás témakörében) Következtetni lehet, hogy mely doménre kíváncsi az ember aktuálisan Keresési előzményekből A keresés helyéből (pl. sportoldal keresődobozából) Az ember meg is adhatja a témakört (implicit vagy explicit) Előnye, hogy árnyaltabb képet képes adni a hagyományos PageRank-nál
Példa ~ r p(i+) = pi βm + ( β) adott témábanreleváns oldalak ~r vektor annyi trükköt tartalmaz, hogy csak azoknak a pontoknak megfelelő pozíciókon tartalmaz -eseket, amely oldalak az adott témára nézve relevánsak, más elemei -k 5 5 5 2 2 5 5 βm = 5 2 25 5
A PageRank meghackelése Linkfarmok létrehozásával az igazi relevanciával nem bíró oldalak fontosabb színben tüntethetők föl : alkalmazása, mely során a kedvezményezett témakört a (valamilyen kritérium alapján) megbízhatónak titulált oldalak képzik A megbízható oldalak meghatározása történhet emberi erővel, de várhatóan némileg alacsonyabb hatékonyság mellett osztályozhatjuk őket automatikusan is
Gyűjtőlapok és tekintélyek PageRank-hez hasonló, de az oldalakat tipizálja is gyűjtőlap minőségük és tekintélyük szerint A rekurzivitás itt is megjelenik A releváns, magas tekintélyű oldalakra valószínű sok gyűjtőoldal fog mutatni Fordítottja is igaz
A gyűjtőlapság és tekintélyesség formalizálása A web A (illetve A ) szomszédsági mátrixára támaszkodik Sztochasztikus az A mátrix? h és a vektorok i-dik elemei az i-dik weblap gyűjtőlap,-és tekintélyértékeit tartalmazzák Pn h = ξaa : P i= hi = vagy max(h) =, illetve a = νa h : ni= ai = vagy max(a) = Kicsit másképp: h = ξνaa h, illetve a = νξa Aa AA, illetve A A szeretnek besűrűsödni aszinkron update
HITS algoritmus aszinkron megvalósítása Algorithm HITS algoritmus Input: A adjacenciamátrix Output: h és a vektorok : h := ~ 2: while nem konvergál do 3: a = A h : a = a/max(a) 5: h = Aa 6: h = h/max(h) 7: end while 8: return h, a
HITS algoritmus példa 2 3 h a,5,5 5 h,5,7,67 a2,3,9, h2,,3,69 A= a3 h3,2,38,7,8,7,2 a,2,79 3,5e-7 h,36,72