Módulo 3: Similaridad y Distancia
4. Similaridad Coseno: La Métrica Clave para AI
Descripción
La similaridad coseno mide el ángulo entre dos vectores, no la distancia. Es la métrica estándar en semantic search porque solo importa la dirección (tipo de concepto), no la magnitud (frecuencia, longitud).
Fórmula
cos(A, B) = (A · B) / (||A|| × ||B||)
Donde:
- A · B = producto punto = a₁×b₁ + a₂×b₂ + ... + aₙ×bₙ
- ||A|| = magnitud de A = √(a₁² + a₂² + ... + aₙ²)
Si A y B están normalizados (magnitud = 1):
cos(A, B) = A · B (producto punto simple)
Ejemplo 2D
A = [3, 4]
B = [6, 8]
Producto punto: 3×6 + 4×8 = 18 + 32 = 50
||A|| = √(9 + 16) = 5
||B|| = √(36 + 64) = 10
cos(A, B) = 50 / (5 × 10) = 50/50 = 1.0
Interpretación: Coseno = 1 → Vectores tienen la misma dirección (paralelos).
Valores de coseno
cos = 1.0 → Idénticos (ángulo 0°)
cos = 0.9 → Muy similares
cos = 0.5 → Moderadamente similares
cos = 0.0 → Ortogonales (perpendiculares, 90°)
cos = -1.0 → Opuestos (ángulo 180°)
Por qué coseno en AI
Razón 1: Ignora magnitud
[3, 4] (magnitud 5) y [6, 8] (magnitud 10)
→ Misma dirección → coseno = 1.0
En embeddings, magnitud puede ser ruido. Coseno lo elimina.
Razón 2: Robusto en alta dimensión
En 1536D:
- Distancias euclidianas → Todas similares (difícil distinguir)
- Ángulos (coseno) → Más discriminativos (fácil distinguir)
Razón 3: Valores interpretables
coseno > 0.9 → Muy similar (sinónimos)
coseno 0.7-0.9 → Similar (conceptos relacionados)
coseno < 0.5 → Poco similar
Ejemplo en semantic search
Query: "perro" → [0.23, -0.45, ..., -0.34]
Doc 1: "gato" → [0.25, -0.43, ..., -0.32] → coseno = 0.95 ✅
Doc 2: "auto" → [9.34, 5.21, ..., 7.56] → coseno = 0.12 ❌
Doc 1 tiene coseno alto → Relevante.
Comparación: Euclidiana vs Coseno
↑
B • | • A (A y B: misma dirección, diferentes magnitudes)
\|/
•────→
Euclidiana: distancia(A, B) = grande (diferentes magnitudes)
Coseno: cos(A, B) = 1.0 (misma dirección)
Para embeddings: Coseno es mejor (solo dirección importa).
Próxima cápsula: 05-metrics-comparison.md — Trade-offs entre métricas.