GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5...

22
GOOGLEOV PAGERANK ALGORITAM Seminar Autori: Marin Tomić, Davor Šibenik, Paolo Rakocija, Kristina Maceković

Transcript of GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5...

Page 1: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

GOOGLEOV PAGERANK

ALGORITAM

Seminar

Autori: Marin Tomić, Davor Šibenik, Paolo Rakocija, Kristina Maceković

Page 2: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

1

KAZALO

1. Uvod

2. Općenito o PageRank Metodi

2.1 Objašnjenje PageRank metode

2.2 Matrični model

2.3 Slučajni šetač

2.3.1 „Zaglavljen“ u stranici

2.3.2 „Zaglavljen“ u podgrafu

2.4 Odabir α

2.5 Računanje PageRank-a

3. Računanje svojstvenih vrijednosti i vektora

3.1 Metoda potencija

3.1.1 Korištenje metode potencija za PageRank

3.2 Arnoldijeva metoda

3.2.1 Kriterij zaustavljanja

3.2.2 Korištenje Arnoldijeve metode za PageRank

3.2.3 Eksplicitni „restart“

3.3 Točnost svojstvenog vektora

4. Formati rijetkih matrica

4.1 CRS – Compress Row Storage

4.2 MATLAB internal sparse format

5. Testni podaci

5.1 Stanford Web matrica

5.2 Random matrica

5.3 Matrica citiranih članaka

6. Rezultati

6.1 Broj potrebnih iteracija

6.2 Variranje α

6.3 Važnost parametra m

7. Zaključak

8. Literatura

Page 3: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

2

1 UVOD

Internetske tražilice (pretraživači) su jako bitan faktor u modernom svijetu, oni su spona između

ljudi i informacija. Zbog opsežnosti i točnosti rezultata pretraživanja, posljednjih godina tron

najuspješnijeg pretraživača je zauzeo Google. Još u svojem začeću, najvažniji algoritam koji

Google koristi je PageRank, a svoju važnost je zadržao i do danas.

Metoda koju Google koristi za izračun PageRank algoritma je metoda potencija. Za veće

domene ili Internet u cjelini, to je možda i jedina smislena metoda, sve ostale metode imaju

prevelike memorijske zahtjeve. Metoda potencija obavlja samo 50-100 matričnih množenja.

Za manje domene se otvara mogućnost korištenja drugih metoda. Dobra alternativa metodi

potencija bi bila Arnoldijeva metoda. Ona ima veće memorijske zahtjeve, ali konvergira nakon

manje iteracija.

Važno je napomenuti da se metoda potencija u praksi paralelno implementira. To će osigurati

brže računanje i bolju performansu. U ovom seminaru nećemo obraditi paralelnu

implementaciju.

U nastavku ćemo proći kroz glavne metode pretraživanja te testirati metode na prikupljenim

podacima.

2 OPĆENITO O PAGERANK METODI

U ovom poglavlju ćemo detaljnije opisati ideje PageRank metode, probleme kod računanja iste

te rješenja tih problema.

2.1 Objašnjenje PageRank metode

Internet možemo interpretirati kao veliki graf (skup čvorova i linija koje ih povezuju), gdje

čvorovi predstavljaju web-stranice, a linije linkove (poveznice) između njih. Linije su

usmjerene, razlikujemo stranicu koja pokazuje i stranicu na koju se pokazuje. Naravno, linije

mogu biti i obosmjerne. Ovaj način gledanja na Internet uvelike pomaže kod kreiranja i

razumijevanja raznih načina za rangiranje web-stranica.

PageRank algoritam je integralni dio Google web-pretraživača. On govori koliko je pojedina

stranica ''važna'', tj. koliko će biti blizu vrhu u rezultatima pretraživanja.

Algoritam se zasniva na osnovnoj ideji da je stranica važna ako postoje poveznice na nju sa

drugih važnih stranica. To možemo shvatiti kao glasovanje, svaka pojedina poveznica je jedan

glas za važnost neke stranice. Razlog iza poveznice nam nije važan. Dakle, rezultate PageRank

algoritma možemo shvatiti kao rezultate izbora.

Page 4: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

3

No, algoritam radi razliku između pojedinih glasova, nije svaki glas jednak. Glas stranice manje

važnosti (one koja ima manje poveznica koje vode na nju) ima manju vrijednost nego glas

stranice velike važnost (sa puno poveznica prema njoj). PageRank također smanjuje vrijednost

glasa pojedine stranice ovisno o tome na koliko različitih stranica pokazuje. Ako stranica

pokazuje na 100 drugih stranica, onda vrijednost glasa za svaku od tih stranica dijelimo sa 100.

Za n stranica Pi, i=1,2,…,n odgovarajući PageRank iznosi ri, i=1,2,…,n. Matematička formula

za rekurzivno definirani PageRank izražena je u jednakosti (1):

𝑟𝑖 = ∑𝑟𝑗

𝑁𝑗j∈Li

, 𝑖 = 1,2, … 𝑛. (1)

gdje je ri PageRank stranice Pi, Nj broj outlinkova iz stranice Pj i Li stranice koje linkaju na

stranicu Pi.Budući da je algoritam rekurzivne prirode, implementacija je iterativna i zahtjeva

nekoliko iteracija prije stabilizacije ili prihvatljivog rješenja. Gornja jednadžba se može riješiti

sljedećim algoritmom:

Algoritam 2.1 PageRank

1: 𝑟𝑖(0)

, 𝑖 = 1,2, … , 𝑛. proizvoljan početni ne-nul vektor

2:for k = 0, 1, … do

3: 𝑟𝑖(𝑘+1)

= ∑𝑟𝑗

(𝑘)

𝑁𝑗j∈Li , i=1,2,…,n.

4: if ||r(k+1)-r(k)|| < tolerance

5: break

6: end if

7:end for

Počinjemo sa ne-nul vektorom r(npr. vektor jedinica podijeljen sa brojem stranica). Vrijednost

vektora 𝑟𝑖predstavlja početni rang svake stranice 𝑃𝑖. Nakon toga iteriramo gornju formulu sve

dok rezultati zadnje dvije iteracije nisu dovoljno slični.

2.2 Matrični model

Uz pomoć sljedeće definicije matrice Q, PageRank problem možemo promatrati kao matrični

problem:

𝑄𝑖𝑗 ∶= {

1

𝑁𝑖, 𝑎𝑘𝑜 𝑝𝑖 𝑙𝑖𝑛𝑘𝑎 𝑝𝑗

0, 𝑖𝑛𝑎č𝑒

Usmjereni graf na Slici 1 pokazuje izolirani primjer sa šest stranica, 𝑃1 , 𝑃2, … , 𝑃6.

Page 5: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

4

Slika 1: Mala izolirana web stranica sa 6 stranica

Matrični zapis tog primjera zapisujemo kao:

Gdje jedinica na mjestu 𝑄𝑖𝑗označuje postojanje poveznice na stranici 𝑃𝑖 prema stranici 𝑃𝑗 te ju

dijelimo sa 𝑁𝑖, tj. brojem postojećih poveznica na stranici𝑃𝑖.

Tada k-tu iteraciju PageRank-a možemo zapisati kao:

𝑟(𝑘+1)𝑇 = 𝑟(𝑘)

𝑇 𝑄 𝑘 = 0,1, …

Iz gornjeg izraza dolazi naziv metoda potencija.

Page 6: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

5

2.3 Slučajni šetač

PageRank algoritam se može bolje približiti usporedbom sa slučajnim šetačem. Šetač počinje

na nasumično odabranoj stranici te odabire jednu od stranica na koju početna stranica pokazuje

(linka). Sada možemo rezultat PageRank metode promatrati kao asimptotsku vjerojatnost da je

šetač na određenoj stranici. To je moguće iz razloga što je veća vjerojatnost da će se šetač naći

na stranici na koju puno drugih stranica pokazuje.

2.3.1 “Zaglavljen“ u stranici

Problem kod usporedbe sa šetačem je što postoje stranice bez izlaza, tj. one koje ne pokazuju

ni na koju drugu stranicu. U našem primjeru sa šest stranica će se to dogoditi ako šetač zaluta

na stranicu 𝑃1.

PageRank metoda taj problem rješava tako što zamijeni sve nule u matrici Q sa brojem 1/n,

gdje je n dimenzija matrice.

U matričnom zapisu:

�̂� = 𝑄 +1

𝑁𝑑𝑒𝑇

gdje je e jedinični vektor-stupac, a d vektor-stupac koji opisuje koji retci u matrici Q se sastoje

samo od nula. Vektor d definiramo kao:

𝑑𝑖 = {1 𝑎𝑘𝑜 𝑁𝑖 = 00 𝑖𝑛𝑎č𝑒

𝑖 = 1,2, … , 𝑛.

Izračunajmo �̂�za naš primjer:

Matrica �̂�je redak-stohastička, tj. suma svakog retka joj je 1.

Page 7: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

6

2.3.2 “Zaglavljen“ u podgrafu

Drugi problem kod usporedbe sa šetačem je mogućnost postojanja izoliranih podgrafova, tj.

skupa stranica koje ne pokazuju ni na koju drugu stranicu. U tom slučaju će šetač biti zarobljen

u malom odjeljku weba. U našem primjeru će doći do te situacije ako se šetač nađe u donjem

dijelu grafa. Nakon što dođe u donju polovicu, ne postoji poveznica preko koje se može vratiti

u gornji dio. To nam govori da je matrica problema reducibilna.

Ako se šetač nađe u izoliranom podgrafu, vjerojatnost da se nalazi u jednom od čvorova tog

podgrafa se povećava svakom iteracijom. Zato želimo da je matrica ireducibilna.

PageRank rješava problem reducibilnosti tako da omogući skok iz bilo koje stranice na bilo

koju drugu. Vjerojatnost tog skoka je mala, ali različita od nule. To zapisujemo na idući način:

�̂̂� = 𝛼�̂� + (1 − 𝛼)1

𝑛𝑒𝑒𝑇

gdje je e jedinični vektor-stupac, a α faktor prigušenja, tj. faktor vjerojatnosti skoka. U našem

primjeru ćemo α postaviti na 0.85 – toliko on iznosi i u Googleovom pretraživaču.

Sada računamo �̂̂�za naš primjer:

U našem računu smo dodali svakoj stranici jednaku vjerojatnost skoka. Možemo i umjesto

𝑒𝑇koristiti vektor težina koji će označavati različite vjerojatnosti skoka na određene stranice te

tako prilagoditi rješenje vlastitim potrebama.

Page 8: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

7

2.4 Odabir α

Propozicija:

Ako matrica �̂�𝑇ima svojstvene vrijednosti {1, 𝜆2, 𝜆3, ...}, onda matrica �̂̂�𝑇ima svojstvene

vrijednosti {1, 𝛼𝜆2, 𝛼𝜆3, ...}.

Prethodna propozicija nam govori da odabir 𝛼 uvelike utječe na dobivene rezultate. Može se

pokazati da metoda potencija aproksimativno konvergira brzinom C ∗ |𝜆2

𝜆1|

𝑚

.

Odabirom faktora α smanjili smo svojstvene vrijednosti matrice. To znači da će za mali α doći

do brže konvergencije. No to također znači da će konačni rezultat algoritma davati

nevjerodostojne rezultate, tj. loše će reprezentirati stvarnost jer dozvoljavamo da nasumični

skokovi (kojih inače nema) jako utječu na rezultat. Za veliki α (~0.9) će metoda potencija

sporije konvergirati, no rezultat će biti točniji. Dobar odabir (koji koristi i Google) za α je 0.85.

2.5 Računanje PageRank-a

Može se pokazati da za matricu koja je redak-stohastička i ireducibilna (kakav je naš �̂̂�) vrijedi

da joj je najveća svojstvena vrijednost 1 i da joj je odgovarajući svojstveni vektor nenegativan.

Iz tog razloga množimo s lijeva. Formula sada glasi:

�̂̂�𝑇𝑟 = 𝑟

Vidimo da je gornji problem zapravo problem pronalaska svojstvenog vektora te se naš problem

nalaženja ranga stranica zapravo ekvivalentan problemu pronalaska svojstvenog vektora koji

odgovara svojstvenoj vrijednosti 1.

U praksi, matrice koje se koriste u PageRank algoritmu su jako velike, ali može se pokazati da

umjesto pune matrice �̂̂�možemo koristiti jako rijetku matricu Q iz iduće jednakosti (9):

𝑟 = �̂̂�𝑇𝑟 = 𝛼�̂�𝑇𝑟 + (1 − 𝛼)1

𝑛𝑒𝑒𝑇𝑟 = 𝛼𝑄𝑇𝑟 + 𝛼

1

𝑛𝑒𝑑𝑇𝑟 + (1 − 𝛼)

1

𝑛𝑒𝑒𝑇𝑟 (9)

To će uvelike smanjiti količinu memorije potrebnu za računanje PageRank-a.

Page 9: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

8

3 RAČUNANJE SVOJSTVENIH VRIJEDNOSTI I VEKTORA

U prethodnim poglavljima pokazali smo da se PageRank neke stranice računa se kao svojstveni

vektor najveće svojstvene vrijednosti matrice �̂̂�𝑇. Stoga za izračun trebamo neku iterativnu

metodu koja se dobro ponaša za velike rijetke matrice.

Iako je metoda potencija relativno stara i ponekad nekorisna metoda, Google je koristi za

izračun zbog toga što ne zahtijeva cijelu nemodificiranu matricu, već samo jedan vektor. Dakle,

prednost metode potencija je to što koristi malo memorije. S druge strane, postoje i druge

metode koje su bolje u slučajevima kada se pretražuje samo dio interneta (npr. struktura stranica

sveučilišta ili neke države). Sa takvim manjim matricama možemo koristiti više memorije za

račun. Za ovakve slučajeve dobar odabir je Arnoldijeva metoda.

3.1 Metoda potencija

Metoda potencija je jednostavna metoda za računanje najveće svojstvene vrijednosti matrice i

pripadajućeg svojstvenog vektora. Može se koristiti kada postoji dominantna svojstvena

vrijednost matrice A, tj. svojstvene vrijednosti se mogu poredati na slijedeći način:𝜆1 > 𝜆2 ≥

𝜆3 ≥ ⋯ ≥ 𝜆𝑛. Osnovni algoritamski zapis metode potencija je:

Algoritam 3.1:Normalizirana metoda potencija

1:𝒙0 = 𝑝𝑟𝑜𝑖𝑧𝑣𝑜𝑙𝑗𝑎𝑛 𝑝𝑜č𝑒𝑡𝑛𝑖 𝑣𝑒𝑘𝑡𝑜𝑟 𝑟𝑎𝑧𝑙𝑖č𝑖𝑡 𝑜𝑑 𝑛𝑢𝑙 − 𝑣𝑒𝑘𝑡𝑜𝑟𝑎

2:for k = 1, 2, … do

3: 𝒚𝑘 = 𝑨𝒙𝑘−1

4: 𝒙𝑘 = 𝒚𝑘

‖𝒚𝑘‖1

5:end for

Važno je napomenuti da ovaj algoritam ne radi ako je početni vektor okomit na pravi svojstveni

vektor.

Može se pokazati da je brzina konvergencije metode potencija linearna, tj. da je jednaka

|𝜆1 − 𝜆1(𝑚)

| ≈ 𝐶 |𝜆2

𝜆1|

(𝑚)

, gdje je C neka pozitivna konstanta. Ovaj rezultat je važan za računanje

PageRank-a zbog toga što možemo utjecati na veličinu 𝜆2 mijenjanjem 𝛼, a time i na brzinu.

U sljedećem teoremu dokazujemo da su dovoljni uvjeti za konvergenciju metode potencija to

da je matricu moguće dijagonalizirati, te da ima dominantnu svojstvenu vrijednost. Iz njega pak

izvodimo zaključak o brzini konvergencije metode.

Page 10: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

9

Teorem 1: Dovoljni uvjet(i) za konvergenciju metode potencija

Ako je 𝐴 𝑛 × 𝑛 matrica sa dominantnom svojstvenom vrijednosti koja se može dijagonalizirati,

tada postoji vektor 𝑥0 različit od nul-vektora takav da se niz vektora dan sa

𝐴𝑥0, 𝐴2𝑥0, 𝐴3𝑥0, … , 𝐴𝑘𝑥0, …

približava dominantnom svojstvenom vektoru matrice 𝐴.

Dokaz.

Budući da se A može dijagonalizirati, znamo da ima n linearno nezavisnih svojstvenih vektora

𝑥1, … , 𝑥𝑛, te pripadnih svojstvenih vrijednosti 𝜆1, … , 𝜆𝑛. BSOMP da je 𝜆1 dominantna sv.

vrijed. (i 𝑥1 njezin sv. vektor). Budući da su sv. vektori lin. nezavisni, oni moraju činiti bazu za

ℝ𝑛. Za početnu aproksimaciju 𝑥0 odaberemo vektor različit od nul-vektora takav da linearna

kombinacija 𝑥0 = 𝑐1𝑥1 + ⋯ + 𝑐𝑛𝑥𝑛 ima vodeće koeficijente različite od nule. (Ako je 𝑐1 = 0,

metoda ne mora konvergirati, te se treba odabrati druga početna aproksimacija.)

Sada pomnožimo obje strane jednadžbe sa A:

𝐴𝑥0 = 𝐴(𝑐1𝑥1 + ⋯ + 𝑐𝑛𝑥𝑛)

= 𝑐1(𝐴𝑥1) + ⋯ + 𝑐𝑛(𝐴𝑥𝑛)

= 𝑐1(𝜆1𝑥1) + ⋯ + 𝑐𝑛(𝜆𝑛𝑥𝑛)

Nastavimo li sa množenjem matricom A, dobivamo:

𝐴𝑘𝑥0 = 𝑐1(𝜆1𝑘𝑥1) + ⋯ + 𝑐𝑛(𝜆𝑛

𝑘𝑥𝑛)

= 𝜆1𝑘 [𝑐1𝑥1 + 𝑐2 (

𝜆2

𝜆1)

𝑘

𝑥2 + ⋯ + 𝑐𝑛 (𝜆𝑛

𝜆1)

𝑘

𝑥𝑛]

Iz pretpostavke da je 𝜆1apsolutno najveća vrijednost, slijedi da su sve vrijednosti:

𝜆2

𝜆1, … ,

𝜆𝑛

𝜆1

po aps. vrijednosti manje od 1. Iz toga pak slijedi da njihove k-te potencije teže u 0 kako k teži

u beskonačnost. Ovo implicira da se aproksimacija 𝐴𝑘𝑥0 ≈ 𝜆1𝑘𝑐1𝑥1, 𝑐1 ≠ 0 poboljšava sa

𝑘 → ∞. Budući da je 𝑥1 dominantan sv. vektor, slijedi da su svi 𝛼𝑥1 dominantni sv. vektori,

gdje je 𝛼 neki skalar. Dakle, dobili smo da se aproksimacija približava dominantnom sv.

vektoru matrice A.∎

Page 11: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

10

Dokaz teorema nam daje uvid u brzinu konvergencije metode. Naime, jer se svojstvene

vrijednosti mogu poredati silazno po apsolutnoj vrijednosti pri čemu je prva strogo veća od

ostalih, vrijedi da će metoda brzo konvergirati ako je |𝜆2

𝜆1| malen, a sporo ako je blizu 1.

3.1.1 Korištenje metode potencija u PageRank-u

Matrice koje se koriste u računanju PageRank-a najčešće su veoma velike (sjetimo se da svaki

red predstavlja jednu web-stranicu, a svako mjesto neki link). Malo je metoda koje mogu

relativno brzo i točno provesti kalkulacije na ovako velikim skupovima podataka. Google

koristi upravo metodu potencija zbog sljedećih dobrih svojstava:

Možemo spremati samo prethodnu aproksimaciju

Pronalazi najveću sv. vrijednost i pripadni sv. vektor, a to je upravo ono što tražimo

Ne mijenja polaznu matricu

Algoritam 3.1 možemo skratiti, tj. pojednostaviti: jer je ‖𝑥‖1 = 𝑒𝑇𝑥 = 1, slijedi ‖𝑦‖1 = 𝑒𝑇𝑦 =

𝑒𝑇𝐴𝑥 = 𝑒𝑇𝑥 = 1 (jer je A stohastička po stupcima: 𝑒𝑇𝐴 = 𝑒𝑇). Stoga možemo izbaciti

normalizaciju iz algoritma.

Korištenjem metode potencija za računanje PageRank-a može se pokazati da je dovoljno

izračunati:

𝒓 = 𝛼𝑄𝑇𝒓 +1

𝑛𝑒 −

1

𝑛‖𝛼𝑄𝑇𝒓‖1

umjesto računa kao u (9). Dakle, ne moramo znati d, tj. ne moramo znati koje stranice nemaju

outlinkove.

3.2 Arnoldijeva metoda

Arnoldijeva metoda pronalazi sve sv. vrijednosti i vektore koristeći Krylovljev potprostor

(definira se kao K(A, q, j) = span(q, Aq, A2q, . . . Aj-1q)). Inicijalno je korištena za računanje

gornjih Hessenbergovih formi (matrica ima nule ispod prve poddijagonale), ali je kasnije

otkriveno da je dobra iterativna metoda za pronalazak sv. vrijednosti i vektora velikih i rijetkih

matrica. Metoda počinje odabirom broja baza m za Krylovljev potprostor te pronalaskom istih.

Nakon toga, možemo izračunati aproksimacije sv. vrijednosti i vektora originalne matrice A.

Page 12: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

11

Algoritam 3.2: Arnoldijeva metoda

1: 𝒗0 = 𝑝𝑟𝑜𝑖𝑧𝑣𝑜𝑙𝑗𝑎𝑛 𝑝𝑜č𝑒𝑡𝑛𝑖 𝑣𝑒𝑘𝑡𝑜𝑟 𝑟𝑎𝑧𝑙𝑖č𝑖𝑡 𝑜𝑑 𝑛𝑢𝑙 − 𝑣𝑒𝑘𝑡𝑜𝑟𝑎

2: 𝒗1 = 𝒗0

‖𝒗0‖2

3: for j = 1, 2, … do

4: 𝑤 = 𝑨𝑣𝑗

5: for 𝑖 = 1: 𝑗 do

6: ℎ𝑖𝑗 = 𝑤*𝑣𝑖

7: 𝑤 = 𝑤 − ℎ𝑖𝑗𝑣𝑖

8: end for

9: ℎ𝑗+1,𝑗 = ‖𝑤‖2

10: if ℎ𝑗+1,𝑗 = 0 then

11: stop

12: end if

13: 𝑣𝑗+1 =𝑤

ℎ𝑗+1,𝑗

14: end for

𝑚 × 𝑚 matrica H je ključna u računu – njezine sv. vrijednosti 𝜆𝑖(𝑚)

(zvane Ritzove vrijednosti)

konvergiraju prema sv. vrijednostima matrice A za što veći broj baza 𝑚. Zatim se sv. vektori

matrice A računaju na sljedeći način:

Uzmemo određenu sv. vrijednost matrice H

Odredimo sv. vektor matrice H vezan uz tu sv. vrijednost

Odgovarajući sv. vektor matrice A je tada dan sa:

𝑢𝑖(𝑚)

= 𝑉𝑚𝑦𝑖(𝑚)

(10)

gdje je 𝑢𝑖(𝑚)

pripadni sv. vektor od A, 𝑉𝑚 je vektor sa bazama Krylovljevog potprostora

i 𝑦𝑖(𝑚)

je sv. vektor matrice H vezana uz odgovarajuću sv. vrijednost.

3.2.1 Kriterij zaustavljanja

Kriterij zaustavljanja iteracija je rezidualna norma PageRank vektora. Kada rezidualna norma

između dviju iteracija postane manja od neke tolerancije, prekida se iteriranje. U Arnoldijevoj

metodi možemo umjesto direktnog računanja reziduala iskoristiti bržu i memorijski lakšu

metodu za računanje kriterija zaustavljanja. Kriterij možemo dobiti računanjem rezidualne

norme Ritzovog para(𝑦𝑖(𝑚)

, 𝜆𝑖(𝑚)

):

‖(𝐴 − 𝜆𝑖(𝑚)

𝐼)𝑢𝑖(𝑚)

‖2

= ℎ𝑚+1,𝑚|𝑒𝑚∗ 𝑦𝑖

(𝑚)| (11)

Ova brza metoda je jedna od prednosti Arnoldijeve metode.

Page 13: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

12

3.2.2 Korištenje Arnoldijeve metode za PageRank

Iterativni algoritam za specifičnu svojstvenu vrijednost i vektor:

Inicijalno:

Stvorimo početnu bazu, obično uniformnu

For 𝑚 = 1, 2, … do

Dodamo bazu u naš potprostor

Izračunamo svojstvenu vrijednost i vektor matrice H koje nas zanimaju

If ℎ𝑚+1,𝑚|𝑒𝑚∗ 𝑦𝑖

(𝑚)| < 𝑡𝑜𝑙 Break

Konačno:

Pronađemo pripadni sv. vektor matrice A kao u (10)

3.2.3 Eksplicitni “restart“

Kako se broj iteracija povećava, količina posla za Arnoldijevu metodu se sve više povećava:

kao i u metodi potencija, množe se matrica i vektor, a dodatni posao je ortogonaliziranje nove

baze u odnosu na sve prijašnje. Također se poslije svake iteracije treba izračunati Ritzov par

(svojstvene vrijednosti i vektori Hessenbergove matrice). Sav ovaj posao se s iteriranjem sve

više povećava zbog dodavanja vektora u bazu, te povećanje dimenzije Hessenberg matrice.

Ideja eksplicitnog “restarta” je: odredimo 𝑚 koraka u algoritmu 3.2, izračunamo aproksimativni

sv. vektor 𝑢𝑖(𝑚)

(tj. PageRank vektor), završimo ako je rezultat dovoljno dobar, inače

“restartamo” algoritam 3.2 sa početnim vektorom 𝑣0 = 𝑢𝑖(𝑚)

.

3.3 Točnost svojstvenog vektora

Krajnji svojstveni vektor koji opisuje važnost svakog link-a u strukturi je vjerojatnosni vektor:

svi elementi su između 0 i 1, te je suma svih elemenata jednaka 1. To znači da će za velike

strukture elementi vektora biti veoma maleni. Zbog toga želimo što točniju reprezentaciju

brojeva kako bismo mogli što točnije procijeniti relativnu važnost stranica. Pokazano je da je

minimalna točnost veličine 10−9, a najveća potrebna je veličine 10−12(jer stranice koje

pripadaju istom upitu obično nemaju slične PageRank vrijednosti).

Page 14: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

13

4 FORMATI RIJETKIH MATRICA

Kako dimenzija matrice s linkovima postaje sve veća, njezina «rijetkost» postaje također sve

veća. Za velike matrice nemoguće je raditi račune u njihovom punom obliku; potrebno je

koristiti neke posebne formate matrica.

4.1 CRS – Compress Row Storage

Matrica se sprema kao niz redova. CRS je jedna od najšire korištenih metoda za pohranu rijetkih

matrica sa minimalnim memorijskim zahtjevima. U CRS-u se lako implemetiraju i osnovne

operacije sa matricama, npr. množenje matrica i vektora (SpMxV). Problem kod SpMxV je loša

pozicija podataka za vektor kojim se množi matrica jer nasumično prelazimo na elemente u

vektoru.

indeks 1 2 3 4 5 6 7 8 9 10

Row_ptr 1 1 3 6 8 10 11

Col_ptr 1 3 1 2 4 5 6 4 5 4

val 1/2 1/2 1/3 1/3 1/3 1/2 1/2 1/2 1/2 1

Tablica 1. CRS shema za matricu Q (3)

Algoritam za SpMxV:

Algoritam 4.1:SpMxV

1: for i=0:dim do

2: for j=row_ptr[i]:row_ptr[i+1] do

3: sol[i] = sol[i]+val[j]*v[col_ind[j]]

4: end for

5: end for

Množenje transponirane CRS matrice bilo bi jednako lagano implementirati, uz malu izmjenu

u redu 3). Kao što je prethodno navedeno, problem kod ove sheme je loša pozicija podataka:

indeksi iz col_ptr će nasumično skakati u vektoru v, te će zbog toga postojati cache promašaji

u gotovo svakoj iteraciji.

4.2 MATLAB internal sparse format

MATLAB koristi vlastitu shemu za pohranu rijetkih matrica. Za svaku vrijednost različitu od

0, MATLAB pohranjuje trojku (x, y, val) da opiše poziciju i vrijednost elementa.

Shema je prikazana u Tablici 2.

Page 15: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

14

indeks 1 2 3 4 5 6 7 8 9 10

(x, y) (1,2) (3,2) (1,3) (2,3) (4,3) (5,4) (6,4) (4,5) (5,5) (4,6)

val 1/2 1/2 1/3 1/3 1/3 1/2 1/2 1/2 1/2 1

Tablica 2. MATLAB shema za matricu Q (3)

5 TESTNI PODACI

Koristili smo tri matrice, različite po veličini i strukturi. Jedna je generirana u Octave -u, jedna

je identična kao u izvornom radu, a treća skinuta s interneta.

5.1 Stanford Web matrica

Ova matrica je sa stranice Stanford Sveučilišta. Opisuje stanford.edu domenu iz 2002. godine.

Sadrži 281903 stranica s otprilike 2.2 milijuna linkova. Pohranjena u MATLAB sparse formatu zauzima

64.2 MB. Uzorak “rijetkosti” gornjeg lijevog dijela Stanford matrice je prikazan u slici 5.1.

Slika 5.1 – Stanford matrica

Page 16: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

15

5.2 Random matrica

Sljedećim kodom generirali smo random matricu dimenzije 10000×10000.

Algoritam 5.1: Generiranje matrica

1. 1: function [A] = random_matrix(dim)

2. 2: A = sparse(dim, dim);

3. 3: maxnel = min(16, dim);

4. 4: for i = 1:dim

5. 5: nel = ceil(rand(1)*maxnel);

6. 6: for j = 1:nel

7. 7: id = ceil(rand(1)*dim);

8. 8: while A(i, id) ~= 0

9. 9: id = ceil(rand(1)*dim);

10. 10: end

11. 11: A(i, id) = 1;

12. 12: end

13. 13: end

14. 14: end

Slika 5.2 Random generirana matrica

Page 17: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

16

5.3 Matrica citiranih članaka

Matrica je preuzeta sa stranice http://snap.stanford.edu/data/cit-HepPh.html Dimenzija matrice:

34546×34546. Ako rad i citira rad j, matrica na mjestu (i,j) sadrži 1. Podaci u matrici sežu od

1993. do 2003. godine.

Slika 5.3 Matrica citiranih članaka

Page 18: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

17

6 REZULTATI

Za numeričke eksperimente i provjeru implementirali smo algoritme u Octave-u. Kodove smo

stavili u dodatak. Nismo koristili paralelizaciju.

6.1 Broj potrebnih iteracija

Broj iteracija potrebnih za različite metode je dosta varirao. Naši rezultati pokazuju da je

metoda potencija potrebno više iteracija (u usporedbi s Arnoldijevom metodom) za

konvergenciju. Rezultati su ovisili o strukturi matrice. Najvažniji čimbenici za usporedbu

metoda je vrijeme potrebno za izračunati PageRank, budući da se iteracije razlikuju među

algoritmima. Slika 6.1. pokazuje rezultate za tri testne matrice.

Uočili smo da za eksplicitno “restartanu“ Arnoldijevu metodu treba malo više iteracija nego za

normalnu verziju. Može se jasno vidjeti gdje se metoda “restarta“. I metoda potencija i

Arnoldijeva metoda konvergiraju linearno za slučajno odabranu matricu u 6.1c)

6.2 Variranje α

Ovdje testiramo utjecaj variranja α.

Za svaku od matrica izračunali smo “točan“ PageRank koristeći α=0.99 i tol=1e-8. Izračunati

PageRank za različite α smo usporedili s onim “pravim“. Također smo napravili graf koji

pokazuje broj potrebnih iteracija u ovisnosti o α. Pokazujemo rezultate za matricu citiranih

članaka.

Page 19: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

18

U 6.2a) vidimo da se “točnost“ povećava linearno do α=0.85, nakon čega rast postaje

eksponencijalan.

6.2b) pokazuje da se naše dvije Arnoldijeve metode bolje ponašaju za veće α nego metoda

potencija. Možemo to vidjeti prilikom bržeg povećanja broja iteracija metode potencija nego

kod Arnoldijeve metode. 6.2b) nam također pokazuje da je razlika u broju iteracija između

Arnoldijeve metode i “restartane“ Arnoldijeve metode zanemariva. Zaključak je da bi

eksplicitno “restartana“ metoda trebala imati bolje performanse za veće α od ostale dvije

metode.

Slika 6.3 pokazuje rezultate uspoređivanja metoda i korištenja različitih vrijednosti α.

Page 20: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

19

Graf pokazuje da je „restartana“ Arnoldijeva metoda zaista bolja od druge dvije metode.

6.3 Važnost parametra m u eksplicitno “restartanoj“ Arnoldijevoj metodi

Variranjem parametra m (maksimalni broj baza) možemo promijeniti broj potrebnih iteracija,

a time i vrijeme izvršavanja metode. Slika 6.4 pokazuje važnost odabira dobrog m.

Graf 6.4a) pokazuje da povećanjem m smanjujemo broj iteracija potrebnih za konvergenciju.

Stoga se s većim m povećava količina posla opisana u poglavlju 3.2.2.

Graf 6.4b) pokazuje da je za Stanford matricu i α=0.85, m izmedju 20 i 30 najbolji izbor.

Veličina najboljeg m ovisi o strukturi matrice i o vrijednosti izabranog α.

Page 21: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

20

7 ZAKLJUČAK

METODA

POTENCIJA

ARNOLDIJEVA

METODA

EKSPLICITNO

“RESTARTANA“

ARNOLDIJEVA

METODA

ZA Dobro radi za

α<0.9

Svaka iteracija

jednako traje

Bolje koristiti

za manje α

Brža i

zauzima

manje

memorije

Bolje koristiti

za veće α

PROTIV Potrebno puno

iteracija

za α>0.85

eksponencijalni

rast

Rastuća

količina

posla i

potrebne

memorije za

svaku

iteraciju

Nemoguće

pronaći

optimalni m

za svaku

matricu

Page 22: GOOGLEOV PAGERANK ALGORITAMweb.studenti.math.pmf.unizg.hr/~dsibeni/USPP/seminar1/seminar1.pdf · 5 2.3 Slučajni šetač PageRank algoritam se može bolje približiti usporedbom sa

21

8 LITERATURA

[1] Erik Andersson, Per-Anders Ekstrom, Investigating Google's PageRank algorithm, 2004.

[2] Ron Larson, Elementary linear algebra, 7th edition, 2013. Dostupno na:

http://college.cengage.com/mathematics/larson/elementary_linear/5e/students/ch08-

10/chap_10_3.pdf

[3] Matrica citiranja preuzeta sa: http://snap.stanford.edu/data/cit-HepPh.html

[4] Stanford matrica preuzeta sa:

http://www.cise.ufl.edu/research/sparse/matrices/SNAP/web-Stanford.html