🧮 Computational Mathematics

Inicio · Parte 16 — Matemática de Transformers, modelos generativos, grafos y RL

322 — Embeddings y similitud coseno

experto clase 2 de 20 4 horas demostración cosine_similarity

El coseno ignora la magnitud, y en embeddings la magnitud suele ser frecuencia, no significado.

Fórmulas

cos(a,b) = (a·b) / (‖a‖·‖b‖)
rango [−1, 1]
invariante al escalado de cualquiera de los dos vectores

Desarrollo

La similitud coseno mide el ángulo entre dos vectores, descartando sus longitudes. En espacios de embeddings es la medida estándar, y la razón es concreta: la norma de un embedding tiende a correlacionar con la frecuencia del término en el corpus, que no es información semántica.

La diferencia con la distancia euclídea se ve mejor con un caso extremo. Un vector y su doble apuntan exactamente en la misma dirección, así que su coseno es 1 —máxima similitud—, mientras que su distancia euclídea puede ser enorme. Para «¿hablan de lo mismo?» el coseno acierta y la distancia no.

El producto escalar sin normalizar es lo que usa la atención, y ahí la magnitud sí influye deliberadamente: un token puede aprender a tener clave de norma grande para atraer más atención. Es una decisión de diseño distinta, no un descuido, y por eso la atención necesita el factor 1/√d mientras que la búsqueda por similitud usa coseno.

La consecuencia de ingeniería es que si los vectores se normalizan previamente, el producto escalar es el coseno. Las bases de datos vectoriales explotan esto: normalizan al indexar y luego usan producto escalar, que es más rápido y está mejor optimizado que calcular normas en cada consulta.

Ejemplo trabajado

Coseno frente a distancia euclídea sobre la misma consulta.

consulta: (0,8 ; 0,5 ; 0,2 ; 0,1)

candidato          coseno     distancia euclídea
muy relacionado   0,994667        0,100000
relacionado       0,787527        0,608276
ortogonal         0,0xxxxx        1,352770

Efecto del escalado:
  multiplicar un candidato por 10
    coseno:    no cambia                            ✓
    distancia: se multiplica por ~10                ✗

En embeddings la norma suele reflejar frecuencia,
no significado: por eso se usa coseno.

Qué calcula el laboratorio

Similitud coseno: la métrica estándar entre embeddings.

python classes/part-16-matematica-de-transformers-modelos-generativos-grafos-y-rl/322-embeddings-y-similitud-coseno/lab.py
compmath run 322

Salidas del laboratorio (8)

Muestra de la ejecución real

{
  "consulta": [
    0.8,
    0.5,
    0.2,
    0.1
  ],
  "similitudes": {
    "muy_relacionado": 0.994667,
    "relacionado": 0.787527,
    "ortogonal": 0.0,
    "escalado_x10": 1.0
  },
  "distancias_euclideas": {
    "muy_relacionado": 0.1,
    "relacionado": 0.608276,
    "ortogonal": 1.352775,
    "escalado_x10": 8.725824
  },
  "el_escalado_no_afecta_al_coseno": true,
  "el_escalado_si_afecta_a_la_distancia": true,
  "rango": "[-1, 1]"
}

Errores comunes

Dónde se usa

Búsqueda semántica, bases de datos vectoriales, RAG, sistemas de recomendación y deduplicación de documentos.

Idea rectora de la parte

La escala 1/√d evita que el producto punto sature la softmax en alta dimensión.

Error a evitar

Confundir temperatura alta con mayor calidad en lugar de mayor entropía.

Conexión con IA

Esta parte es la traducción matemática directa de los papers que definen el estado del arte actual.

Bibliografía de la clase

Archivos de la clase