Google Algoritmi Za Rangiranje Stranica

Download Report

Transcript Google Algoritmi Za Rangiranje Stranica

Slide 1

Elektrotehnički fakultet Univerziteta u Beogradu

Diplomski rad

Google algoritmi
za rangiranje stranica
Student:
Branko Golubović

Mentor:
prof. Veljko Milutinović

This material was developed with financial help of the WUSA fund of Austria.


Slide 2

Pregled
• Uvod
• Google pretraživač





Kako radi Google
Skor sadržaja
Skor popularnosti
Osobine i implementacija PageRank algoritma

• Budućnost pretraživača

Google algoritmi za rangiranje stranica

2/45


Slide 3

Uvod


Slide 4

Pretraživanje kroz istoriju
• Papirus
• Pergament

• Papir
• Štamparska mašina
• WWW

Google algoritmi za rangiranje stranica

4/45


Slide 5

Mreža je:
• ogromna (oko 30 milijardi stranica)
• dinamična (23% stranica se menja svakog dana)

• samo-organizovana
• povezana (hiperlinkovi)

Google algoritmi za rangiranje stranica

5/45


Slide 6

Pretraživači
• Ocenjivanje performansi pretraživača:





preciznost
odziv
brzina
zahtevnost

Google algoritmi za rangiranje stranica

6/45


Slide 7

Google pretraživač


Slide 8

Google od nastanka do danas
• 1996. – istraživački projekat na Stenfordu
Larija Pejdža i Sergeja Brina
• 1997. – zakupljen domen google.com
• 1998. – osnovana kompanija Google;
indeksirano 60 miliona stranica
• 2001. – patentiran PageRank algoritam
• 2004. – indeksirano 8.1 milijardi stranica
• 2008. – indeksirano preko 25 milijardi stranica;
250 miliona upita dnevno; odziv ispod 0.5s

Google algoritmi za rangiranje stranica

8/45


Slide 9

Google pretraživanje
• Pored pretraživanja stranica na Mreži
Google nudi pretragu:










slika
vesti
proizvoda
mapa
e-mail-a
video zapisa
open source code
patenata
itd.

I will use Google before asking dumb questions

Google algoritmi za rangiranje stranica

9/45


Slide 10

Google pretraživač
Kako radi Google


Slide 11

Elementi pretraživača
Korisnik

Modul za
obilaženje
Mreže

Modul za
skladištenje
stranica

Upit

Rezultat

Modul za
indeksiranje

W
W
W
Indeksi

Specijalni

Sadržaj

Modul za
obradu
upita

Modul za
rangiranje

Struktura

Pretraživač

Google algoritmi za rangiranje stranica

11/45


Slide 12

Modul za obradu upita
• Filteri:











Izostavljanje termina
Jezik
Tip dokumenta
Pretraga u baznog URL-a
Datum
Pozicija termina na stranici
Region
Brojevni opseg
SafeSearch
Prava korišćenja

Google algoritmi za rangiranje stranica

12/45


Slide 13

Modul za obradu upita
• Ekspanzija upita:
• Balansiranje stabla (term reordering)
• Odbacivanje uobičajenih reči (stop words)

• Koren reči (stemming)
• Provera pravopisa

• Sinonimi
• Asocijacija reči
Google algoritmi za rangiranje stranica

13/45


Slide 14

Modul za rangiranje
• Verovatno najvažniji deo pretraživača
• Ukupan skor se dobija sabiranjem:
• skora sadržaja (content score) i
• skora popularnosti (popularity score)

Google algoritmi za rangiranje stranica

14/45


Slide 15

Google pretraživač
Skor sadržaja
(content score)


Slide 16

Content score
• Sadržaj stranice
• META tag
• page title
• description
• keywords

• Heading
• Alt atribut
• Tekst hiperlinkova (anchor text)

Google algoritmi za rangiranje stranica

16/45


Slide 17

Content score
• Content score se izračunava u realnom vremenu
• Ubrzavanje upita – smanjivanje izračunavanja
u realnom vremenu
• Proširivanje indeksa deskriptorima:
termin n (avion) – 7, 152 [1, 0, 1, 8], 7342

Google algoritmi za rangiranje stranica

17/45


Slide 18

Google pretraživač
Skor popularnosti
(popularity score)


Slide 19

Popularity score
• Do 1998. webgraph je bio neiskorišćen
kao izvor informacija za rangiranje
• Link sa stranice A ka stranici B
se tumači kao preporuka
• Ovaj link je:
• izlazni link stranice A
• ulazni link stranice B

Google algoritmi za rangiranje stranica

19/45


Slide 20

Originalna formula PageRank-a


Ako je rang strane Pi označen kao r(Pi), tada se on može izračunati
kao suma rangova svih strana koje pokazuju na Pi:

r ( Pi ) 


r ( Pj )



Pj BP

i

Iterativna formula:

rk 1 ( Pi ) 

rk ( P j )



Pj BP

i



Pj

Pj

Proces je iniciran početnim vrednostima r0(Pi)=1/n
Google algoritmi za rangiranje stranica

20/45


Slide 21

Originalna formula PageRank-a
• Graf:
2

5
3

4

1

6

• Matrica prelaza:

H 

0

1/ 2

1/ 2

0

0

0

0

0

0

0

0

0

1/ 3

1/ 3

0

0

1/ 3

0

0

0

0

0

1/ 2

1/ 2

0

0

0

1/ 2

0

1/ 2

0

0

0

1

0

0

Google algoritmi za rangiranje stranica

21/45


Slide 22

PageRank
• Ako je p(k)T PageRank vektor u k-toj iteraciji,
tada je:
p(k1)T= p(k)TH
iterativna formula za dobijanje PageRank-a
u matričnom obliku

Google algoritmi za rangiranje stranica

22/45


Slide 23

Matrica prelaza H
• Osobine matrica prelaza H:
• svaka iteracija sadrži množenje vektora i matrice - O(n2)
• H je retka matrica – stepen složenosti se smanjuje O(n)
• iterativni proces primenjen u formuli se naziva
stepeni metod (eng. Power method) primenjen na H

• H je substohastička, jer viseće stranice proizvode 0 redove

Google algoritmi za rangiranje stranica

23/45


Slide 24

Konvergiranje procesa
• Važna pitanja:
• Da li će i pod kakvim uslovima proces konvergirati?
• Da li će konvergirati ka jedinstvenom rešenju?
• Da li konvergencija zavisi od početnog vektora p(0)T?
• Koja je brzina konvergiranja?
• Da li će rešenje ka kome sistem konvergira biti od
koristi za rangiranje stranica?
Google algoritmi za rangiranje stranica

24/45


Slide 25

Problemi sa matricom H
• Inicijalni vektor je p(0)T=1/neT,
gde je eT vektor jedinica dimenzije n
• Problemi sa takvim sistemom:
• rank sink
• ciklusi

• H podseća na stohastičku matricu verovatnoće
prelaza Markovljevih lanaca

Google algoritmi za rangiranje stranica

25/45


Slide 26

Markovljevi lanci
• Za bilo koji inicijalni vektor, matrica P u
Markovljevom lancu konvergira ka jedinstvenom
pozitivnom vektoru (stacionarni vektor), ako je P:
• stohastička
• nesvodljiva
primitivna
• aperiodična

Google algoritmi za rangiranje stranica

26/45


Slide 27

Prilagođavanje matrice H
• Model slučajnog surfera (eng. random surfer)
• Stohastička matrica S (stohastička modifikacija):

S 

0

1/ 2

1/ 2

0

0

0

1/ 6

1/ 6

1/ 6

1/ 6

1/ 6

1/ 6

1/ 3

1/ 3

0

0

1/ 3

0

0

0

0

0

1/ 2

1/ 2

0

0

0

1/ 2

0

1/ 2

0

0

0

1

0

0

S = H + a(1/n eT), gde je a dangling node vector

Google algoritmi za rangiranje stranica

27/45


Slide 28

Prilagođavanje matrice H
• Google matrica G (modifikacija primitivnosti):
G = aS + (1 - a)1/n eeT,

gde je:
• 1 - a verovatnoća teleportacije (verovatnoća da surfer
skoči na proizvoljnu stranu)
• 0• 1/n eeT = E matrica teleportacije (uniformna)

Google algoritmi za rangiranje stranica

28/45


Slide 29

Posledice modifikacije
• Matrica G je:
• stohastička
• nesvodljiva (sve strane su međusobno povezane)
• aperiodična (linkovi Gii)
• u potpunosti gusta, ali:
G = aS + (1 - a)1/n eeT =
= a(H + 1/n aeT) + (1 - a)1/n eeT =
= aH + (aa + (1 - a)e)1/n eT

• veštačka, u smislu da je nastala modifikacijom H
Google algoritmi za rangiranje stranica

29/45


Slide 30

Izračunavanje PageRank vektora
• Power method – pronalazi dominantne sopstvene
vrednosti i sopstvene vektore matrice
• jednostavan:

p(k1)T= p(k)TG =
= ap(k)T S + (1 - a)/n p(k)T eeT =
= ap(k)T H + (ap(k)T a + 1 - a)eT/n,
gde je pTe = 1.
• matrix-free
• storage friendly
• zahteva svega 50-100 iteracija

Google algoritmi za rangiranje stranica

30/45


Slide 31

Parametri u PageRank modelu



a faktor (PageRank – a = 0.85):
G = aS + (1 - a)E
hiperlink matrica H:

H 



0

1/ 2

1/ 2

0

0

0

0

2/3

1/ 3

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1/ 3

1/ 3

0

0

1/ 3

0

1/ 3

1/ 3

0

0

1/ 3

0

0

0

0

0

1/ 2

1/ 2

0

0

0

0

1/ 2

1/ 2

0

0

0

1/ 2

0

1/ 2

0

0

0

1/ 2

0

1/ 2

0

0

0

1

0

0

0

0

0

1

0

0

H 

matrica teleportacije E:
E = 1/n evT
gde je vT vektor teleportacije (personalizacije)
Google algoritmi za rangiranje stranica

31/45


Slide 32

Google pretraživač
Osobine i implementacija
PageRank algoritma


Slide 33

Ubrzavanje izračunavanja PageRank-a
• adaptivni Power metod – smanjuje izračunavanje:
• prednosti: ubrzanje od 17%
• mane: nepreciznost (lokalni minimumi), teškoće kod
implementacije na velike sisteme

• ekstrapolacija – smanjuje broj iteracija:
• asimptotska brzina konvergencije Power metoda
je brzina kojom |l2/ l1|k teži nuli
• G je stohastička: l1 = 1
• G je primitivna: |l2| < 1
• ekstrapolacija – eliminisanje uticaja l2
• mane: zahtevnost (svaka deseta iteracija)
Google algoritmi za rangiranje stranica

33/45


Slide 34

Ubrzavanje izračunavanja PageRank-a
• quadratic ekstrapolacija – smanjuje broj iteracija:
• eliminisanje uticaja l2 i l3
• prednosti: 50-300% bolji rezultati od originalnog PR
• mane: zahtevno izračunavanje (svaka 20-ta iteracija)
PageRank
PageRank sa quadratic ekstrapolacijom

Google algoritmi za rangiranje stranica

34/45


Slide 35

Ubrzavanje izračunavanja PageRank-a
• agregacija – BlockRank:





kompresovanje grafa Mreže po host-ovima
PageRank se primenjuje na hostgraph – HostRank
PageRank se primenjuje na same host-ove
konačan rang stranice se dobija množenjem
HostRank-a host-a i ranga stranice unutar host-a

• mane: dobijaju se aproksimacije
• prednosti: aproksimacije su zadovoljavajuće, brzina je
veća nego originalni PageRank

Google algoritmi za rangiranje stranica

35/45


Slide 36

Osvežavanje PageRank vektora
• Jednom mesečno – Google Dance
• PageRank se izračunava od nule

• Promene na WWW:
• promene u strukturi linkova
• promene u strukturi grafa

Google algoritmi za rangiranje stranica

36/45


Slide 37

S  LL

Osvežavanje PageRank vektora
• Aproksimativna agregacija:
• S – skup stanja osveženog Markovljevog lanca

S  LL
S  LL

• L – sadrži stanja na koje je uticala promena

• Egzaktna agregacija

Google algoritmi za rangiranje stranica

37/45


Slide 38

Osvežavanje PageRank vektora
• Iterativna agregacija:
• što je |L| = l veće, brža konvergencija i više
izračunavanja
• dobro formiranje skupa L:
• stavljanje svih novih i promenjenih stanja u L
• dodavanje stanja sa visokim PR u prethodnom
izračunavanju

• osobine:





poboljšanje performansi (1/7 vremena potrebnog PR)
što je više podataka, poboljšanja izraženija
mesta za dodatna poboljšanja (npr. ekstrapolacija)
promene broja stranica ne utiču na algoritam

Google algoritmi za rangiranje stranica

38/45


Slide 39

Budućnost pretraživača


Slide 40

SPAM i ostale zloupotrebe
• Algoritmi za detektovanje Link farmi

• BadRank
• Sponzorisani linkovi
Google algoritmi za rangiranje stranica

40/45


Slide 41

Specijalizovani pretraživači
• Neki specijalizovani pretraživači:






Najdi.si (geografski lokalizovani pretraživač),
Business.com (poslovni pretraživač),
Hotjobs.com (pretraživač berze rada),
InfoSpace (pretraživač osoba),
Home.co.uk (pretraživač nekretnina), itd.

• Google-ovi specijalizovani pretraživači:





Google Book Search (knjige),
Google Code Search (programski kod),
Google Scholar (obrazovanje),
Google News (vesti), itd.
Google algoritmi za rangiranje stranica

41/45


Slide 42

Personalizovane pretrage
• Google Personalized Search – Web History
• A9.com

• Mnogi sajtovi imaju internu personalizovanu
pretragu – npr. Amazon.com
• Problemi sa privatnošću

Google algoritmi za rangiranje stranica

42/45


Slide 43

Klasifikacija i klasterovanje
• Stumble!
• Vivisimo – Clusty
• Upit “cell” je vraćao klase:






cell phones
biology
stem cell
manufacturer/battery
itd.

Google algoritmi za rangiranje stranica

43/45


Slide 44

Fuzija podataka
• Map.Search - www.map.search.ch

Google algoritmi za rangiranje stranica

44/45


Slide 45

Google algoritmi
za rangiranje stranica
Reference:
[1] Amy N. Langvile, Carl D. Meyer. Google’s PageRank and Beyond: The Science of
Search Engine Rankings. Princeton, 2006. Princeton University Press.
[2] Junghoo Cho and Hector Garcia-Molina. The evolution of the Web and
implications for an incremental crawler, In Proceedings of the Twenty-sixt
International Conference on Very Large Databases. New York, 2000. ACM Press.
[3] Anti Spam - SpamUnit
http://www.spamunit.com/spam-statistics/
[4] Technorati
http://technorati.com/about/
[5] Wikipedia
http://en.wikipedia.org/
[6] Pandia Search Engine News
www.pandia.com
[7] Kališen Tara, Dornfest Rel. Google trikovi. Čačak, 2006. Kompjuter biblioteka

Prof. Veljko Milutinović
Branko Golubović

[email protected]
[email protected]

Google algoritmi za rangiranje stranica

45/45