Académique Documents
Professionnel Documents
Culture Documents
Matemáticas
Dentro del
Google
Hugo Nieto
DNI:47029817
I. INTRODUCCIÓN
A. Ficha técnica
B. Porqué Google
C. Cálculo computacional
IV. CONCLUSIÓN
2
I. INTRODUCCIÓN
A. Ficha técnica:
¿Cómo nació el buscador?
Larry Page (graduado en Informática) y Sergey Brin (graduado en matemáticas) se
conocieron en 1995, cuando tenían 24 y 23 años respectivamente, en un acto organizado
por la Universidad de Stanford. Ambos eran estudiantes de doctorado en informática y
tenían un objetivo en común: conseguir información relevante a partir de una
importante cantidad de datos. En enero de 1996 iniciaron su colaboración en un
buscador llamado BackRub. Larry empezó a trabajar en la forma de conseguir un
entorno para los servidores que funcionara con “PCs” de gama baja y que no necesitará
de potentes máquinas para funcionar. Un año después, la tecnología utilizada por
BackRub para analizar los links empezaba a ser conocida en todo el campus, obteniendo
una gran reputación. Era la base sobre la que se construiría Google.
El nombre proviene de un juego de palabras con el término "googol", acuñado por
Milton Sirotta, sobrino del matemático norteamericano Edward Kasner, para referirse al
número representado por un 1 seguido de 100 ceros. El uso del término refleja la misión
de la compañía de organizar la inmensa cantidad de información disponible en la web y
en el mundo.
3
ya disponía de oficinas propias en Menlo Park, California, todo un lujo comparado con
la situación en la que habían estado hasta entonces.
Google.com, todavía en fase beta (a prueba), tenía unas 10,000 búsquedas cada día. La
prensa empezaba a hablar del nuevo buscador y de su excelente funcionamiento.
En 1999 consiguieron 25 millones de dólares de dos importantes inversores: Sequoia
Capital y Kleiner Perkins Caufield & Buyers. Las modestas oficinas ya eran pequeñas
para todos los directivos y trabajadores de Google, así que se trasladaron a Googleplex,
la actual sede central de Google en Mountain View, California.
Nuevos e importantes clientes iban llegando, como por ejemplo AOL/Netscape que
escogió a Google como su servicio de buscador, haciendo que superase los 3 millones
de búsquedas al día. Lo que empezó siendo un proyecto universitario ya era una gran
empresa con un crecimiento impresionante.
El 21 de septiembre de 1999 desapareció definitivamente de Google.com la etiqueta que
lo identificaba como una versión beta.
¿Cuál es su filosofía?
La filosofía de Google permanece intacta desde su aparición: organizar la información
mundial y hacerla universalmente accesible y útil. Google continúa creciendo para
descubrir nuevas tecnologías de búsqueda que mejoren la vida de los usuarios.
Equipo de dirección:
Dr. Eric E. Schmidt, Presidente y director ejecutivo
Sergey Brin, Cofundador y presidente de tecnología
Larry Page, Cofundador y presidente de productos
George Reyes, Director financiero
Wayne Rosing, Vicepresidente de ingeniería
Omid Kordestani, Vicepresidente sénior de desarrollo de negocios y ventas
internacionales
David C. Drummond, Vicepresidente de desarrollo corporativo
Jonathan Rosenberg, Vicepresidente de gestión de productos
Tim Armstrong, Vicepresidente de ventas de publicidad
4
Joan Braddi, Vicepresidente de servicios de licencias
Urs Hölzle, Becado Google
Craig Silverstein, Director de tecnología
Cindy McCaffrey, Vicepresidente de marketing corporativo
5
B. Porqué Google
La primera gran novedad que introduce Google que le diferencia de los otros
buscadores de la red (Altaviasta buscador anterior a Google y digamos que segundo en
el orden de importancia, se basa en el nombre exacto del host), es que implementa los
Hipertextos. Es decir, una herramienta de software que permite leer (en este caso, pero
también escribir) el contenido de una información incluyendo fragmentos de
información y las conexiones entre estos fragmentos. Su base de datos se convierte
entonces en un gran Hiperespacio que describe el número total de localizaciones y
todas sus interconexiones. Esto le permite analizar con rapidez el contenido de todas las
webs y así, poder recoger una mayor cantidad de páginas (o información) relacionadas
con el tema buscado.
Sin embargo pensar en la fórmula “cuánta más información aporte, mayor es el éxito de
un buscador” es un poco desafortunado (¿calidad no es sinónimo de cantidad?), pues
hay que tener en cuenta que estamos tratando con millones de páginas web y que el
usuario no dispone de una eternidad de tiempo para informarse...
Luego usar este sistema nos plantea un nuevo problema (y la gran novedad del
buscador) que no es otro que ordenar los resultados, y sobre todo ¿Qué orden hay poner,
para conseguir que las diez primeras páginas mostradas contengan información útil para
el usuario? Trataremos pues de contestar a esa pregunta en lo que sigue de este trabajo.
Que no es otra cosa que desnudar, o desvelar el secreto del Algoritmo PageRank con el
que Google ordena los resultados de las búsquedas, y en el que reside la fuerza de este
(palabras de Brin y Page: “El corazón de nuestro software es PageRank... Provee la base
para todas nuestras herramientas de búsqueda”).
Para ello intentaremos modelizar el problema para plantearlo de forma esencialmente
Matemática. Una vez hecho esto, podremos apelar a algún personaje de la Historia de
este pensamiento, que como grandes genios que son, ya han pensado (y resuelto)
problemas de este tipo aunque eso sí, sin salirse de la abstracción intrinseca de esta
ciencia. Concluiremos interesandonos por los pequeños defectos (o grandezas) que tiene
el algoritmo y se trabaja actualmente por arreglar.
Sobra decir (o no, pues brillaria la falta de sinceridad) que gran parte de la estructura de
este trabajo debe su razón (a parte de a una imposición), al magnífico articulo que
escribió el profesor Pablo Fernández títulado: “El secreto del Google y el álgebra
lineal”, V Premio SEMA a la Divulgación en Matemática Aplicada, otorgado por la
Sociedad Española de Matemática Aplicada en septiembre de 2004.
6
II. ORDEN Y MATEMATIZACIÓN DEL
PROBLEMA
El termino “navegar” ya nos hace intuir un poco nuestra postura ante este caos, pues
como en el mar siempre estamos un poco a merced de por donde este y el viento nos
quieren llevar, en nuestro caso el mar es todo el conjunto de la red y el viento son las
conexiones y/o enlaces de las páginas entre sí. Y navegamos (le quito las comillas pues
parece que lo voy a escribir mucho) según las leyes que estos nos dictan. Pongamos un
ejemplo, si etiquetamos las páginas que compondrán nuestra ruta con P1 , P2 , P3, ..., Pn.
Pasaremos de una a otra mediante enlaces y si ahora hacemos un simple grafo de la
situación veremos fácilmente que la probabilidad de caer en una página está ligada
directamente con el número de enlaces que lleven a esta y el número de páginas que
visites.
En este dibujo se muestra una posible situación, donde la probabilidad de que nos
encontremos en P6, no es la misma tras un instante de tiempo que tras dos
7
(consideramos aquí por instantes de tiempo el paso de una página a otra). Vemos
también que la elección de una página sigue una distribución de probabilidad uniforme
discreta en [1, N], dónde N= “nº de páginas a las que enlaza la página desde la que te
encuentres”.
Se va un poco entonces intuyendo que la importancia que pueda o no tener una página,
va a depender del número de páginas que enlazan a ella. Algo lógico por otra parte pues
si muchas páginas enlazan a ésta es porque muchos participantes encuentran que la
información que contiene es recomendable. Pero claro, volviendo a los términos de
navegante, según de donde venga el viento, este será mejor o peor para ir más deprisa a
donde queramos llegar. Con esto quiero decir que no va a ser igual que una página
muy conocida (o usada) te enlace, a que lo haga la página de un particular sólo conocido
en su casa a la hora de comer... Es decir desconocida.
Este ejemplo nos muestra que la red puede ser descrita mediante un grafo dirigido,
dónde cada página Pj es un vértice y cada arista dirigida significa que hay un enlace
entre las páginas (vértices) Pi y Pj. El grafo en cuestión es monstruosamente grande,
basta considerar que hay más de 3000 millones de páginas censadas, para hacernos una
idea de las dimensiones de las que estamos hablando. Luego conviene adaptarse a una
interpretación alternativa, la matricial. Vamos pues a construir una matriz M de
adyacencia del grafo de la red. La matriz M será de dimensiones n x n, cuyas filas y
columnas van etiquetadas con las páginas P1 , P2 , P3, ..., Pn, y cuyas entradas son ceros
y unos. La entrada mij será uno si hay un enlace desde la página Pi a Pj , y cero en el
caso contrario.
M=
Poniendo 1/n en todas las entradas de las columnas donde Nj fuese igual a cero (es decir
de las páginas que no enlazan a ninguna otra), siendo n la dimensión de la matriz (o
número de páginas de la red).
Y por lo tanto los registros de la nueva matriz son números no negativos ( entre 0 y 1),
tales que la suma de los registros de cada columna vale 1.
8
Esta figura se muestra la transformación para cierta columna j:
Por mucho que hayamos intentado meter instrumentos matemáticos para considerar el
problema, este sigue siendo explícitamente el mismo: ¿Cómo ordenamos los resultados?
Pues bien, todo lo que nos hace falta es asignar a cada página una importancia que
determine su orden de aparición, es decir asignar a cada página Pj , un número xj (por
ejemplo entre 0 y 1), al que llamaremos Page-Rank (posicionamiento de la página o
“ranking”). Queda claro que una vez que hayamos (Google más bien) elaborado una
lista de las páginas web de la base de datos, asignando a cada una de ellas un Page-Rank
(importancia), las páginas web seleccionadas, a la hora de una consulta (como por
ejemplo, acerca del ornitorrinco), estas se mostrarán en el orden que indique dicha lista.
A partir del apartado anterior, hemos esbozado los elementos a considerar para asignar
la importancia de una página, esta dependía del número de enlaces que llegaban a ella,
así como la “calidad” (importancia) de estos. Supongamos, por ejemplo, que la página
P1 es citada desde las páginas P2, P25 y P256, que P2 sólo se cita desde P1 y P256, etc.,
mientras que, digamos, hay enlaces a la última página, Pn, desde P1, P2, P3, P25 y Pn-1.
Nuestra asignación x1, . . . , xn debe cumplir que:
9
x1 = K (x2 + x25 + x256) ,
x2 = K (x1 + x256) ,
...
xn = K (x1 + x2 + x3 + x25 + xn-1) ,
Mx= λx
10
III. APELANDO A LOS GENIOS
(a) existe un autovalor (simple) λ> 0 tal que Av = λv, donde el autovector es v > 0.
Además λ |µ|, para cualquier otro autovalor µ de A.
11
El teorema de Perron-Frobenius nos asegura que el autovector que buscábamos existe,
y además es, en módulo, el mayor de todos los posibles de la matriz que modeliza a la
red, sólo hay un pequeño problema, hace falta que la matriz que modelice nuestra red
sea irreducible. Y ¿Qué significa Irreducible?
1. No existe ninguna permutación (de filas y columnas) que transforma A en una matriz
del tipo
Necesitamos pues que la matriz M -o ¿Será M´?- Sea irreducible pues sino no
podemos asegurarnos que nuestro (auto)vector x de los Page-Rank exista. Claramente
de las tres posibles definiciones, la más apta para nuestro caso es la tercera pues en
realidad estamos tratando con la matriz de adyacencia del grafo que modeliza la red.
Veamos a ahora si es el caso.
La respuesta a simple vista sería que no, pues un grafo está fuertemente conectado si
existe un recorrido de cualquier longitud que una a dos vértices cualesquiera, es decir, si
dados dos vértices del grafo dirigido, podemos siempre encontrar una sucesión de
aristas que llevan el uno al otro. Estaríamos diciendo que desde cualquier página
podemos llegar a cualquier otra en un número finito de “cliks”, cosa que cualquier
usuario sabe perfectamente que no es cierto. El siguiente dibujo muestra cómo están
estructuradas los millardos de páginas web que componen (la) Internet.
12
La pieza central (SCC, strongly connected component) es, como el nombre indica, una
componente fuertemente conexa. Junto a ella aparecen otras dos piezas: la IN está
formada por las páginas que tienen enlaces hacia las de SCC, y la OUT está constituida
por las páginas a las que apuntan los de SCC. Además aparecen una especie de
dendritas, que contienen páginas desde las que no se puede llegar a los nodos de SCC,
ni tampoco son accesibles desde ellos (que, en ocasiones, y para aumentar la
complejidad, pueden llegar a formar tubos). Obsérvese, de todas formas, que la
organización de la red es dinámica, y cambia con el tiempo. Y no está claro si se habrá
mantenido, en líneas generales, la estructura que aquí exhibimos.
¿Qué podemos hacer (o más bien, ¿qué hace Google?) ante esto? Un truco muy
habitual: se trata de conseguir (de una manera razonable) estar en la mejor situación
posible. Por ejemplo, añadiendo toda una serie de probabilidades de transición (de
salida) a todos los vértices. Esto es, considerando la matriz:
13
Ahora bien, el hecho de asegurarnos de la existencia del autovector, nada nos dice de
cómo calcularlo, y dado que estamos tratando con una matriz de muchos millones de
filas y columnas, la pregunta es bastante pertinente.
E. Cálculo computacional
El titulo del apartado de por sí asusta, pues no hay que ser muy docto en la materia para
saber, que el cálculo de todos los autovalores de una matriz de dimensión de varios
miles de millones, es una cuestión inabordable aún contando con el “Mare Nostrum”
como maestro de ceremonias (que no es el caso). Sin embargo este será el apartado de
menor longitud, pues hay que resaltar que el autovector que buscamos no es otro que el
asociado al autovalor de módulo máximo, lo que facilita enormemente su cálculo.
Debido a que existe un método llamado Método de Potencias para calcular el autovalor
dominante de una matriz diagonalizable.
Nos ( Google claro está) planteamos calcular el autovalor dominante de la matriz M´´
definida anteriormente, de entradas positivas e irreducible, luego tenemos la seguridad
de que existe tal autovalor λ1 positivo y estrictamente mayor que todos los demás,
llamamos v1 (nuestro ansiado x) al autovector positivo asociado (somos pesados, pero
hay que insistir para no perder rigor...). El método que utiliza Google es el llamado
método de las potencias Llamaremos {v1, . . . , vn} a los autovectores, numerados
de manera que los autovalores correspondientes vayan en orden decreciente de tamaños,
λ1 > |λ2| |λ3| · · · |λn| , son una base de .
Partimos, por ejemplo, de un v0 0, que escribimos como v0 = c1v1 + c2v2 + · · · + cnvn ,
donde los números c1, . . . , cn son las coordenadas de v0 en la base considerada.
Para el argumento que sigue, no va a ser necesario calcularlos explícitamente, y de
hecho no se hace. Nos basta con saber que tales números existen (¡y lo sabemos!).
Ahora multiplicamos el vector v0 por la matriz M´´, para obtener
M´´v0 = c1λ1v1 + c2λ2v2 + · · · + cnλnvn ,
puesto que los vectores v1, . . . , vn son autovectores de M´´. Sólo calculamos el
producto de la izquierda; de lo de la derecha nos basta, con saber que ocurre.
Ahora repetimos la operación para aplicando el ya mencionado método de potencias
calculando :
M´´²v0 = c1λ1²v1 + c2λ2² v2 + · · · + cnλn² vn
14
De manera que, al multiplicar reiteradamente el vector inicial por la matriz M´´, vamos
determinando, cada vez con mayor precisión, la dirección que nos interesa, la que
determina el vector v1 .
¡Actualmente M´´ es una matriz de más de 64,000,000,000,000,000,000 términos!
De hecho se dice que calcular PageRank es “La mayor computación matricial del
mundo”.El hecho de que sea una matriz extremadamente larga es
una razón para usar el método de las potencias.
La velocidad de convergencia depende del tamaño de los autovalores de A, o más bien
de la razón entre el más grande con el resto. Brin y Page reportan una convergencia a
niveles“razonablemente tolerables” en aproximadamente 52 iteraciones para una base
de datos de 332 millones de enlaces (Sugieren también que el factor de escala es casi
lineal a log n). Veamos la gráfica
Aunque Google asegura que el cálculo no lleva más que unas horas de trabajo
computacional, lo cierto es que el valor del vector Page-Rank se actualiza tan solo una
vez al mes, este proceso se viene a llamar la “Google Dance”.
Cabe añadir, para el usuario que haya instalado “la barra de Google”, que el valor que
aparece de Page Rank (valor comprendido entre 0 y 10), dista mucho de ser el real, lo
que hace Google es coger el valor logarítmico de Page Rank real de la página, para
hacerlo visible a los usuarios. La base de este logaritmo es desconocida.
15
IV. CONCLUSIÓN
"La grandes obras las sueñan los genios,
las ejecutan los luchadores,
las disfrutan los felices
y las critican los inútiles crónicos".
Proverbio árabe
Para ilustrarlo con un ejemplo: Supongamos que disponemos de una web semilla A. A
trasmitirá un valor de 100 Trust Rank a todas las webs a las que enlace. Estas páginas, a
su vez, transmitirán un Trust Rank de 99 a todas las webs a las que enlacen. Y éstas
últimas, transmitirán un Trust Rank de 98 a las que ellas enlacen.
Para mitigar la degradación del Trust Rank a medida que se distancia de las webs
semilla, en el algoritmo se ha incluido un corrector que tiene en cuenta el número de
grados que hay entre la web semilla y la web que recibe el Trust Rank, sin anular
completamente la distancia que las separa de la semilla.
16
convertirse automáticamente en una web que transmite Trust Rank negativo en lugar de
positivo.
¿Esto solucionaria el problema? Sin duda alguna evitaria pequeñas confusiones, pero
desde mi humilde opinión, ¿No se convertiria el juego de estos “webmaster”, en
penalizar introduciendo un Trust- Rank negativo a las web de las que se quieren mofar?
Y lo que es peor, al meter a una (o las que sean) persona física para que decida la
importancia, ¿No se alterará mucho más la imposición de ciertos resultados? Hay que
tener en cuenta que Google tiene ahora mismo muchísimo poder de información
(desinformación).
Y para despedirnos una frase del profesor Pablo Fernández de la UAM, que despues de
haber desmembranado el problema de Google escribe: “Es la hora de las Matemáticas,
esa Ciencia que se ocupa de realidades abstractas, virtuales, para, a través de ellas,
entender realidades concretas”.
17
BIBLIOGRAFÍA
• El artículo del profesor Pablo Fernández: El Secreto del Google y el Álgebra
Lineal:
http://www.uam.es/personal_pdi/ciencias/gallardo/
• Tesis doctoral de Fabien MATHIEU sobre los grafos que modelizan la web y el
cálculo del Page Rank:
http://www.lirmm.fr/~mathieu/Recherche/memoire.pdf
• Otras webs:
http://en.wikipedia.org/wiki/Eigenvalue_algorithm
http://google.dirson.com
http://www.infobuscadores.com/
• Libros de consulta:
Matemática Discreta y Combinatoria de R. P. Grimaldi (Editorial Addison-Wesley
Iberoamericana.1998).
Álgebra y Geometría de M. Castellet, J. Llerena (Editorial Reverté.
1991)
18