Estudio matemático del PageRank©

Introducción al PageRank

El PageRank (PR en forma abreviada) es un número que asigna el motor de búsqueda Google a cada página que tiene indexada en su base de datos.

La fórmula orignal se puede ver en un paper, publicado hace ya varios años, por los estudiantes de la Universidad de Stanford Larry Page y Sergei Brin. En el punto 2.1.1 del paper "The Anatomy of a Large-Scale Hypertextual Web Search Engine" (circa 1997) Page y Brin muestran la fórmula de cálculo del PageRank:

PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))

donde:

  • PR(A) = PageRank de la página A
  • d = damping factor, "factor de amortiguación", y vale 0.85
  • PR(T1), PR(Tn) = PageRank de las páginas 1 y n, que tienen un vínculo a la página A
  • C(T1), C(Tn) = Cantidad de vínculos que existen en las páginas 1 y n, respectivamente.

El PageRank o PR(A) puede ser calculado usando un simple algoritmo iterativo y corresponde al autovector principal de la matriz normalizada de vínculos (enlaces) en la web.

Los autores basan esta fórmula en una justificación intuitiva: el PageRank puede pensarse como un modelo del comportamiento de los usuarios. Si se asumen un "navegante al azar", a quien se le muestra una página web al azar y clickea en los links, nunca volviendo hacia atrás, pero pudiendo aburrirse y comenzar al azar en otra página al azar. La probabilidad de que el usuario visite una página es su PageRank. Y el factor 'd' es la probabilidad de que en cada página el "navegante al azar" se aburra y solicite otra página al azar. Una variación importante es sólo agregar el factor 'd' a sólo una página o a un grupo de páginas. Esto permite la personalización y puede tornar casi imposible que alguien deliberadamente engañe al sistema para obtener un ranking mayor.

Otra justificación intuitiva es que una página puede tener un PageRank alto si hay varias páginas que apuntan a ella o si algunas páginas que apuntan a ella tienen un PageRank alto. Intuitivamente, las páginas que están citadas varias veces en la web son dignas de visitar. También, las páginas con sólo una cita pero que provienen de la homepage Yahoo! también valen la pena visitar.

Si una página no es de calidad, o tiene un vínculo roto, es muy probable que la homepage de Yahoo! no linkee a ella. El PageRank puede manejar estos dos escenarios y cualquiera intermedio al propagar recursivamente ponderadores a travñes de la estructura de la web.

¿Hay varios PageRank?

En realidad hay sólo uno. El PageRank real de cada página es un número que sólo lo sabe Google. Existe una confusión habitual en llamar PageRank al número entre 0 y 10 que se muestra en la barra de herramientas de Google. En realidad este número es una "representación" del PageRank y se estima que tiene una base logarítmica.

Para diferenciar, tenemos estos tres términos:

  1. PR = PageRank real de una página.
  2. TBPR = ToolBar PageRank, es decir, el número entre 0 y 10 que muestra la barra de herramientas de Google (la famosa barrita verde). Se piensa que tiene una base logarítmica.
  3. GDPR = Google Directory PageRank, es un número entre 0 y 7 y es una representación del PageRank que se muestra en el directorio de Google. Se piensa que tiene una base logarítmica.

Todos los cálculos que hace Google para ordenar las SERP (Search Engine Result Pages = páginas de resultados de un motor de búsqueda) están basados en el PR, el PageRank real.

¿Para qué sirve el PageRank?

Es una teoría bastante aceptada que Google usa básicamente dos criterios generales para ordenar sus SERP.

1) In-Page Elements: características propiamente dicha de una página. Posiciones de las frases clave, cantidad de veces que se repiten, los tags que rodean a las palabras clave, etc. Estos son elementos que dependen únicamente de la propia página. Son controlables por el webmaster.

2) Out-of-Page Elements: es la estructura de vínculos o enlaces que apuntan a la página en cuestión. Para esto se usa el PageRank. Es muy importante el "anchor text" o texto del enlace, porque es un factor que usa Google para saber de qué trata la página. Si una página tiene muchas otras que enlazan a ella con el texto "zapallo" como texto del enlace, muy probablemente la página trate sobre el zapallo.

Para ordenar las SERP, Google usa una combinación de los dos criterios generales anteriores. No sirve de nada tener un PageRank alto, si las palabras clave que se buscan no están en la página; y tampoco sirve tener una página optimizada para ciertas palabras clave, si su PR es bajo.

Esta teoría no explica sin embargo los Google Bombings. Si uno busca en Google "miserable failure" el primer resultado que aparece es la biografía del George Bush (http://www.whitehouse.gov/president/gwbbio.html), y es notable que no figuren en esta página ni la palabra "miserable" ni "failure".

Cuando se realiza una búsqueda en Google, es muy común que Google muestre la cantidad de resultados que existen para esa búsqueda. Sin embargo, Google sólo muestra las SERP para los primeros 1000 resultados que encuentra.

¿Y cómo hace para ordenar esos 1000 primeros resultados? Google arma una lista de las páginas que tienen las palabras o la frase que se está buscando y las cuenta. Luego, tomando el PageRank de cada página y las características de cada página (cantidad de veces que se repiten las palabras que se buscan, posición en la página, etc), Google ordena los la lista y muestra sólo los primeros 1000 resultados.

Análisis del PageRank

Si bien Google calcula el PageRank usando un algoritmo iterativo, para pequeñas porciones de la red, o para modelar, es posible resolver el PageRank simbólicamente (usando el Mathematica, por ejemplo). Esto nos da una ventaja, porque es posible ver la influencia de cada factor en el PageRank de una página.

Primero hay que notar lo siguiente: en la expresión del cálculo del PageRank, el valor del PR de una página depende del valor del PR de las otras... pero si por ejemplo con una página se tiene un intercambio de enlaces, entonces el PR de la página A depende del PR de la página B, que a su vez depende del PR de la página A, y así.

En matemática esto esto forma un sistema de ecuaciones simultáneas, y afortunadamente es lineal, lo que simplifica el cálculo enormemente, y prácticamente garantiza una única solución.

Comencemos con un ejemplo simple: una página A, la cual recibe un PR X de otras páginas, y una página B, que tiene un enlace proveniente de A.

El sistema de ecuaciones sería:

PRA = 1-d+d.X
PRB = 1-d+d.PRA

A heredó de todas las páginas que apuntan a ella, un d% del PR/C de esas páginas, más 1-d.
B heredó de A un d% del PR de A, más 1-d.

Para poner valores, supongamos d = 0.85 y X = 2.

Por lo tanto: PRA = 1.85 y PRB = 1.7225

Si ahora suponemos d = 0.85 y X = 100 ==> PRA = 85.15 y PRB = 72.5275

Es un resultado notable, ya que se ve a simple vista que para PR >> 1-d, el PR que se pasa una página a otra se ve disminuido (1-d)%. Fijarse la sucesión: 100, 85.15, 72.5275... y la que corresponde a multiplicar 100 sucesivamente por 0.85: 100, 85, 72.25, ... Son sucesiones prácticamente iguales.

¿Qué pasa ahora si entre A y B se hace un intercambio de enlaces?

PRA = 1-d+d.(X+PRB)
PRB = 1-d+d.PRA

Resolviendo simbólicamente el sistema:

PRA = 1 + d.X / (1-d^2)
PRB = 1 + d^2.X / (1-d^2)

Usando los valores d = 0.85 y X = 2 tenemos:

PRA = 7.1261
PRB = 6.2072

Es notable cómo aumenta el PageRank de una página al hacer intercambio de links. En el fondo es algo relativamente lógico, ya que A le da a B un 85% de su PageRank, que su vez le da a A un 85% de su PageRank.

Qué pasa ahora si tenemos, por ejemplo, una página A, a la cual le dan de otros sitios externos PR X y además, tiene esa página A 'n' subpáginas que a su vez enlazan a A?

Planteando el sistema de ecuaciones:

PRA = 1-d + d.(X+n.PRB)
PRB = 1-d + d.(PRA/n)

Al resolver, nos encontramos con esto:

PRA = (d.X+d.n-n.d^2-d+1) / (1-d^2)
PRB = (d^2.X+n+d-d^2-n.d) / (1-d^2)

Es un resultado muy interesante. En teoría, esto nos dice que PRA es proporcional a 'n' !!! Sólo tenemos que seguir agregando subpáginas y subpáginas que apunten a A!! Pero todo tiene un límite: Google recomienda no pasar de 100 links por página, no se sabe fehacientemente por qué. Es posible que sea porque no puede indexar más que eso (igualmente la implementación de un contador no es para nada complicada).

Volviendo a los números, y supondiendo d = 0.85, X = 2 y variando 'n' entre 1 y 100 tenemos:

nPRAPRB
17.12616.2072
27.58553.3738
38.0452.4294
48.50451.9572
58.96391.6738
69.42341.4849
79.88281.35
810.34231.2488
910.80181.1701
1011.26121.1072
1111.72071.0556
1212.18011.0127
1312.63960.9764
1413.0990.9453
1513.55850.9183
1614.0180.8947
1714.47740.8738
1814.93690.8553
1915.39630.8387
2015.85580.8238
2116.31530.8103
2216.77470.7981
2317.23420.7869
2417.69360.7766
2518.15310.7672
2618.61260.7584
2719.0720.7504
2819.53150.7429
2919.99090.7359
3020.45040.7294
3120.90990.7233
3221.36930.7176
3321.82880.7122
3422.28820.7072
3522.74770.7024
3623.20720.6979
3723.66660.6936
3824.12610.6896
3924.58550.6858
4025.0450.6822
4125.50450.6787
4225.96390.6754
4326.42340.6723
4426.88280.6693
4527.34230.6664
4627.80180.6637
4728.26120.6611
4828.72070.6585
4929.18010.6561
5029.63960.6538
5130.0990.6516
5230.55850.6495
5331.0180.6474
5431.47740.6454
5531.93690.6435
5632.39630.6417
5732.85580.6399
5833.31530.6382
5933.77470.6365
6034.23420.6349
6134.69360.6334
6235.15310.6319
6335.61260.6304
6436.0720.629
6536.53150.6277
6636.99090.6263
6737.45040.6251
6837.90990.6238
6938.36930.6226
7038.82880.6214
7139.28820.6203
7239.74770.6192
7340.20720.6181
7440.66660.6171
7541.12610.616
7641.58550.6151
7742.0450.6141
7842.50450.6131
7942.96390.6122
8043.42340.6113
8143.88280.6104
8244.34230.6096
8344.80180.6088
8445.26120.608
8545.72070.6072
8646.18010.6064
8746.63960.6056
8847.0990.6049
8947.55850.6042
9048.0180.6035
9148.47740.6028
9248.93690.6021
9349.39630.6014
9449.85580.6008
9550.31530.6001
9650.77470.5995
9751.23420.5989
9851.69360.5983
9952.15310.5977
10052.61260.5972

Cuando n->oo, entonces PRB -> 1/(1+d) y PRA crece sin límite.

Para enviar comentarios: info@23329369.com.ar