Está en la página 1de 33

El Álgebra Lineal detrás de Google

Carlos D’Andrea

I Congreso Nacional de Estudiantes de Matemática


Corrientes, Julio 2012

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Facultad de Matemáticas
Universidad de Barcelona
Licenciatura en Matemática
Master en Matemática Avanzada
Doctorado en Matemática
Otros masters y doctorados
Ingenieria Informática

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Programa de Álgebra Lineal
(Ingeniería Informática)
Polinomios
Números complejos
Sistemas lineales de ecuaciones
Matrices
Espacios vectoriales
Subespacios, transformaciones lineales, etc, etc, etc.
Valores y vectores propios – Diagonalización

Carlos D’Andrea
El Álgebra Lineal detrás de Google
¿Para qué nos hacen estudiar todo esto???

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Álgebra Lineal en la Informática
Programación gráfica
Teoría de grafos (redes sociales,...)
Elaboración eficiente de filtros
Inteligencia artificial
Visión por ordenador
...

Carlos D’Andrea
El Álgebra Lineal detrás de Google
¡Todo esto lo verán después!

Carlos D’Andrea
El Álgebra Lineal detrás de Google
El álgebra lineal detrás de

Google es una variación de la palabra “googol”, que es el


número 10100
Es un buscador de internet
Fue diseñado en 1998 por dos alumnos de doctorado en
informática en Stanford: Sergei Brin y Lawrence Page
Atiende alrededor de 200.000.000 de consultas diarias, tiene
más de 54.000 empleados en todo el mundo

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Una gran familia

El “campus” de Google (Googleplex) se encuentra en Menlo


Park, Sillicon Valley, California
Ocupa casi 50.000 metros cuadrados
Reclutamento constante de jóvenes talentos en todo el mundo

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Google’s got Talent

Carlos D’Andrea
El Álgebra Lineal detrás de Google
¿Cómo se diseña un buscador de internet?
Es un problema de ingeniería matemática:
1 un buen conocimiento del contexto
2 un modelo matemático que lo explique
3 una cuidadosa y eficiente implementación

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Trabajo básico de un buscador de internet
“Censar” las páginas de internet de acceso público
Indexar los datos censados de acuerdo a su importancia con
respecto a las palabras claves
Ordenar estos datos de acuerdo a su importancia con
respecto a las palabras claves

Carlos D’Andrea
El Álgebra Lineal detrás de Google
¡También se requiere resistencia a la
manipulación!

Carlos D’Andrea
El Álgebra Lineal detrás de Google
El algoritmo “PageRank”

Califica páginas indexadas de acuerdo a su “importancia”


dentro de la red
Marca registrada de Google
Lleva su nombre debido a su inventor Larry Page

Carlos D’Andrea
El Álgebra Lineal detrás de Google
El modelo “PageRank”
El universo de páginas de internet públicas es un gran grafo
dirigido donde
cada página web es un nodo
hay una arista orientada entre páginas que citan a otras
páginas

Carlos D’Andrea
El Álgebra Lineal detrás de Google
La “importancia” de una página web
Es alta si
la citan muchas páginas
La citan páginas “importantes”

Carlos D’Andrea
El Álgebra Lineal detrás de Google
“Postulado” PageRank

La importancia xj de la página Pj es proporcional a la suma


de las importancias de las páginas que enlazan con Pj

Carlos D’Andrea
El Álgebra Lineal detrás de Google
El álgebra lineal entra en acción
M es la matriz de adyacencia del grafo de las páginas de
internet

El postulado Pagerank implica

Mt · x = λ · x

Carlos D’Andrea
El Álgebra Lineal detrás de Google
¡Vectores y valores propios!

Mt · x = λ · x
λ es la constante de proporcionalidad ↔ un valor propio de
Mt
x = (x1 , x2 , . . . , xN ) es el vector de “importancias” de las
páginas censadas ↔ un vector propio de Mt (asociado a λ)

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Todo muy bonito, pero...
¿Por qué debería tener valores propios reales Mt ?
¿Cual de ellos elijo?
¿Por qué habría de haber vectores propios todos positivos?
¿Algún tipo de unicidad???

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Teorema 1 (Perron, 1907)

Si M tiene todas sus coeficientes positivos, entonces


existe un valor propio simple λ > 0 tal que Mt · x = λ · x, con
x > 0;
este valor propio es mayor, en módulo, que todos los demás
valores propios de la matriz;
cualquier otro vector propio positivo de Mt es un múltiplo
escalar de x

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Pero...
Nuestra matriz M está MUY lejos de ser positiva

¿Qué hacemos?

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Teorema 2 (Frobenius, 1908–192)
Supongamos que M tiene entradas no negativas y además es
irreducible. Entonces
existe un valor propio simple λ > 0 tal que Mt · x = λ · x, con
x > 0;
este valor propio es mayor o igual, en módulo, que todos los
demás valores propios de la matriz;
cualquier otro vector propio positivo de Mt es un múltiplo
escalar de x

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Matrices irreducibles

Una matriz cuadrada se dice irreducible si no existe ninguna


permutación de sus filas y columnas que la transforme en
 
M11 A12
,
0 M22
con M11 y M22 matrices cuadradas

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Matrices irreducibles = grafos “fuertemente”
conexos

Si se trata de la matriz de incidencia de un grafo dirigido, ser


irreducible significa que puedo ir desde cualquier nodo a otro por un
camino (dirigido)

Carlos D’Andrea
El Álgebra Lineal detrás de Google
¿Es el grafo de internet fuertemente conexo?

¡Ni siquiera es conexo!


Carlos D’Andrea
El Álgebra Lineal detrás de Google
Solución “a la Google” → ¡Matemática aplicada!

“Perturbamos” la matriz M

c M + (1 − c)U 7→ M
donde
c es un parámetro entre 0 y 1 (cgoogle ≈ 0, 85)
 1 1 1

N N ... N
U =  ... ... .. .. 

. . 
1 1 1
N N ... N

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Del existencialismo al Cálculo
No se necesitan
Polinomios característicos
Cálculos de raíces
Descomposición en subespacios invariantes
¡Álgebra Lineal Numérica!

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Método de las potencias (usado por Google)

Si hay un único valor propio λ de módulo máximo entonces,


consideremos la siguiente sucesión
x0 = cualquier vector de RN
Mt ·xn
xn+1 = kMt ·xn k
Entonces
limn→∞ xn = x
t
limn→∞ kMkx·x
nk
nk
= λ
con probabilidad 1

Carlos D’Andrea
El Álgebra Lineal detrás de Google
La misma idea para otros problemas

Clasificación para las eliminatorias de la NBA


Modelos de evolución probabilística
Dinámica de poblaciones
Modelos económicos

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Googleπlogo

El objetivo de Brin y Page era que al menos una de las diez


primeras páginas que se muestren contenga información útil
para el que consulta · · · ¿Tuvieron exito?
En 2004 el valor de Google en el mercado era de alrededor de
25.000.000.000 U$D
El algoritmo PageRank fue patentado por la Universidad de
Stanford, y Google tiene derechos exclusivos sobre esa patente.
Stanford recibió acciones por esa patente que fueron vendidos
en 2005 por 336.000.000 U$D
Desde febrero de 2011 Google utiliza combinadamente los
algoritmos PageRank y Google Panda

Carlos D’Andrea
El Álgebra Lineal detrás de Google
¿Qué hemos aprendido hoy?

Grafos y sus propiedades → Teoría de Grafos


Matrices con entradas positivas → Matrices estocásticas
Cálculo computacional de vectores y valores propios →
Álgebra Lineal Numérica
Teoremas de Perron y Frobenius → Análisis funcional
PageRank y Panda → Algoritmos de búsqueda

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Para saber más

“El secreto de Google y el Álgebra Lineal”, P.


Fernández, Bol. Soc. Esp. Mat. Apl. 30 (2004), 115–141
“The $25, 000, 000, 000 Eigenvector: The Linear
Algebra behind Google”, Kurt Bryan & Tanya Leise, Siam
Review 48 (3), 569–581, 2006
“Les Matemàtiques de Google: l’algorisme
PageRank”, Joan Gimbert, Butlletí de la Societat Catalana de
Matemàtiques, Vol 26, 1, 211, 29–55

Carlos D’Andrea
El Álgebra Lineal detrás de Google
Muchas gracias
http://atlas.mat.ub.es/personals/dandrea

Carlos D’Andrea
El Álgebra Lineal detrás de Google

También podría gustarte