Versión original escrita por Christiane Rousseau.
Desde sus comienzos, Google se convirtió en “el” motor de búsqueda. Esto es debido a la supremacía de su algoritmo de jerarquización: el algoritmo PageRank. De hecho, debido a la enorme cantidad de páginas web en la World Wide Web, muchas búsquedas finalizan con miles o millones de resultados. Si estas páginas no estuvieran adecuadamente ordenadas, la búsqueda no sería de ninguna utilidad, ya que nadie es capaz de explorar millones de entradas.
¿Cómo funciona al algoritmo PageRank?
Esto se explicará más adelante, pero antes vamos a hacer una búsqueda en Google. En junio de 2010 se obtuvieron 16.300.000 resultados para Klein project, si bien el proyecto estaba comenzando. En esta fecha en concreto, la primera entrada era
http://www.mathunion.org/icmi/other-activities/klein-project/introduction/
en lugar de
http://www.kleinproject.org/
La primera url es la dirección web de una página que está localizada en el sitio web de la Unión Matemática Internacional (International Mathematical Union): http://www.mathunion.org. Como este es un organismo importante, su página web oficial aparece la primera cuando se realiza la búsqueda “International Mathematical Union”. Es más, transmite parte de su importancia a todas sus páginas, una de las cuales es
Cabría esperar que dentro de unos pocos meses la página
apareciera la primera en la búsqueda de Klein project.
Para explicar el algoritmo se modela la red mediante un grafo orientado. Los vértices son las páginas y las aristas orientadas son los enlaces entre páginas. Como ya hemos explicado, cada página corresponde a una url diferente. Por tanto, un sitio web puede contener muchas páginas pero este modelo no diferencia entre las páginas individuales de un sitio web y su página principal. Sin embargo, es más probable que el algoritmo dé más valor a la página principal de un sitio web importante.
Un ejemplo sencillo
Consideremos el ejemplo de la sencilla red de la izquierda, compuesta por cinco páginas llamadas ,
,
,
y
. Esta red tiene pocos enlaces: en
hay solamente un enlace a
, mientras que si estamos en
encontramos tres enlaces y podemos elegir entre pasar a
,
o
. Notar que hay al menos un enlace desde cada página.
Proponemos un sencillo juego, que consiste en dar un paseo aleatorio por el grafo orientado. Comenzando en una página cualquiera, en cada paso elegimos un enlace al azar en la página en la que nos encontramos y lo seguimos. Por ejemplo, en nuestra red, si comenzamos en , entonces podemos elegir entre ir a
o a
con probabilidad
para cada caso, mientras que si empezamos en
, entonces necesariamente tenemos que ir a
con probabilidad
. Si repetimos el juego,

Para automatizar el proceso, resumimos la información de la red en la siguiente matriz , donde cada columna representa la página de salida y cada fila es la página de destino.
Notar que la suma de todas los valores de una misma columna de es igual a
y que todas las entradas de la matriz son mayores o iguales que cero. Una matriz que satisface estas dos propiedades es de un tipo muy especial: es la matriz de un proceso de cadena de Markov, también conocida como matriz de transición del proceso de Markov. Este tipo de matrices tienen siempre como valor propio
y existe un vector propio de valor propio
cuyas componentes son todas menores o iguales que
y mayores o iguales que
y cuya suma es
. Antes de definir valores y vectores propios, vamos a explorar las ventajas de la representación matricial del grafo de la red.
Consideramos una variable aleatoria con valores en el conjunto de páginas
; este conjunto contiene
páginas.
representa la página en la que nos encontramos después de
pasos del camino aleatorio. Por tanto, si
es el elemento de la matriz ubicado en la
-ésima fila y
-ésima columna, entonces
representa la probabilidad condicionada de que nos encontremos en la
-ésima página en el paso
, supuesto que estábamos en la
-ésima página en el paso
:
¡Notar que esta probabilidad no depende de ! Por ello, se dice que un proceso de cadena de Markov no tiene memoria. No es difícil de probar que las probabilidades después de dos pasos pueden resumirse en la matriz
. Probémoslo (el lector puede omitir la demostración, si lo desea). Del teorema de la probabilidad total se deduce que
Por la definición de probabilidad condicionada,
Usamos ahora un truco muy conocido: multiplicar y dividir por la misma cantidad:
El primer cociente es igual a
ya que los procesos de cadena de Markov no tienen memoria del paso anterior. Por tanto,
En nuestro ejemplo,
Iterando esta idea, es evidente que el elemento de la matriz
representa la probabilidad
. Por ejemplo,
Notar que todas las columnas de son idénticas si trabajamos con 3 decimales de precisión y, además, son iguales a las columnas de
cuando
. Si elegimos mayor precisión, también encontraremos esta estabilidad, pero para un exponente
mayor que
. Por tanto, después de
pasos, para
suficientemente grande, ¡la probabilidad de estar en una determinada página no depende de la página en la que comenzamos!
Más aún, si consideramos el vector
(aquí es un vector vertical, luego su traspuesto
es un vector horizontal, se comprueba fácilmente que
. Si la
-ésima coordenada de del vector
representa la probabilidad de estar en la página
en un determinado momento
y, por tanto,
representa la distribución de probabilidad de las páginas en ese momento
, entonces
también representa la distribución de probabilidad en el momento
. Por esta razón, el vector
se dice distribución estacionaria. Esta distribución estacionaria permite la ordenación de las páginas. En nuestro ejemplo, ordenamos las páginas de la siguiente manera:
,
,
,
,
, declarando que
es la página más importante.
El caso general
El caso general puede ser puede ser abordado de la misma manera que nuestro ejemplo. Representamos la red como un grafo orientado en el cual los vértices representan las
páginas de la red y las aristas orientadas representan enlaces entre páginas. Trasladamos la información del grafo a una matriz
de tamaño
, donde la
-ésima columna representa la
-ésima página de partida y la
-ésima fila representa la
-ésima página de destino. En nuestro ejemplo encontramos un vector
que cumple que
. Este vector es, por tanto, un vector propio de valor propio
. Recordamos en este punto las definiciones de vector propio y valor propio.
Definición. Sea una matriz de tamaño
. Un número
se dice valor propio de
si existe un vector no nulo
tal que
. Tal vector
se dice vector propio de
.
Recordamos también el método para encontrar valores y vectores propios.
Proposición Sea una matriz de tamaño
. Los valores propios de
son las raíces polinomio característico
, donde
es la matriz identidad de tamaño
. Los vectores propios asociados al valor propio
son las soluciones no nulas del sistema lineal homogéneo
.
El siguiente teorema debido a Frobenius garantiza que la matriz asociada al grafo de una red siempre tiene una solución estacionaria.
Teorema (Teorema de Frobenius) Sea la matriz de transición de un proceso de cadena de Markov de tamaño
Markov (esto es,
para cualesquiera
y la suma de las componentes de cada columna es igual a
:
). Se tiene que
-
es valor propio de
.
- Cualquier valor propio
de
verifica
.
- Existe un vector propio
de valor propio
, cuyas coordenadas son todas mayores o iguales que cero. Sin pérdida de generalidad, podemos asumir que la suma de sus coordenadas es
.
Ahora es el momento de admirar la potencia de este teorema. Para ello, consideramos la siguiente hipótesis simplificada: suponemos que la matriz tiene una base formada por vectores propios
y que
es el vector
del teorema de Frobenius. Se tiene que para cada
existe
tal que
. Sean
un vector no nulo y
, donde
y
. Descomponemos
con respecto a la base
:
Una demostración técnica que omitimos aquí prueba que . Ahora calculamos
:
ya que es un vector propio de valor propio
. Iterando, se obtiene que
Si todos los valores para
verifican
, entonces
¡Esto es exactamente lo que sucede en nuestro ejemplo!
Sin embargo, conviene notar que el teorema no garantiza que cualquier matriz que verifique las hipótesis tiene esta propiedad. Describamos entonces los posibles casos patológicos y sus remedios.
Posibles casos patológicos.
- El valor propio
puede ser una raíz múltiple del polinomio característico
.
- La matriz
puede tener otros valores propios
distintos
de módulo
.
¿Qué podemos hacer en estos casos?
Decimos que una matriz de transición de Markov que no tiene patologías es una
matriz de transición de Markov regular, esto es:
Definición. Una matriz de transición de Markov se dice regular si
- El valor propio
es una raíz simple del polinomio característico
.
- Todos los valores propios
de
distintos de
tienen módulo estrictamente menor que
.
Notar que la mayoría de las matrices son regulares. Por tanto, si la matriz de transición de Markov de una red no es regular, la estrategia a seguir es deformarla ligeramente hasta conseguir una matriz regular.
Remedio.
Consideramos la matriz de tamaño
con
para cualesquiera
. Remplazamos la matriz
asociada a la red por la matriz
(1)
para un valor pequeño de (el valor
es el usado por Google). Notar que todos los elementos de la matriz
siguen siendo no negativos y que la suma de los elementos de cada columna es
, luego es una matriz de transición de Markov. El siguiente teorema garantiza que existe tal valor
que remedia esta patología.
Teorema Dada una matriz de transición de Markov existe
positivo, tan pequeño como se quiera, tal que la matriz
es regular. Sea
el vector propio de valor propio
para la matriz
, normalizado de manera que la suma de sus coordenadas es
. Dado un vector no nulo
con
, donde
y
, se tiene que
(2)
Relación con el teorema del punto fijo de Banach
En otra viñeta se trata el teorema del punto fijo de Banach, del que el teorema anterior puede ser visto como una aplicación particular. De hecho, se tiene que
Teorema
Sea una matriz de transición de Markov regular. Consideramos
,
con una cierta distancia entre puntos (que depende de
). Sea el operador lineal
definido en
por
.
Se tiene que el operador es una contracción en
, esto es, existe
tal que para cualesquiera
se cumple que
Además, existe un único vector tal que
y dado cualquier
, se puede definir por inducción la secuencia
, donde
, y se cumple que
.
Definición of la distancia .
La definición de la distancia es un tanto sutil y puede ser omitida. Se incluye aquí por completitud, para el lector que desee insistir en los detalles. Nos limitamos al caso en que la matriz
es diagonalizable. Sea
una base de vectores propios. Cualesquiera vectores
pueden expresarse en la base
:
donde . Definimos entonces
Con esta definición de distancia es un espacio métrico completo, es decir, toda sucesión de Cauchy es convergente.
Este teorema no solo garantiza la existencia de , sino que da un método para construirlo como límite de la secuencia
. Nuestro sencillo ejemplo ilustra esta convergencia. De hecho, la
-ésima columna de
es el vector
, donde
es el
-ésimo vector de la base canónica. Por supuesto, en nuestro ejemplo podríamos haber hallado directamente el vector
resolviendo el sistema
que tiene como matriz de coeficientes
Las soluciones de este sistema son todas de la forma para
. Por tanto, la solución cuya suma de coordenadas es igual a
es
, donde
Cálculo en la práctica de la distribución estacionaria
Hemos identificado la sencilla idea que subyace en el algoritmo. Sin embargo, encontrar la distribución estacionaria (esto es, un vector propio de valor propio
para la matriz
en (1)) no es una tarea sencilla cuando la matriz tiene miles de millones de filas y columnas: el tiempo de computación y la memoria física que se requiere para ello representan verdaderos desafíos. El habitual método de eliminación de Gauss no es útil en este caso por el tamaño de los cálculos y porque se requiere dividir por coeficientes pequeños. Un algoritmo más eficiente hace uso de la propiedad (2) de estas matrices (ver [LM]). Este es el vínculo con la viñeta acerca del teorema del punto fijo de Banach, en la que se verá que la demostración del dicho teorema proporciona un algoritmo para construir el punto fijo.
De hecho, se parte de un tal que
y se necesita calcular . Habitualmente
para
entre
y
da una aproximación de
bastante buena. Por inducción, se obtiene
, pero incluso estos cálculos resultan largos. De hecho, debido a su construcción, la matriz
en (1) no tiene elementos no nulos, mientras que la mayoría de los elementos de la matriz
son cero, algo que debemos aprovechar:
Debido a la especial forma de , es fácil comprobar que si
es un vector cuyas coordenadas suman
entonces
. Por tanto, es suficiente con calcular la secuencia
Conclusión
En esta viñeta se ha presentado la parte pública del algoritmo PageRank de Google. Ahora el lector puede experimentar con redes sencillas y encontrar trucos para mejorar la posición de su página personal añadiendo enlaces tanto internos como externos de manera adecuada. Algunas de las partes privadas más sofisticadas continúan aún en desarrollo. Algunas de ellas consisten en remplazar la matriz “neutra” en (1) por otras matrices que reflejen los gustos del navegante en la red. Otras se aseguran de que el orden de las páginas no sea demasiado sensible a las manipulaciones de aquellos que intentan mejorar la posición de sus páginas.
Como conclusión general, ¿qué hemos observado? Que una idea simple e ingeniosa ha dado lugar a un enorme progreso en la eficiencia de los motores de búsqueda y al nacimiento de un verdadero imperio comercial.
Si bien la implementación es en sí una hazaña computacional, la idea inicial requiere matemáticas “elementales”: álgebra lineal y teoría de probabilidades. Las herramientas utilizadas, especialmente la diagonalización de matrices, son estándar en matemáticas pero han demostrado su verdadera potencia cuando se han usado fuera de su contexto “habitual”. También hemos incidido en las ideas unificadoras dentro de la ciencia cuando hemos considerado el teorema del punto fijo de Banach y sus aplicaciones a situaciones tan alejadas de su origen.
Bibliografía
[E] M. Eisermann, Comment Google classe les pages webb,
http://images.math.cnrs.fr/Comment-Google-classe-les-pages.html, 2009.
[LM] A. N. Langville and C. D. Meyer, A Survey of Eigenvector Methods
for Web Information Retrieval, SIAM Review, Volume 47, Issue 1,
(2005), pp. 135–161.
[RS] C. Rousseau and Y. Saint-Aubin, Mathematics and
technology, SUMAT Series, Springer-Verlag, 2008 (A French version of the book exists, published in the same series.)