Cum se calculeaza Page Rank-ul?
Este partea cea mai interesanta dar si cea mai confuza, deaorece Pr -ul fiecarei pagini web depinde de voturile primite, dar si paginile respective depind de voturile primite de la alte pagini, deci putem afirma ca este un cerc vicios la care apare si intrebarea "care a fost mai intai oul sau gaina?" adica care sit poate fi considerat ca si punct de plecare. Important este faptul sa intelegem, un vot se considera vot numai in momentul in care Page Rankul sitului care te voteaza este deja clarificat.
Daca ne gandim in acest fel, la prima vedere pare aproape o problema imposibil de rezolvat. Dar in realitate nu este atat de complicat, sa ne amintim de observatiile facut de catre Google insusi : (in traducere ar iesi ceva de genul:)
"Page Rankul poate fi calculat folosind doar un algoritm interactiv simplu, care se afla in legatura permanenta cu vectorul principal al matricelor nominalizante din Web. "
Ceea ce ne spune afirmatia de mai sus, este ca putem calcula Pr-ul unui sit fara a sti valorile finale, sau Pr-ul siturilor care te voteaza. Acesta pare destul de ciudat, dar in esenta, cu fiecare rezultat obtinut de pe urma calculelor ajungem mai aproape de valorea finala estimata.
Deci in consecinta ceea ce trebuie sa facem, ar fi doar sa memoram fiecare calcul efectuat si sa repetam calculul pana in momentul in care valorile nu arata schimbari majore intre ele. Sa luam un exemplu:
Avem doua pagini diferite si fiecare contine cate un link catre celalalt (vezi exemplul din imagine)
Fiecare pagina avand cate un link catre celalalt :
L(A)=1 L(B)=1
Nestiind de unde porneste exact Pr-ul, sa folosim termenul de pornire sau etalon PrpornireA,B =1.0 si vom folosi variabila "s" .
"s" reprezentand suma totala a voturilor obtinute, acesta fiind un numar in continua crestere, iar pentru a opri cresterea acestuia, vom folosi metoda de reducere adica o variabila a carui valoare este de 0.9
Prpornire= 1 s = 0.9
Pr(A) = (1-s) + (s(Pr(B)/1) Pr(A) = (1-0.9) + (0.9 PR(B)) PR(A) = 0.1 + 0.9 = 1
Pr(B) = (1 - s) + (s(Pr(A)/1) Pr(B) = (1-0.9) + (0.9 PR(A)) PR(B) = 0.1 + 0.9 =1in cazul ambelor situri rezultatul este de 1, dar acesta fiind un exemplu prea usor, vom realiza cateva calcule cand Prpornire are valoarea de 0.
Ecuatiile vor arata in felul urmator:
Prpornire = 0 s = 0.9
Pr(A) = (1-s) + (s(Pr(B)/1) Pr(A) = (1-0.9) + (0.9 PR(B)) PR(A) = 0.1 + 0 = 0.1
Nota: am calculat valoarea la Pr(A) pe care-l vom folosi la calculul valorii Pr(B)
Pr(B) = (1 - s) + (s(Pr(A)/1) Pr(B) = (1-0.9) + (0.9 PR(A)) PR(B) = 0.1 + (0.9 * 0.1) = 0.19
Repetam calculele:
Pr(A) = (1-s) + (s(Pr(B)/1) Pr(A) = (1-0.9) + (0.9 PR(B)) PR(A) = 0.1 + 0.19 = 0.29
Nota: am calculat valoarea la Pr(A) pe care o vom folosi la calculul valorii Pr(B)
Pr(B) = (1 - s) + (s(Pr(A)/1) Pr(B) = (1-0.9) + (0.9 PR(A)) PR(B) = 0.1 + (0.9 * 0.29) = 0.361
repetam calculele din nou:
Pr(A) = (1-s) + (s(Pr(B)/1) Pr(A) = (1-0.9) + (0.9 PR(B)) PR(A) = 0.1 + 0.29 = 0.39
Nota: am calculat valoarea la Pr(A) pe care o vom folosi la calculul valorii Pr(B)
Pr(B) = (1 - s) + (s(Pr(A)/1) Pr(B) = (1-0.9) + (0.9 PR(A)) PR(B) = 0.1 + (0.9 * 0.39) = 0.451
Am putea continua cu repetarea calculelor si vom observa o oarecare crestere de fiecare data, intrebarea care ramane ar fi: Oare cresterea se va opri cand ajungem la valoarea de 1?
Raspunsul la intrebarea de mai sus este destul de simpla. Sa luam ca si valoare de pornire pentru Pr(A) si PR(B) valoarea de 27.
Pr(A)= PR(B)= 27 s = 0.9
Pr(A) = (1-s) + (s(Pr(B)/1) Pr(A) = (1-0.9) + (0.9 PR(B)) PR(A) = 0.1 + (0.9 * 27) = 24.4
Nota: am calculat valoarea la Pr(A) pe care o vom folosi la calculul valorii Pr(B)
Pr(B) = (1 - s) + (s(Pr(A)/1) Pr(B) = (1-0.9) + (0.9 PR(A)) PR(B) = 0.1 + (0.9 * 24.4) = 22.06
repetam calculele din nou:
Pr(A) = (1-s) + (s(Pr(B)/1) Pr(A) = (1-0.9) + (0.9 PR(B)) PR(A) = 0.1 + (0.9 * 22.06) = 19.954
Nota: am calculat valoarea la Pr(A) pe care-l vom folosi la calculul valorii Pr(B)
Pr(B) = (1 - s) + (s(Pr(A)/1) Pr(B) = (1-0.9) + (0.9 PR(A)) PR(B) = 0.1 + (0.9 * 19.954) = 18.0586
Nu are rost sa repetam calculele pana la infinit, deoarece se poate observa ca rezultatele coboara cu fiecare calcul, apropiindu-se de valoarea 1.
Trebuie sa intelegem, ca indiferent care ar fi valoarea de pornire aleasa pentru Pr de catre noi, valorile vor tinde catre 1.