1. Conmutar
  2. Computar
  3. Deducir
  4. Probabilidad
  5. Información
  6. Vectores
  7. Derivadas
  8. Optimizar
  9. Neuronas
  10. Generalizar
  11. Atención
  12. LLM

Capítulo 05 · Álgebra lineal

Palabras convertidas en flechas

Un ordenador no sabe qué es un gato, pero sabe multiplicar matrices a una velocidad enorme. El álgebra lineal permite representar palabras, imágenes y conceptos como vectores, y medir su parecido con un simple producto escalar.

Si se abre por dentro un modelo de lenguaje, lo que aparece son números organizados en matrices: cientos de miles de millones de ellos. Responder una pregunta consiste, casi por entero, en multiplicar vectores por matrices. Por eso las GPU, chips diseñados para multiplicar matrices al dibujar videojuegos, se convirtieron en el motor de la IA.

El álgebra lineal es el idioma en el que los modelos representan el mundo. Hermann Grassmann formuló en 1844 la idea de un espacio de dimensión arbitraria y Arthur Cayley definió en 1858 el producto de matrices. Ninguno podía imaginar que estaban escribiendo el lenguaje de la IA.

Vectores y producto escalar

Un vector 𝐮=(u1,…,ud)∈ℝd es una lista de d números que se puede ver como un punto o como una flecha desde el origen. La operación clave es el producto escalar:

𝐮⋅𝐯=∑i=1duivi=‖𝐮‖‖𝐯‖cos⁡θ.

Mide cuánto «apuntan en la misma dirección» dos vectores. Si se divide por las longitudes queda la similitud coseno, cos⁡θ, que vale 1 para vectores paralelos, 0 para perpendiculares y −1 para opuestos. Que nunca se salga de ese rango lo garantiza un clásico:

Teorema (desigualdad de Cauchy-Schwarz)

Para todo 𝐮,𝐯∈ℝd, |𝐮⋅𝐯|≤‖𝐮‖‖𝐯‖, con igualdad si y solo si son proporcionales.

Demostración

Si 𝐯=𝟎 es trivial. Si no, para todo λ∈ℝ, 0≤‖𝐮−λ𝐯‖2=‖𝐮‖2−2λ𝐮⋅𝐯+λ2‖𝐯‖2. Un polinomio de grado 2 en λ que nunca es negativo tiene discriminante ≤0: 4(𝐮⋅𝐯)2−4‖𝐮‖2‖𝐯‖2≤0.

Esta operación tan sencilla, multiplicar y sumar, es la que usa el mecanismo de atención para decidir qué palabras de una frase deben fijarse en cuáles.

Embeddings: el significado como geometría

¿Cómo se convierte una palabra en un vector? La respuesta viene de la lingüística. En 1954 Zellig Harris formuló la hipótesis distribucional: las palabras que aparecen en contextos parecidos tienen significados parecidos. John R. Firth lo resumió en 1957: «conocerás una palabra por la compañía que tiene».

Un embedding asigna a cada palabra un vector de forma que las palabras con contextos parecidos quedan cerca. En 2003 Yoshua Bengio y sus colaboradores entrenaron por primera vez estos vectores junto con una red neuronal que predecía la palabra siguiente. En 2013 Tomas Mikolov y su equipo en Google publicaron word2vec, que entrenaba embeddings con miles de millones de palabras en pocas horas, y descubrieron algo inesperado: las relaciones entre conceptos se convierten en direcciones.

𝐯rey−𝐯hombre+𝐯mujer≈𝐯reina.
Un espacio de embeddings de juguete en dos dimensiones. Los reales tienen entre cientos y miles, y se aprenden de los datos en lugar de colocarse a mano. Elige tres palabras: la flecha discontinua es B→A trasladada a C, y el resultado se compara con todas las palabras para encontrar la más cercana. Si la diferencia «rey − hombre» codifica algo parecido a «realeza», sumarla a «mujer» debería llevar a «reina».

Matrices: funciones que transforman el espacio

Una matriz W de tamaño m×d define una transformación lineal 𝐱↦W𝐱 de ℝd en ℝm. Se entiende de un vistazo mirando sus columnas: la columna j es el destino del vector unitario 𝐞j. Como la transformación respeta sumas y escalados, conocer el destino de la base basta para conocerlo todo:

W𝐱=x1(columna 1)+x2(columna 2)+…+xd(columna d).
La matriz (abcd) transforma la cuadrícula. Las flechas de colores son las columnas de la matriz, es decir, los destinos de 𝐞1 y 𝐞2. El determinante ad−bc es el factor por el que se multiplican las áreas. Si es negativo el plano se refleja, y si es cero se aplasta sobre una recta y la información perdida ya no se puede recuperar.

Multiplicar matrices equivale a componer transformaciones: W2(W1𝐱)=(W2W1)𝐱. De esta propiedad tan inocente sale una consecuencia decisiva para las redes neuronales:

Observación (las capas lineales se colapsan)

Una composición de transformaciones lineales es lineal: WL⋯W2W1=W. Apilar cien capas lineales no da más poder expresivo que una sola.

Por eso cada capa de una red neuronal aplica, después de la matriz, una función no lineal σ:

𝐡=σ(W𝐱+𝐛).

Deformar, doblar, deformar, doblar… Con esa receta se puede aproximar cualquier función continua, como veremos con el teorema de aproximación universal.

La sorprendente amplitud de las dimensiones altas

Los embeddings de un LLM moderno tienen entre unas mil y unas veinte mil dimensiones. ¿Es eso mucho o poco para representar todos los conceptos que maneja un modelo? La intuición tridimensional engaña: en dimensión alta hay muchísimo espacio.

Teorema (lema de Johnson-Lindenstrauss, 1984)

Para todo 0<ε<1 y todo conjunto de n puntos de ℝD existe una aplicación lineal f:ℝD→ℝk con k=O(ε−2log⁡n) tal que, para cada par de puntos,

(1−ε)‖𝐮−𝐯‖2≤‖f(𝐮)−f(𝐯)‖2≤(1+ε)‖𝐮−𝐯‖2.

Además, una proyección aleatoria sirve con alta probabilidad.

La dimensión necesaria crece solo con el logaritmo del número de puntos. La otra cara de la misma geometría: en ℝk caben exponencialmente muchas direcciones casi perpendiculares entre sí. La hipótesis de la superposición, que investigan los equipos de interpretabilidad, sostiene que los modelos aprovechan esto para codificar muchos más conceptos que dimensiones tienen, cada uno en una dirección casi ortogonal a las demás.

Rango bajo: la esencia de una matriz

Toda matriz real, por grande que sea, se descompone en tres transformaciones sencillas: un giro, un estiramiento a lo largo de los ejes y otro giro.

Teorema (descomposición en valores singulares)

Toda W∈ℝm×d se escribe como W=UΣV⊤, con U,V ortogonales y Σ diagonal, cuyos elementos σ1≥σ2≥…≥0 son los valores singulares. Según el teorema de Eckart-Young (1936), quedarse con los r mayores da la mejor aproximación de rango r de W.

Muchas matrices reales tienen casi toda su «información» concentrada en unos pocos valores singulares. Esta idea sostiene técnicas actuales como LoRA (2021), que adapta un LLM enorme a una tarea nueva entrenando solo una corrección de rango bajo, W+BA, con B y A diminutas, en lugar de reentrenar los miles de millones de parámetros de W.

Ya tenemos dónde guardar el conocimiento: en los números de las matrices. Falta el procedimiento para elegir esos números, y para eso hay que saber cómo cambia el error cuando se mueve cada uno. Eso es el cálculo.

Referencias

  1. A. Cayley (1858). «A Memoir on the Theory of Matrices». Philosophical Transactions of the Royal Society, 148.
  2. Z. Harris (1954). «Distributional Structure». Word, 10(2–3).
  3. W. B. Johnson y J. Lindenstrauss (1984). «Extensions of Lipschitz mappings into a Hilbert space». Contemporary Mathematics, 26.
  4. Y. Bengio, R. Ducharme, P. Vincent y C. Jauvin (2003). «A Neural Probabilistic Language Model». JMLR, 3.
  5. T. Mikolov, K. Chen, G. Corrado y J. Dean (2013). «Efficient Estimation of Word Representations in Vector Space». arXiv:1301.3781.
  6. E. J. Hu et al. (2021). «LoRA: Low-Rank Adaptation of Large Language Models». arXiv:2106.09685.
  7. N. Elhage et al. (2022). «Toy Models of Superposition». Transformer Circuits Thread.