El algoritmo del Page Rank de Google

Por el 31 de agosto de 2006

en: Negocio

PageRank es un valor numérico que representa la importancia que una página web tiene en Internet.

Primero habría que reseñar que podemos apreciar que el PageRank no cumple las características de un ranking normal, pero si esta definido para cada página. El PageRank de una pagina (A) esta definido de manera recursiva por los PageRanks de las diferentes páginas que enlazan a la página(A).

El algoritmo original del PageRank fue descrito por Lawrence Page y Sergey Brin (fundadores de Google) en algunas publicaciones.

Y era este:

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

donde:

PR(A) es el PageRank de la pagina A,
PR(Ti) es el PageRank de las páginas Ti que enlaza a la página A
C(Ti) es el número de paginas que enlazan a la página A
d es un factor que toma un valor entre 1 y 0

El PageRank de las páginas Ti que enlazan a la página A no influyen en el PageRank de A de manera uniforme. Dentro de el algoritmo del PageRank, el PageRank de la página T esta siempre valorado por el numero de enlaces C(T) en la página T. Esto significa que cuanto más enlaces tenga una página T, menos sera el beneficio de la página A enlazada en la página T. Explicado de otra manera que cuantos más enlaces tenga una página menos beneficiará al PageRank de las páginas enlazadas, motivo por el cual cuando un directorio web apunta a tu página esto no repercute demasiado en tu PageRank.

Finalmente la suma de los PageRanks de todas las páginas Ti es multiplicado por un factor d que toma un valor intermedio entre 0 y 1, de manera que el beneficio de que una página haya sido enlazada por otra se reduce o aumenta dependiendo de ese valor.

En sus publicaciones Lawrence Page y Sergey Brin dan simples e intuitivas jusitficaciones para el algortimo del PageRank. Ellos consideran el PageRank como un modelo de comportamiento del usuario en el cual el usuario clickearía de manera aleatoria en enlaces sin tener en cuenta el contenido.

Por eso Google sabe que no puede controlar los links que apuntan hacia ella, pero sí que puede controlar los enlaces que una página coloca hacia otras páginas. Por ello, links hacia una página nunca perjudicaran, pero sí que enlaces que una página coloque hacia sitios penalizados, pueden ser negativos para el PageRank de su página.

Si las diferencias del valor de PageRank entre PR1, PR2, … PR10 fueran iguales, entonces esta conclusión se sostiene, pero mucha gente cree que los valores entre PR1 y PR10 (el máximo) son fijados en una escala logarítmica, y existen muy buenas razones para creerlo. Nadie fuera de Google conoce con seguridad una manera u otra, pero las posibilidades de que la escala sea logarítmica son altas, o similares. Si es así, significa que se necesita mucho más PageRank para que una página pase al siguiente nivel de PageRank que el que hizo falta para pasar el nivel anterior. Este resultado invierte la conclusión anterior, un enlace de una página con PR8 que tiene muchos enlaces salientes es bastante más importante que un link de una página con PR4 que tenga unos pocos enlaces salientes.

El famoso caso “go to hell”

Aunque las palabras “go to hell” no tienen nada que ver con Microsoft, durante un tiempo Google estuvo ofreciendo la web de la multinacional -www.microsoft.com- como primer resultado de la búsqueda.

Esto no tiene mucho que ver con el PageRank pero nos hace entender el porque del sistema, enlaces a Microsoft con el texto “go to hell” eran muy comunes por usuarios descontentos con la compañia por lo que la página se posiciono por delante de otras a priori más lógicas hell.com.

Esto quiere decir:

- El texto de los enlaces que nos ponen hacia nuestro web tiene mucha importancia.

- Google es un sistema vivo y en desarrollo, lo que hoy puede ser importante para ponderar los resultados mañana puede ser considerado de distinta forma. El caso es que Google ya no muestra la web de Microsoft al escribir esas palabras, fue un hecho temporal.

Ejemplo de cálculo de PageRank

Fuente del ejemplo: Ranking Hispano

Consideremos un sitio web con 3 páginas (páginas A, B y C) sin enlaces provenientes del exterior. Asignaremos a cada página un PageRank inicial de 1, aunque no hay ninguna diferencia en empezar en cada página con 1, 0 o 99. Aparte de unas pocas millonésimas de puntos de PageRank, después de muchas iteraciones el resultado final es siempre el mismo. Empezando por 1 requiere menos iteraciones para que el PageRank converja en un resultado adecuado que empezando desde 0 o cualquier otro número. Probablemente necesites usar lápiz y papel para seguir los cálculos, también nos puede servir una calculadora.

El PageRank máximo del sitio web es la cantidad de PageRank en el sitio web. En este caso, tenemos 3 páginas por lo tanto el máximo es 3.

Por ahora, ninguna de las páginas enlaza con ninguna otra. Si hace el cálculo una vez por cada página, encontrará que cada una acaba con un PageRank de 0.15. No importa cuantas iteraciones haga, cada página se quedará con 0.15 de PageRank. El PageRank total del sitio web = 0.45, cuando podría ser 3. El sitio web está gastando seriamente la mayoría de su PageRank potencial.

Ejemplo1: Empiece de nuevo asignando PR1 a cada página. Enlace la página A a la página B y ejecute los cálculos para cada página. Acabamos con:

Página A = 0.15
Página B = 1
Página C = 0.15

La página A ha “votado” por la página B y, como resultado, el PageRank de la página B se ha incrementado. Esto está bien para la página B, pero es solo una iteración, no hemos tenido en cuenta la situación “Cogidos 2 a 2″. Observemos que les pasa a los números después de varias iteraciones:

Después de 100 iteraciones los números son:

Página A = 0.15
Página B = 0.2775
Página C = 0.15

Sigue pintando bien para la página B pero nada parecido a lo que tenía en un principio. Estos números son mucho más realistas. El PageRank total en el sitio es ahora 0.5775, ligeramente mejor pero sigue siendo una fracción de lo que podría ser.

Nota: Técnicamente, estos resultados particulares son incorrectos a causa del tratamiento especial que da Google a los enlaces “sueltos”, pero sirven para demostrar un cálculo simple.

Ejemplo2: Pruebe estos enlaces. Enlace todas las páginas a todas las páginas. Cada página empieza con PR1. Esto produce:

Página A = 1
Página B = 1
Página C = 1

Ahora que hemos alcanzado el máximo. NO hay que preocuparse por cuantas iteraciones hagamos, cada página acabará siempre con PR1. Los mismos resultados ocurren enlazando en un aro. Ejemplo: A con B, B con C, C con D. Ver esto en la calculadora.

Esto ha demostrado que, con enlaces pobres, es bastante fácil malgastar el PageRank y enlazando de buenas maneras podemos conseguir todo el potencial del sitio web. Pero no queremos que todas las páginas tengan la misma importancia. Queremos que una o más páginas tengan más importancia que otras. El tipo de páginas que podríamos querer que tuvieran más importancia podrían ser páginas como el índice, páginas con principales de alguna sección y páginas que estén optimizadas para algunos términos. Sólo tenemos 3 páginas, por eso, vamos a canalizar el PageRank hacia la página índice, la página A. Servirá para mostrar la idea de la canalización.

Ejemplo3: Pruebe esto. Enlace la página A hacia B y C. También enlace las páginas B y C a A. Empezando todas con PR1, después de 1 iteración los resultados son:

Página A = 1.85
Página B = 0.575
Página C = 0.575

Y después de 100 iteraciones, los resultados son:

Página A = 1.459459
Página B = 0.7702703
Página C = 0.7702703

En ambos casos el PageRank total en el sitio web es 3 (el máximo) así que no malgastamos nada. También en ambos casos puede ver que la página A tiene mucha más proporción de PageRank que las otras 2. Esto es porque las páginas B y C están pasando PageRank a A y nada a las otras páginas. Hemos canalizado buena parte del PageRank a donde hemos querido.

Ejemplo 4: Finalmente, guarde los enlaces anteriores y añada un enlace de la página C a la página B. Empiece otra vez con PR1 en cada página. Después de 1 iteración:

Página A = 1.425
Página B = 1
Página C = 0.575

Comparándolo con los números de la primera iteración en el ejemplo anterior, la página A ha perdido algo de PageRank, la página B ha ganado algo y la página C se ha quedado igual. La página C ahora comparte su “voto2 entre A y B. Previamente A lo recibía todo. Por eso la página A ha perdido y la página B ha ganado. Y después de 100 iteraciones:

Página A = 1.298245
Página B = 0.9999999
Página C = 0.7017543

Viendo este resultado, la página C ha perdido un poco de PageRank porque ahora comparte su voto entre A y B, en vez de dárselo todo a A, A tiene menos que darle a C en el A –> C link. Por esa razón, añadiendo un enlace extra en una página provoca que esa página pierda PageRank indirectamente si alguna de las páginas a las que enlaza le devuelven el enlace. Si la página que a la que enlaza no devuelve el enlace, entonces no pierde PageRank. Para hacerlo más complicado, si el enlace es devuelto incluso indirectamente (vía una página que enlaza otra página que enlaza a otra página, etc), la página perderá un poco de PageRank. Esto no es muy importante con enlaces internos, pero puede ser un problema cuando enlazamos con páginas fuera del sitio web.

Ejemplo 5: Páginas nuevas.

Añadiendo nuevas páginas a un sitio es una manera importante de incrementar el PageRank total de un sitio web porque cada nueva página añadirá una media de 1 al total. Una vez que las nuevas páginas hayan sido añadidas, su nuevo PageRank puede ser canalizado a páginas importantes. Usaremos la calculadora para demostrar esto.

Añada 3 nuevas páginas al Ejemplo 3 . Tres nuevas páginas pero no hacen nada por nosotros todavía. El pequeño incremento en el Total, y el nuevo PageRank de las páginas (0.15), no son realistas como podremos comprobar. Así que enlácelas al sitio.

Enlace cada una de las nuevas páginas a la página importante, página A . Note que el PageRank total ha sido doblado, de 3 (sin las nuevas páginas) a 6. Note también que el PageRank de la página A ha sido prácticamente doblado.

Hay algo incorrecto en este modelo. Las nuevas páginas son huérfanas. No pueden ser indexadas en Google, así que no añadirán ningún PageRank al sitio y no pasarán ningún PageRank a la página A. Cada una necesita ser enlazada desde al menos otra página. Si la página A es la página importante, la mejor página donde poner los links es, sorprendentemente, la página A . Puede hacer pruebas con los links pero, desde el punto de vista de la página A, no hay mejor sitio donde poner los enlaces.

No es una buena idea para una página enlazar a un gran número de páginas, así que si usted está añadiendo muchas nuevas páginas, reparta los links por otras páginas. Probablemente haya más de una página importante en un sitio web, por ello, normalmente es adecuado repartir los links hacia y desde las nuevas páginas. Puede usar la calculadora para experimentar con los mini-modelos de un sitio para encontrar la combinación de enlaces que produzca los mejores resultados para sus páginas importantes.

Resumen de Ejemplos:

Puede ver que, organizando los enlaces internos, es posible canalizar el PageRank del sitio web hacia páginas seleccionadas. Los enlaces internos pueden ser dispuestos para adaptar el PageRank del sitio web a sus necesidades, pero sólo es útil si Google conoce las páginas, por eso mismo, asegúrese de que Google la encuentra.

Enlaces de interes

Puedes encontrar información oficial sobre el PageRank en http://www.google.com/technology/ y tambien en algunas webs en ingles explican realmente cómo funciona este sistema:

PageRank Implementation | PageRank Algotihm

Cálculo del vector PageRank mediante el método aditivo de Schwarz(PDF)

Dejar un comentario