Autor: Dr. José Martín Méndez González
Es el año de 1902 y, tras haber cursado sus estudios de matemáticas y física, Oskar Perron obtiene su doctorado por la universidad de Múnich con una tesis de 43 páginas que versa “Sobre la rotación de un cuerpo rígido alrededor de su centro de gravedad por la acción de fuerzas externas”. Tiene 52 años y su próximo paso es trabajar con una de las mentes matemáticas más brillantes del momento, David Hilbert, quien hace apenas dos años atrás ha formulado una lista de 23 problemas que llevan su nombre y que definirán la agenda de otros investigadores a lo largo del siglo XX.
Uno de los productos surgidos de esos años de trabajo (1907) es “Sobre la teoría de matrices” donde expone un teorema que lleva su nombre. El teorema se refiere a una clase de matrices cuyas entradas son números positivos. Imaginemos una matriz como una tabla de Excel con el mismo número de columnas y filas (matriz cuadrada) con valores estrictamente positivos en cada celda; ninguna celda debe ser cero. Entonces, el teorema establece que puede extraerse de esa matriz de números un vector particular y único (denominado vector propio o eigenvector) que puede utilizarse como un indicador de jerarquía. Un par de años después, otro matemático alemán, Georg Frobenious, extiende un poco los alcances del teorema de Oskar Perron para incluir matrices cuadradas de una estructura particular, pero con la posibilidad de contener ceros.
¿Puede ser de utilidad éste aparente conocimiento inútil? Para dos estudiantes—uno informático, el otro matemático— de doctorado en la universidad de Standford parece ser que sí.
El problema que querían resolver en 1995 era hallar información relevante a partir de una gran cantidad de datos. Sólo habían pasado un par de años desde la creación de la Web, y la manera en que funcionaban los incipientes motores de búsqueda como Altavista o Yahoo eran por búsqueda de coincidencia. Ingresabas el texto o palabras clave sobre el tema en el que estabas interesado, y el motor te devolvía aquellas páginas con mayor número de coincidencia. Nada te garantizaba que las páginas listadas fueran relevantes para contestar la pregunta en mente o satisfacer el interés sobre un tema específico.
La pregunta a contestar era: ¿cómo buscar de manera eficiente aquellas páginas que tuvieran información relevante, de calidad sobre lo que estabas buscando en la Web? Esta pregunta no era trivial de responder, sobre todo dadas las características de la Web: enorme (del orden de millones de páginas), dinámica (su contenido puede cambiar en un 23% o más diariamente), auto-organizada (casi cualquier persona puede crear y desaparecer páginas o posts; no existe un bibliotecario digital que clasifique la información según un estándar), e hiperconectada. Sin embargo, estos estudiantes fueron capaces de sacarle provecho a ésta última característica.
El razonamiento era bastante simple, aunque su implementación era un poco más complicada: si una página de internet era importante entonces otras páginas la citarían o tendrían un enlace a ella. Así, tal cual. Podría decirse que los links de una página a otra funcionan como recomendaciones o votos. A mayor número de recomendaciones o links que lleguen a una página mayor la importancia de esta. Obviamente, la relevancia o el rango que ocupa la pagina desde la cual emanan los links o recomendaciones también tiene un peso. ¿Cómo identificar la relevancia o jerarquía de estas páginas? ¿Cómo debe construirse el algoritmo de búsqueda para que el primer resultado sea el que con mayor probabilidad resolverá tu pregunta o interés?
Al pensar a la Web como una grafo dirigido, donde los nodos son las páginas y los enlaces (links) que iban de una página a otra como enlaces dirigidos (es decir, flechas que indican el nodo de origen y el nodo de destino), les permitió a estos estudiantes de Stanford hacer uso de la teoría de grafos que está estrechamente relacionada con la teoría de matrices y sus propiedades.
Con ello en mente, construyeron la siguiente ecuación matricial, considerando que se tiene un total de “N” páginas en la Web (es decir, matrices del orden de millones): ????=????????+(1−????)1????
Para contabilizar la probabilidad de que un usuario visite las páginas de internet siguiendo “el camino” que indican los links o hipervínculos en la Web en lugar de hacerlo al azar, definieron el parámetro α. Este parámetro α puede tomar valores entre 0 y 1, y, específicamente, controla la proporción de tiempo que un usuario invierte en seguir los enlaces o hipervínculos de las páginas en lugar de elegir al azar (o por aburrimiento) otra página o vínculo. Por ejemplo, si α=0.6, quiere decir que el usuario seguirá la estructura de links de la Web en un 60% del tiempo mientras que invertirá un 40% en saltar de manera aleatoria a otra página.
La matriz “S” es la que codifica la estructura de la Web, y nos dice qué nodos están conectados entre sí. En particular, como la Web la modelaron como un grafo dirigido, las filas de la matriz “S” contabilizan cuántos links salen de ese nodo hacia los restantes nodos de la red.
Por supuesto, no todos los nodos se conectan entre sí de manera directa, por lo que habrá algunos espacios en cero en la matriz. Más aún, puede suceder que existan nodos de los cuales no emana ningún link, sólo le llegan. Estos nodos solitarios ocasionan que la matriz pierda ciertas propiedades matemáticas que tienen un impacto en garantizar la existencia de una solución única. Para resolverlo, los estudiantes de Stanford asignaron un valor en la matriz “S” de 1/N a esos nodos; es decir, cuando el usuario llegara estos “callejones sin salida” (páginas o nodos sin links de salida), el usuario podría saltar a cualquiera otra página de la Web con la misma probabilidad.
En cuanto a las columnas de la matriz “S”, éstas codifican el número de links que llegan a cada nodo. Adicionalmente, la sumatoria de cada una de sus columnas debe ser 1, por lo que cada elemento en las columnas se divide por el número total de links que le llegaron a ese nodo.
Las modificaciones anteriores permiten aplicar a la matriz “G” de manera directa los teoremas de Oskar Perron y Georg Frobenious. Estos teoremas garantizan (no importa el tamaño de la matriz) la existencia de un vector solución (vector de Perron) con sus elementos todos positivos, cuyos valores representan el orden de las respuestas en las consultas del motor de búsqueda. Ese vector es un indicador de jerarquía, y es, en esencia, lo que hay detrás del motor de búsqueda más consultado del mundo: Google. El algoritmo creado por los estudiantes de Stanford Larry Page y Sergei Brin se denomina PageRank.
Hay que decir que los teoremas de Perron y Frobenious garantizan la existencia del vector solución, pero no dice cómo calcularlo. En esto también los creadores de Google se vieron listos, y seleccionaron un método de solución iterativo que convergía rápidamente a la solución, algo sumamente competitivo dado que la matriz que define la estructura de la Web está en el orden de billones.
Ahora bien, una cosa es haber desarrollado una idea ganadora como pocas y otra muy distinta lograr fundar una empresa que genere ganancias utilizando esa idea. Alguien que apoyó a Page y Brin en sus inicios, con dinero y equipo para que probaran el concepto contenido en la ecuación arriba descrita fue el profesor mexicano Héctor García Molina (lamentablemente ya fallecido) quien, en los años noventa, ostentaba el cargo de director del Laboratorio de Ciencias Computacionales de la Universidad de Stanford, donde Page y Brin eran sus estudiantes de doctorado. Con este apoyo inicial del profesor Molina, Page y Brin fueron capaces de desarrollar un demo. Con ese demo funcional, otro profesor de Stanford les consiguió una entrevista con un inversor ángel. Tan sólo diez minutos después de ver el demo, el inversor fue a su auto y les extendió un cheque por $100,000 dólares. Ese capital de inicio les permitió a Page y Brin escalar el proceso y obtener más rondas con inversores quienes, eventualmente, lograron reunir millones de dólares para fundar la compañía Google. El resto, es historia. Y los productos tecnológicos derivados de esa ecuación son ubicuos en casi cualquier dispositivo electrónico conectado a la Web. De acuerdo con una publicación, hasta septiembre de 2021, Google tiene un valor de $320 billones de dólares, con ganancias de alrededor de $97 billones de dólares anuales. Si Google fuera un país, éste valdría aproximadamente un tercio de lo que vale México (el PIB de México en 2020 fue de $1076 billones de dólares). Los únicos recursos naturales de Google son las mentes detrás de los algoritmos. Sin petróleo, costas, ríos, etc. Lo que hace el país Google es gestionar datos y extraer conocimiento de ellos (para bien o para mal, ese es otro tema).
Una de las razones por las que me gusta la historia de Google es porque es un buen ejemplo que rompe con la mentalidad con la que a veces se topan algunos investigadores, estudiantes o personas emprendedoras: “¿Para qué investigas eso? A nadie le interesa. ¿Qué utilidad puede tener eso?” Podemos experimentar sin darnos cuenta diariamente, con tan sólo dar Enter en nuestro teclado que, detrás de esas fracciones de segundo que tardan en aparecer los resultados que Google nos arroja, se encuentra un teorema de más de un siglo de antigüedad (y que puede consultarse en cualquier libro de texto de álgebra lineal universitario), de cuando no existían computadoras como las conocemos ni la Web. Pero hace falta un poco de educación, suerte y personas que crean en las ideas para ayudar a cristalizarlas.
El nombre de esta columna proviene de una frase de Winston Churchill que pronunció proféticamente en 1943: “Los imperios del futuro son imperios de la mente”. Google es tan sólo un ejemplo de la materialización de esa frase. Muchas más vendrán (nuevamente, para bien o para mal). Mi pregunta—casi un llamado a la acción—al escribir esto es: ¿México será un vasallo o un imperio en ese futuro?