Fujitsu-Siemens
 
M A G A Z I N
 
WEB DIZAJN 
  Dušan Ječmenica

Pretraživači (III deo)

Nastavljamo seriju članaka o pretraživačima, a posebno o Google-u - kao mašini za pretragu broj jedan u ovom trenutku. U prošlim brojevima smo videli kako je zaista komplikovano projektovati dobar softver za pretragu i rangiranje rezultata, i kako je to tvorcima Google-a pošlo za rukom. Međutim, svaki koncept pretrage ima svoje slabe tačke, jer koliko god da izradite dobru tehnologiju pretrage, morate prvo podatke da dobavite u baze podataka pa tek da ih onda pretražujete, a onda prilikom njihovog prikazivanja i - rangirate. Kako to Google radi ?


Crawling / spidering – pametni pauci


Crawling je, ustvari, vrlo komplikovan deo posla, jer se komunicira sa velikim brojem web i name servera. (crawling je objašnjen u prethodnim člancima). U Google tehnologiji, jedan URL server prosleđuje listu adresa određenom broju crawler-a (najčešče 3). URL server kao i crawler-i su implementirani u Phyton tehnologiji. Svaki crawler održava 300 konekcija odjednom, radi povećanja brzine, i ako sva tri rade u isto vreme, može se posetiti preko 100 stranica u sekundi ! Ovakva brzina se postiže, pre svega, zahvaljujući DNS lookup-u. Radi se o tome da svaki crawler poseduje sopstveni DNS cache, tako da nije potrebno svaki put raditi DNS lookup za svaki dokument koji se posećuje. Inače, svaka konekcija može biti jedno od sledećih stanja crawler-a: DNS lookup, konektovanje sa hostom, slanje zahteva ili primanje odgovora. Sve ovo čini crawler kompleksnim i zato se koristi asinhroni ulaz/izlaz kao i FIFO strukture (redovi za čekanje) za promenu stanja.
Naravno, mesta za grešku uvek ima, pa je poznat slučaj kad je Google, krstareći Internetom uz pomoć svojih crawler-a pokušao da indeksira jednu on-line igricu. Ljudi koji su je tada igrali videli su gomilu poruka sa greškom. Naravno Google je posle ispravio neke bagove, ali uvek može da se pojavi nešto novo za šta je potrebno vreme da se izvrše korekcije, jer je nemoguće tako lako testirari crawler, upravo zbog ogromnog broja varijacija web servera koje on posećuje i koji mu mogu (ili on njima) zadati probleme. Mnogo bezazlenije anegdote se dešavaju zbog neznanja web dizajnera. Kažu da je vrlo čest slučaj da kad vlasnici sajtova u statistikama poseta vide da ih je Google posetio, napišu mail zahvalnosti Google-u uz pitanje: "Kako vam se svideo naš sajt?"
Ono što je vrlo bitno je da Google prilikom indeksiranja nekog sajta, indeksira samo oko prvih 100 Kb sadržaja, a meta tagove, odnosno keywords i description, uopšte ne konstatuje. Ovo je vrlo bitna činjenica koju svaki web dizajner mora imati na umu.


PageRank – svakom po zasluzi


PageRank (TM) je tehnologija kompletno razvijena od Google-a u cilju rangiranja rezultata. Da bi shvatili kako on radi, pretpostavimo da web strana A ima T1,T2,T3... do Tn stranica koje ukazuju na nju (linkovane su na nju). I neka je C(A) broj linkova koje izlaze iz strane A. Onda se PageRank strane A računa kao:
PR(A) = (1-d) + d(PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))
gde je d damping fakor koji se kreće u granicama od 0 do 1, i njegova vrednost je najčešće 0,85. Primetite da je PageRank povinovan Normalnoj raspodeli (web strana), tako da suma svih PageRank-ova iznosi 1. Takođe vidimo da je izraz relativno linearan (iako rekurzivan) i može se izračunati sa jednostavnim iterativnim algoritmom, tako da se PageRank 30 miliona strana može izračunati u roku od par sati na workstation-u srednje veličine.
Šta sve ovo u praksi znači ? Pa, evo, PageRank možete zamisliti kao prosečnog korisnika interneta: data mu je slučajna stranica i on klikće na njene linkove, nikad ne kliknuvši na "back" dugme browser-a, ali eventualno se umori, pa sve počinje ispočetka ali na drugoj slučajnoj strani. Verovatnoća da slučajan posetilac poseti stranicu A je njen PageRank tj PR(A). Onda je faktor d verovatnoća da će se slučajni posetilac "umoriti" od kliktanja na toj strani i sve započeti od početka ali na drugoj slučajnoj strani.
Ako vam ni sad nije baš najjasnije probajmo ovo: ako želimo da naša stranica ima dobar PageRank onda je potrebno da veliki broj stranica ukazuju (budu linkovane) na nju, ili - da postoje 2-3 stranice koje pokazuju na nju, ali da one imaju dobar PageRank. Naravno, najbolje bi bilo da oba zahteva budu ispunjena u isto vreme.(slika 1)

Slika 1: Postizanje istog Page rank-a


Pa i intuitivno je zaista tako: ako na neku stranicu ukazuje mnoštvo linkova širom sveta, onda je ona vredna posete. Sa druge strane, dovoljno je da na neku stranicu pokazuje jedna koja ima odličan PageRank, kao npr Yahoo! – onda je takođe vredna posete. Ako je stranica lošeg kvaliteta sigurno je da je Yahoo neće postaviti link ka njoj. PageRank ovo sve uzima u obzir i iz toga izvlači zaključke o posećenosti web strana.


Link propagation


Međutim, ovaj izum ne bi bio toliko dobar, da nije izrađen u korespodenciji sa arhitekturom samog pretraživača. Odnosno, još jedna dodatna stvar ga čini odličnim, a to je način na koji se tretira tekst linkova (anchor text). Ostali pretraživači povezuju tekst linkova sa samim stranicama na kojima se ti linkovi nalaze, međutim, Google ide korak dalje – on osim toga povezuje tekst linkova sa stranicama na koje ti linkovi vode. Ovaj način tretiranja linkova naziva se "link propagation" i ima dosta prednosti. (slika 2). Na primer, sami linkovi ponekad nose više informacija o stranicama nego one same, ili, linkovi mogu da postoje za dokumente koji nisu tekstualnog karaktera (slike, programi, baze podataka). Navedeni način tretiranja tekst linkova omogućava da se u rezultatima pretrage pojave i stranice koje crawler još nije ni posetio! (a to je zato što je posetio stranice koje imaju linkove koji ukazuju na datu stranicu koja nije posećena crawler-om ali je izašla u rezultatima pretrage).

Slika 2: Značaj "link propagation" tehnologije


Sad bi svi pomislili kako to i nije baš pametno, jer stranicu koju još nije obišao crawler nije moguće proveriti u smislu validnosti, ili na primer - ta stranica možda i ne postoji više, ali link još uvek vodi ka njoj. Ali, zahvaljujući PageRank-u njena popularnost je vrlo mala, ili skoro jednaka nuli, pa prema tome, u rezultatima pretrage pojaviće se na kraju (poslednjoj stranici) ili se upošte neće pojaviti! Zar ste sumnjali u tvorce Google-a? Znači PageRank omogućava Gogle-u ne samo da rangira rezultate, već i da prikazuje strane koje nije posetio crawler.
Naravno, kao i uvek u ovako kompleksnim proračunima u "letu" potreban je dobar hardware sa odličnim procesorskim vremenom koji bi to mogao bez problema uraditi. Npr, za 2 milijarde stranice treba indeksirati preko 20 milijardi tekst linkova !


Teoretski idealno, ali u praksi ...?


Da bi bilo što jasnije gde problemi nastaju, hajde da još jednom rekapituliramo čitavu stvar. Znači, PageRank je proračun u čijim se činiocima nalaze samo brojevi strana i linkova. Sam sadržaj stranica se nigde ne pominje. Sadržaj se samo uzima u obzir kada se vrši konkretna pretraga, ali ga u samom PageRank-u nema. Pa kako možemo verovati Google-u da se samo važni i vrlo kvalitetni sajtovi rangiraju više, zahvaljujući PageRank-u ? Jer, ispada da se samo na osnovu linka sa strane A prema strani B se određuje važnost strane B. Ali, mnogo je razloga zašto bi neko linkovao stranu B sa strane A:
* vlasnik strane A želi da promoviše stranu B jer je deo njegovog sajta
* vlasnik strane A želi da promoviše stranu B jer se ona nalazi na drugom sajtu koga on takođe poseduje
* vlasnik strane B plaća za link na strani A
* vlasnici recipročno razmenjuju linkove da bi imali što bolji PageRank
* vlasnik strane A učestvuje finansijski u sajtu strane B i ima procenat od prodaje
* strana A sadrži vesti, novosti (dobre ili loše, svejedno) o sajtu strane B
Znači, link ka strani B nema puno veze sa njenim kvalitetom. Ili, još gore, tu je umešan običan komercijalni interes, tako da PageRank pomaže biznis i čini ga unosnijim. Kompanija koja se bavi prodajom na Internetu će logično imati jak PageRank, upravo zbog plaćenih reklama i linkova, tako da kompanija koja recimo, pruža informacije, ili nešto besplatno nudi, mora biti osuđen na propast zbog niskog PageRanka koji je prouzrokovan neisplatljivošću ulaganja u reklamu jer praktično i ne očekuje nikakvu dobit. I ponovo su pobednici velike korporacije i nelojalna konkurencija. Znači, malim kompanijama je vrlo teško da prikažu svoje usluge i proizvode na Internetu, a zahvaljujući Google-u i njegovom PageRanku – nikad teže.
Naravno, Google tvrdi da u pretrazi podjedanko utiču i PageRank strane i njen sadržaj, ali da li je baš tako? U realnom svetu, očigledno je da PageRank ima mnogo veći uticaj jer se upravo zahvaljujući njemu relevantni rezultati, samo po linkovima a ne po sadržaju, smeštaju među prvih 20 rezultata pretrage, a upravo je to neki maksimim do kog prosečan posetilac ide u svojoj pretrazi. Pođite od sebe, kada nešto tražite u bilo kom pretraživaču, uglavnom pregledavate do prvih pet strana pretrage, mada zbog hronične lenjosti surfera (zato je faktor d=0,85) sumnjam da taj broj prelazi 3 strane, a kako po jednoj strani ima obično 10 rezultata, to iznosi 30 rezultata po jednoj pretrazi. A možda se baš relevantni rezultat nalazi, kao 39-i, na primer. Većina posetilaca Google-ove pretrage se ne trudi to da sazna.
Sve ovo ne znači da prilikom pretrage treba preskočiti prvih 30-tak rezultata, nego jednostavno treba sve rezultate razmotriti. Očigledno je onda da takva mašina za pretagu i nije baš efektivna, jer takva pretraga oduzima mnogo vremena.
Osim toga, zahvaljujući (nepravednom) PageRank-u, često dolazi do teških grešaka u rezultatima pretrage. Naime, dešava se da se među prvih 10 rezultata nađe i neki koji po sadržaju nema ama baš nikakve veze sa traženim podacima. Ovo zapravo dokazuje da PageRank neke strane ima mnogo veći uticaj kod prikazivanja rezultata pretrage, nego njen sadržaj. Kao primer za to, kada u Google ukucate termin: free Web page, posle Yahoo-a, Tripod-a i Angelfire-a, kao četvrti rezultat dobijate Digits.com, a to je sajt koji nudi servis broja posećenosti strane (page counter service). Dobro, jedna od reči koje smo uneli je i page, ali šta se dešava ako unesemo konkretnu frazu sa znacima navoda: "free Web page" ? Rezultat je isti, iako nigde na stranici digits.com ne postoji takva sintagma! Ali ona očigledno postoji u nekom linku koji vodi do nje, što ilustruje gore pomenuti "link propagation", odnosno važnost tekstualnog dela linka. Naravno ovaj konkretan primer važi za maj 2003, jer se Google-ov index stalno menja, tako da ovo ne mora važiti u budućnosti.


Zaključak


Znači PageRank onako kako ga Google vidi ne obećava puno. Već su se pojavili radovi na Univerzitetu u Stenfordu u vezi sa uticajem sadržaja strane i linkova na PageRank i njihovoj kombinaciji, koji obećavaju puno. Dok se ova poboljšanja ne dokažu na delu, Google ima domaći zadatak: da poveća značaj pretrage po celoj frazi, da poveća značaj ključnih reči koje se nalaze u tekstu strana a da smanji značaj teksta linka, da smanji značaj PageRank-a prilikom pretrage, i na kraju, da smanji značaj sadržaja <TIITLE> taga sa kojim se očigledno može vrlo lako manipulisati.
Bilo kako bilo, Google je trenutno najbolji pretraživač, a ovo što ste upravo pročitali, bio je krtički osvrt koji treba pretragu da dovede do savršenstva.

 

VRH STRANE

(c) 2003 OMEGA - sva prava zadržana