Вы находитесь на странице: 1из 15

ALUMNO: Javier Snchez Snchez Registro: 9310362 Grupo: B207 Aplicacin de Valores y vectores caractersticos en Google Fecha: 23 de junio

de 2010

GOOGLE y el Algebra Lineal Este trabajo fue extrado del documento El secreto de Google y el Algebra Lineal de Pablo Fernndez Gallardo del departamento de matemticas de la Universidad de Madrid. El objetivo de este trabajo es mostrar algunas de las matemticas relacionadas en el desarrollo del buscador Google y ver que, ms que magia o ser algo sobrenatural, Google usa las matemticas a su favor para ser actualmente el buscador de internet ms utilizado en el mundo entero. 1 El buscador Google El origen del buscador Google es ya bien conocido. Fue diseado en 1998 por Sergei Brin y Lawrence Page, dos estudiantes de doctorado en Informtica de la Universidad de Stanford: Brin se haba graduado en Matemticas, y Page en Informtica. Los vemos en las fotografas de la derecha. Dos jvenes que hoy, en la frontera de la treintena, se han convertido en multimillonarios. El curioso nombre es una variacin sobre el trmino googol, que alguien invent para referirse al apabullante nmero 10100. Uno de esos nmeros que los matemticos manejamos con comodidad pero que, quizs, sea mayor que el nmero de partculas del Universo (para ms informacin se puede visitar esta pgina http://www.fayerwayer.com/2008/03/googol-y-un-googolplex/). Aunque sin llegar a esos extremos, las escalas de la cuestin que nos interesa son tambin gigantescas. En 1997, cuando Brin y Page empezaban a trabajar en el diseo de Google, haba censadas en torno a los 100 millones de pginas web. Altavista, el buscador ms popular por entonces, atenda 20 millones de consultas diarias. Hoy, esas cifras se han multiplicado: el propio buscador Google atiende 200 millones de consultas diarias e indexa varios miles de millones de pginas web. As que el diseo de un buscador ha de resolver con eficacia ciertas cuestiones computacionales, como la manera en que se almacena toda esa informacin, cmo se actualiza, cmo se pueden gestionar las peticiones, cmo buscar en las gigantescas bases de datos, etc., problemas en los que, sin duda, las Matemticas tienen mucho que decir. Pero sobre ninguna de estas cuestiones, con ser interesantes, reflexionaremos aqu. El asunto que nos interesa se puede formular de manera sencilla: supongamos que, a resultas de una consulta, tras el proceso de bsqueda en las bases de datos, hemos determinado que, digamos, unas cien pginas contienen informacin que, de una manera u otra, puede resultar relevante para el usuario. Ahora, En qu orden mostramos esos resultados? El objetivo, como de manera explcita se plantearon Brin y Page, es que, en un nmero suficientemente grande de los casos, al menos una de, digamos, las diez

primeras pginas que se muestren contenga informacin til para el que realiza la consulta. Pedimos ahora al lector (que en un alto porcentaje ser sin duda Google-adicto) que decida, a partir de su experiencia personal, si Google cumple este objetivo. Estamos seguros de que la respuesta general es que s, y de manera asombrosa. Parece magia. . . pero son Matemticas. Matemticas que, adems, no requieren conocimientos que vayan ms all de cursos bsicos de licenciatura, como veremos a lo largo de estas pginas. Para la tarea que queremos abordar, necesitamos un criterio de ordenacin. Obsrvese (y aqu ya nos hemos puesto en modo matemtico) que si etiquetamos con los smbolos P1, . . . , Pn cada una de las pginas de la red, todo lo que nos hace falta es asignar a cada Pj un nmero xj , que llamaremos su importancia. Estos nmeros podran ser, por ejemplo, nmeros entre 0 y 1. Supongamos entonces que, tras un censo de los sitios de la red, hemos conseguido construir la lista de pginas web, y que le hemos asignado a cada una de ellas, de la manera que sea, una importancia. Esta lista queda a nuestra disposicin para ser utilizada cada vez que contestemos a una determinada consulta: las pginas seleccionadas se mostrarn en el orden que indique dicha lista. Queda, por supuesto, explicar cmo se construye esa lista. Vamos con ello. 2 El modelo El primer paso consiste en describir, en forma manejable, los elementos relevantes para la cuestin que interesa, la asignacin de importancias. Digamos que hemos recogido toda la informacin sobre la red (sitios, contenidos, enlaces de unas pginas a otras, etc.). De toda esta informacin, y en este primer paso de la modelizacin, vamos a rescatar nicamente la referida a cada una de las pginas, a la que asignamos etiquetas P1, . . . , Pn, y los enlaces entre ellas. En estos trminos, la red puede ser descrita mediante un grafo (dirigido) G. Cada pgina Pj de la red es un vrtice del grafo, y hay una arista (dirigida) entre los vrtices Pi y Pj si desde la pgina Pi hay un enlace a la pgina Pj. Es un grafo gigantesco, abrumador, sobre cuya estructura real reflexionaremos ms adelante. Cuando tratamos con grafos, nos gusta siempre recurrir a los dibujos en el papel, en los que los vrtices son puntos del plano, mientras que las aristas son flechas que unen esos puntos. Pero, a los efectos que aqu perseguimos, conviene considerar una interpretacin alternativa, matricial. Vamos, pues, a formar una matriz M, de dimensiones nn, cuyas filas y columnas van etiquetados con los P1, . . . , Pn, y cuyas entradas son ceros y unos. La entrada mij de la matriz ser un uno si es que hay un enlace de la pgina Pj a la pgina Pi; y un cero en caso contrario:

La matriz M es, salvo una trasposicin, la matriz de adyacencia (o de vecindades) del grafo. Ntese que no tiene por qu ser simtrica, pues nuestro grafo es dirigido. Obsrvese tambin que, tal como se seala en el dibujo, la suma de las entradas correspondientes a la columna de Pj es el nmero de enlaces que salen de la pgina Pj, mientras que la suma de los registros de una fila coincide con el nmero de enlaces entrantes. Vamos a postular que la importancia de una cierta pgina de la red Pj tiene que ver con las pginas desde las que hay enlaces a ella. Esto es muy razonable: si muchas pginas enlazan con Pj, ser porque la informacin que esta contiene ha sido considerada por muchos participantes de la red como recomendable. Ese tiene que ver queda por ahora algo difuso. Un primer intento, quizs algo ingenuo, consiste en suponer que la importancia xj de cada Pj es proporcional al nmero de pginas desde las que hay enlaces a Pj. Observemos que, una vez que disponemos de la matriz M, calcular cada uno de los xj sera sencillo en este caso, pues bastara sumar las entradas correspondientes a la fila de Pj. Pero este modelo no recoge adecuadamente una situacin que nos gustara tener en cuenta, y es aqulla en la que una cierta pgina es citada desde unas pocas pginas, pero muy relevantes. Digamos, por ejemplo, que desde www.microsoft.com, o desde www.amazon.com, etc. El procedimiento anterior le asignara baja importancia, algo que no parece razonable.

As que necesitamos afinar nuestro modelo de manera que asignemos alta importancia tanto a pginas muy citadas; como a pginas poco citadas, pero desde sitios importantes. El segundo intento, ya en esta lnea, consiste en decidir que la importancia xj de cada pgina Pj es proporcional a la suma de las importancias de las pginas que enlazan con Pj. Ntese que hemos cambiado, con respecto a nuestro primer intento, nmero de pginas que enlazan con Pj por suma de las importancias de las pginas que enlazan con Pj. Esta ligera variacin cambia por completo, como veremos, las caractersticas del problema. Supongamos, por ejemplo, que la pgina P1 es citada desde las pginas P2, P25 y P256, que P2 slo se cita desde P1 y P256, etc., mientras que, digamos, hay enlaces a la ultima pgina, Pn, desde P1, P2, P3, P25 y Pn1. En nuestra asignacin anterior, x1 debera ser proporcional a 3, x2 lo sera a 2, etc., mientras que xn habra de ser proporcional a 5. Pero ahora nuestra asignacin x1, . . . , xn debe cumplir que

Donde K es una constante de proporcionalidad. Nos encontramos as con un enorme sistema de ecuaciones, cuyas soluciones son las posibles asignaciones x1,. . ., xn. Escribamos el sistema anterior en trminos ms manejables, matriciales:

Hagamos ahora un alarde simblico al que tan aficionados somos los matemticos: llamemos x al vector de importancias. La matriz de dimensiones

nn del sistema es, justamente, la M asociada al grafo. As que podremos escribir que la asignacin de importancias que perseguimos es una solucin de Mx = x Ya hemos escrito la constante de proporcionalidad con el smbolo . Y es que, como cualquier estudiante de un curso de Algebra lineal reconoce al instante, la cuestin se ha transformado en un problema de autovalores y autovectores: nuestro anhelado vector de importancias x no es sino un autovector de la matriz M que, recordemos, recoga la informacin sobre la estructura de la red (vrtices y relaciones de adyacencia). 3 El Surfista aleatorio A modo de interludio, vamos a enfocar el problema desde un nuevo punto de vista. Imaginemos que un surfista se dedica a navegar por la red. En un cierto instante de tiempo est en una pgina, por ejemplo en P1. En el instante siguiente, algo aburrido de los contenidos de P1, va a saltar a una de las pginas a las que enlaza P1 (digamos que hay N1 de ellas). Pero, exactamente a cul? Nuestro modelo no es determinista, sino probabilstico: no sabemos dnde estar un instante de tiempo despus, pero s con qu probabilidad estar en cada uno de los posibles destinos. Y adems es un modelo dinmico, porque el mismo argumento se podra aplicar al segundo movimiento, y al tercero, etc. Nuestro surfista sigue lo que se denomina un paseo aleatorio por el grafo. En el dibujo de la derecha mostramos una posible situacin: de P1 parten tres aristas, a los vrtices P2, P6 y P8. As que el navegante sortea entre estas tres pginas, con probabilidad 1/3 para cada una de ellas. Si, por ejemplo, el resultado del sorteo hubiera sido la pgina P2, entonces volvera a sortear, pero esta vez asignando probabilidad 1/4 a cada una de los cuatro posibles destinos desde P2.

La formulacin es muy sugerente, pero no est claro cmo podemos formalizarla: cmo podemos calcular, por ejemplo, la probabilidad de que, partiendo de la pgina P1, el navegante est en la pgina P17 tras cinco instantes de tiempo. Ms an, todava ni sospechamos qu puede tener que ver con nuestro problema de asignacin de importancias. Vamos poco a poco. Recordemos que M es la matriz del grafo de la red, y que sus entradas mij son ceros o unos. Llamemos Nj al nmero de enlaces desde la pgina Pj (esto es, la suma de las entradas de cada columna de M). Vamos ahora a construir una nueva matriz M_ a partir de la M original sustituyendo cada entrada mij por

Los registros de la nueva matriz M_ son nmeros no negativos (entre 0 y 1) tales que la suma de los registros de cada columna vale 1. En la siguiente figura se muestra, para una cierta columna, el resultado de la transformacin:

La matriz M_ as construida es lo que se llama una matriz estocstica (o de Markov). Supongamos que el surfista se encuentra, en el primer instante de tiempo, en la pgina (o vrtice) Pk. Para poner en trminos probabilsticos esta situacin tan de por s determinstica, digamos que est en la pgina Pk con una probabilidad del 100 %. Vamos a representar esta situacin inicial con el vector cuyas entradas son todas cero, excepto la de la posicin k, que lleva un uno. El navegante sortea entre los Nk destinos, asignando probabilidad 1/Nk a cada uno de ellos. Pero si multiplicamos la matriz M_ por este vector inicial obtenemos

El resultado sigue siendo un vector cuyas entradas (nmeros entre 0 y 1, pues los mjk son, o bien 0, o bien 1/Nk) suman 1, porque hay justamente Nk entradas no nulas. Pero ms an: el vector que obtenemos describe exactamente con qu probabilidad estar el surfista, tras una unidad de tiempo, en cada una de las pginas de la red, si es que ha partido de Pk. Lo que hace especialmente manejable este modelo es que, para conocer con qu probabilidad estar en cada una de las pginas de la red tras dos instantes de tiempo, basta repetir la operacin. Esto es, multiplicar (M_)2 por el vector inicial. Y el anlogo para el transcurrir de tres instantes de tiempo, cuatro, etc. Siguiendo la nomenclatura habitual, vamos a considerar una serie de estados, que en este caso son los vrtices del grafo G. La matriz M_ recibe el (apropiado) nombre de matriz de transicion del sistema: cada entrada mij es la probabilidad de pasar del estado (vrtice) Pj al estado (vrtice) Pi. Y los registros de las sucesivas potencias de la matriz, las probabilidades de pasar de Pi a Pj tras varios instantes de tiempo. Esto resuelve la primera de las cuestiones: cmo calcular las probabilidades de transicin entre vrtices y para el transcurso de varias unidades de tiempo. Pero todava no hemos descubierto la relacin con el problema de ordenacin de Google. Esto lo dejamos para ms adelante. Aunque avanzamos, para aquel lector especialmente impaciente y versado en estas cuestiones, que el vector de entradas no negativas que llevamos persiguiendo ya un buen rato resulta ser, justamente, el estado estacionario de la cadena de Markov. Veamos un ejemplo en donde se utilizar esta matriz y los autovalores y autovectores.

4 Ejemplo prctico Tenemos seis equipos, E1,. . ., E6: los tres primeros forman una conferencia, los siguientes la otra. Cada equipo juega 21 partidos en total: 6 contra los de su propia conferencia, 3 contra los de la otra. La informacin sobre las victorias conseguidas est contenida en la siguiente tabla:

A la derecha de la tabla hemos sumado el nmero de victorias que ha conseguido cada escuadra. Ese balance de victorias y derrotas sugiere que la ordenacin adecuada es

Pero observemos que, por ejemplo, el lder de la competicin, E3, ha acumulado muchas victorias contra E1, que es el peor equipo. Qu ocurre con el segundo enfoque? Tenemos que calcular, y en serio. Incluso en un ejemplo tan sencillo como este, necesitamos la ayuda del ordenador. As que recurrimos a un paquete matemtico de clculo, como por ejemplo Maple, para realizar los clculos. Al usuario experto, los comandos que siguen le resultarn familiares. Al novicio tampoco le costar mucho trabajo entenderlos. Primero, cargamos un paquete necesario:

Tras esta concisa (y quizs profunda) respuesta del programa, lo ponemos a trabajar en serio. Maple en accin!:

Una vez acostumbrados a la manera en que Maple muestra los resultados (en cada lnea, primero el autovalor, luego la multiplicidad, y luego los autovectores asociados), comprobamos que la matriz A tiene seis autovalores distintos, dos complejos (conjugados) y cuatro reales. Si calculamos sus mdulos,

Observamos que el mayor autovalor (en mdulo) es = 0.475, cuyo autovector asociado, x = (0.509, 0.746, 0.928, 0.690, 0.840, 1), Es el nico (vase arriba) cuyas entradas son todas nmeros reales y no negativos. Ya tenemos la respuesta que buscbamos: el orden que sugiere este clculo es

Que difiere del anterior en los dos primeros (ahora E6 es el mejor equipo). Recapitulemos. En esta matriz particular (que bien pudiera servir de versin a pequea escala de la de Internet), cuyas entradas son todas no negativas, se ha dado la mejor de las situaciones posibles: hay un nico autovector cuyas entradas son todas no negativas. Este autovector, que adems est asociado al autovalor de mdulo mximo, nos sirve como solucin al problema de ordenacin que nos habamos planteado. Ha sido casualidad? Ha sido simplemente un ardid de quien esto escribe, una artera eleccin de matriz que busca convencer a los incautos de que las cosas funcionan realmente? El lector, que seguramente de incauto no tiene nada, y s mucho de curioso, sentir la necesidad de dar contundente respuesta a esta cuestin. Y sabr, sin duda, que ha llegado el momento de dar entrada a las Matemticas. Veamos ahora 2 teoremas que generalizan esta situacin que acabamos de observar. Teorema 1 (Perron, 1907) Sea A una matriz (cuadrada) con entradas positivas, A > 0. Entonces, (a) existe un autovalor (simple) > 0 tal que Av = v, donde el autovector es v > 0; (b) este autovalor es mayor, en mdulo, que todos los dems autovalores; (c) cualquier otro autovector positivo de A es un mltiplo de v. Teorema 2 (Frobenius, 1908-1912) Sea A una matriz (cuadrada) con entradas no negativas, A 0. Si A es irreducible, entonces (a) existe un autovalor (simple) > 0 tal que Av = v, donde el autovector es v > 0. Adems, ||, para cualquier otro autovalor de A. (b) Cualquier autovector 0 es un mltiplo de v. (c) Si hay k autovalores de mdulo mximo, entonces son las soluciones de xk k = 0.

Estos resultados, a los que a partir de ahora nos referiremos conjuntamente como teorema de Perron-Frobenius, tienen una amplia utilidad en diversos contextos. Tanto es as que hay quien habla de la teora de Perron-Frobenius, del que este teorema es el resultado fundamental. Ahora veamos si esto aplica en el asunto de Google. 5 Cuestin computacional El lector crtico estar planteando ya una objecin (seria): el teorema de PerronFrobenius garantiza la existencia del autovector que es la respuesta a nuestro problema de ordenacin, pero nada nos dice sobre cmo calcularlo. As que cabe todava la posibilidad de que estos resultados no constituyan una respuesta satisfactoria. Recordemos que la matriz que maneja Google es gigantesca. El clculo de nuestro anhelado autovector, es realmente una cuestin abordable desde el punto de vista computacional? Vamos a suponer que estamos en el mejor escenario posible, en las condiciones que aseguran la existencia de un autovalor 1 positivo estrictamente mayor (en mdulo) que todos los dems autovalores. Llamemos v1 al autovector (positivo) asociado. Podemos, por supuesto, calcular todos los autovectores y quedarnos con el que nos interesa. Pero incluso aunque utilizramos mtodos eficaces para calcular autovalores (no mediante determinantes, desde luego), la tarea sera excesiva. Pero de nuevo la propia estructura del problema sale en nuestra ayuda para facilitarnos el clculo. Una feliz coincidencia. Todo arranca de la observacin, hasta ahora inocente, de que el autovector que buscamos est asociado al autovalor de mdulo mximo. Supongamos, por simplificar, que A es diagonalizable. Los autovectores {v1,. . ., vn}, numerados de manera que los autovalores correspondientes vayan en orden decreciente de tamaos,

Son una base de Rn. Partimos, por ejemplo, de un v0 0, que escribimos como

Donde los nmeros c1,. . ., cn son las coordenadas de v0 en la base considerada. Para el argumento que sigue, no va a ser necesario calcularlos explcitamente, y de hecho no lo haremos. Nos basta con saber que tales nmeros existen. Ahora multiplicamos el vector v0 por la matriz A, para obtener

Puesto que los vectores v1,. . ., vn son autovectores de A. Solo calculamos el producto de la izquierda; de lo de la derecha nos basta, para nuestros argumentos, con saber que ocurre. Perdone el lector la insistencia. Cada vez ms animados, repetimos la operacin:

De manera que, al multiplicar reiteradamente el vector inicial por la matriz A, vamos determinando, cada vez con mayor precisin, la direccin que nos interesa, la que determina el vector v1. Este mtodo numrico es conocido como el mtodo de las potencias, y su velocidad de convergencia depende del cociente entre el primer y el segundo autovalor. Con esta observacin, nuestro problema queda resuelto, al menos si estamos en las mejores condiciones posibles (una matriz de entradas no negativas e irreducibles). La respuesta que buscbamos existe, es nica, y adems disponemos de un mtodo eficaz para calcularla. Pero. . . 6 Estamos realmente en una situacin ideal? Para que todo funcione, necesitamos que la matriz M (o quizs M_) asociada al grafo G de la red sea irreducible. En otra palabras, que G sea fuertemente conexo.

Como el lector podr sospechar, no es ste el caso. Un estudio realizado en 1999 conclua que, de las 203 millones de pginas censadas, el 90% de ellas estaba en una gigantesca componente (dbilmente) conexa, que a su vez tena una estructura interna compleja (ms, quizs, de lo que uno podra sospechar), como se muestra en el siguiente dibujo:

Es una estructura peculiar, que nos recuerda a un organismo biolgico, una suerte de gigantesca ameba. 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 pginas que tienen enlaces hacia las de SCC, y la OUT est constituida por las pginas a las que apuntan los de SCC. Adems aparece una especie de dendritas, que contienen pginas 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). Obsrvese, de todas formas, que la organizacin de la red es dinmica, y cambia con el tiempo. Y no est claro si se habra mantenido, en lneas generales, la estructura que aqu exhibimos.

Qu podemos hacer (o ms bien, qu hace Google?) ante esto? Un truco muy habitual: se trata de conseguir (de una manera razonable) estar en la mejor situacin posible. Por ejemplo, aadiendo toda una serie de probabilidades de transicin (de salida) a todos los vrtices. Esto es, considerando la matriz

Donde p1,. . ., pn es una distribucin de probabilidad y c es un cierto parmetro entre 0 y 1 (en los clculos de Google, del orden de 0.85). Por ejemplo, podramos tomar una distribucin uniforme, pj = 1/n para cada j = 1, . . . , n (con lo que la matriz ya tendra todas sus entradas positivas). Pero podramos elegir otras, y este nuevo grado de libertad permitira hacer bsquedas personalizadas. En trminos del surfista aleatorio, estamos aadiendo la posibilidad de que (con probabilidad 1 c) se aburra de seguir los enlaces y opte por saltar a otras pginas (con arreglo a cierta distribucin de probabilidad).

Вам также может понравиться