Módulo 1: Introducción a Vectores

6. Por Qué Vectores en AI: De Palabras a Geometría

Descripción de la cápsula

En esta cápsula vas a entender por qué los sistemas de AI usan vectores para representar texto. Hasta ahora viste QUÉ son vectores (dirección + magnitud), CÓMO visualizarlos (2D/3D/alta dimensión) y CÓMO operarlos (suma, resta, escalado). Ahora verás POR QUÉ todo eso importa en AI: cómo convertir palabras en vectores, por qué vectores cercanos capturan significado similar, y cómo eso habilita semantic search y RAG.

Esta es la cápsula que conecta geometría con lenguaje. Cuando termines, entenderás la "hipótesis distribucional" (palabras usadas en contextos similares tienen significados similares), por qué embeddings capturan esa intuición, y cómo semantic search usa geometría vectorial para buscar significado en lugar de solo palabras exactas. Esta intuición es la base de TODO el stack de AI moderna: LLMs, RAG, vector databases, semantic search.


El problema: ¿Cómo representar significado?

Problema 1: Texto como strings

Si representas texto como strings (cadenas de texto), no puedes hacer operaciones matemáticas:

"perro" + "gato" = ❓ (no está definido)
distancia("perro", "gato") = ❓ (no hay forma natural de medirlo)
"perro" vs "automóvil" = ❓ (no puedes comparar cuantitativamente)

Consecuencia: No puedes buscar "textos similares" de forma automática. Solo puedes hacer búsqueda exacta (keyword search): "perro" ≠ "can" ≠ "mascota", aunque significan cosas relacionadas.


Problema 2: One-hot encoding (representación tradicional)

En ML clásico, las palabras se representaban con one-hot encoding: un vector con 1 en la posición de la palabra y 0 en el resto.

Ejemplo (vocabulario de 5 palabras):

"perro" = [1, 0, 0, 0, 0]
"gato" = [0, 1, 0, 0, 0]
"auto" = [0, 0, 1, 0, 0]
"casa" = [0, 0, 0, 1, 0]
"árbol" = [0, 0, 0, 0, 1]

Problemas:

1. Todas las palabras están igualmente distantes:

distancia("perro", "gato") = √2
distancia("perro", "auto") = √2

No hay forma de capturar que "perro" y "gato" son más similares que "perro" y "auto".


2. Alta dimensionalidad:

Si tu vocabulario tiene 50,000 palabras, cada vector tiene 50,000 dimensiones (casi todas 0). Muy ineficiente.


3. No captura significado:

Los vectores son ortogonales (perpendiculares): no hay relación geométrica entre "perro" y "gato", aunque conceptualmente estén relacionados.


La solución: Embeddings densos

En lugar de representar palabras con vectores sparse (mayoría 0s) como one-hot, los embeddings modernos son vectores densos (todos los valores son números reales no-cero) de menor dimensionalidad (300D-1536D), donde:

  • Palabras similares tienen vectores cercanos
  • Palabras diferentes tienen vectores lejanos
  • Relaciones semánticas se capturan con direcciones (ej: género, tamaño, tiempo)

Ejemplo (simplificado a 2D para ilustrar):

      ↑
      |
    2 | •"gato" •"perro"  ← Animales domésticos (cercanos)
      |
    1 |
      |
    0 |─────────────────→
      |            •"auto"  ← Objeto (lejano de animales)
   -2 |

Ahora sí:

  • distancia("perro", "gato") = pequeña → similares
  • distancia("perro", "auto") = grande → diferentes

Esto es el corazón de semantic search: Representar texto como vectores de modo que la geometría (cercanía) capture significado (similaridad semántica).


La hipótesis distribucional: "Dime con quién andas y te diré quién eres"

Hipótesis distribucional (Firth, 1957):

"You shall know a word by the company it keeps."
(Conocerás una palabra por la compañía que tiene)

Traducción práctica: Palabras que aparecen en contextos similares tienen significados similares.

Ejemplo:

Frases con "perro":

  • "El perro ladra en el jardín."
  • "Mi perro es muy juguetón."
  • "Los perros son animales leales."

Frases con "gato":

  • "El gato maúlla en el jardín."
  • "Mi gato es muy independiente."
  • "Los gatos son animales curiosos."

Observación: "perro" y "gato" aparecen en contextos muy similares:

  • Sujetos de frases sobre comportamiento animal
  • Acompañados de verbos relacionados con sonidos o acciones
  • En contextos de mascotas y hogares

Conclusión: "perro" y "gato" tienen significados relacionados (ambos son animales domésticos).


Contraste con "automóvil":

Frases con "automóvil":

  • "El automóvil acelera en la carretera."
  • "Mi automóvil necesita gasolina."
  • "Los automóviles son medios de transporte."

Contextos muy diferentes de "perro" y "gato":

  • Verbos: acelera, necesita gasolina (no son biológicos)
  • Temas: transporte, mecánica (no son vida animal)

Conclusión: "automóvil" tiene significado diferente de "perro" y "gato".


Cómo esto se traduce a vectores:

Los modelos de embeddings (Word2Vec, GloVe, BERT, GPT, etc.) aprenden vectores de modo que:

  • Palabras con contextos similares → vectores cercanos
  • Palabras con contextos diferentes → vectores lejanos

Resultado: La geometría del espacio vectorial refleja la semántica del lenguaje.

Analogía: Si dos personas tienen amigos en común, tienen "contextos sociales" similares → probablemente tengan intereses similares. Si una persona solo tiene amigos en el mundo deportivo y otra solo en el mundo académico, sus "contextos sociales" son diferentes → intereses diferentes. Los embeddings hacen lo mismo con palabras: "amigos en común" = "palabras que aparecen en contextos similares".


Cómo se entrenan embeddings

Nota: No vamos a entrenar embeddings en esta guía (eso requiere código y mucha data). Solo verás la intuición conceptual de cómo los modelos aprenden vectores.


Método clásico: Word2Vec (Mikolov et al., 2013)

Idea: Entrenar una red neuronal para predecir palabras en contexto.

Dos variantes:

1. Skip-gram: Dada una palabra, predice las palabras alrededor (contexto).

Ejemplo:

Frase: "El perro corre rápido"

Tarea: Dada "perro", predecir ["el", "corre", "rápido"]

Entrenamiento:

  • La red aprende un vector para "perro"
  • Ajusta el vector para que pueda predecir correctamente las palabras del contexto
  • Después de millones de ejemplos, palabras con contextos similares acaban con vectores similares

2. CBOW (Continuous Bag of Words): Dado el contexto, predice la palabra central.

Ejemplo:

Frase: "El [?] corre rápido"

Tarea: Dado ["el", "corre", "rápido"], predecir "perro"

Resultado: Misma intuición que skip-gram; palabras intercambiables en contextos similares acaban con vectores cercanos.


Método moderno: Transformers (BERT, GPT, etc.)

Modelos como BERT y GPT aprenden embeddings contextuales: el vector de una palabra cambia según el contexto.

Ejemplo:

"El banco está cerca del río" → "banco" (orilla)
"Fui al banco a sacar dinero" → "banco" (institución financiera)

En embeddings contextuales, "banco" tiene vectores diferentes en cada frase (contexto diferente).

Ventaja: Captura polisemia (palabras con múltiples significados).

Cómo se entrenan: Tareas como "predecir palabras enmascaradas" o "predecir siguiente palabra". Después de entrenamiento en miles de millones de palabras, el modelo aprende representaciones vectoriales que capturan significado contextual.


No hace falta que entiendas todos los detalles técnicos. Solo recuerda:

  • Los embeddings se entrenan con grandes cantidades de texto
  • El modelo aprende vectores donde palabras con contextos similares acaban cerca
  • El resultado es un espacio geométrico donde cercanía = similaridad semántica

Por qué vectores cercanos = significados similares

Después del entrenamiento (millones de ejemplos de texto), el modelo ha ajustado los vectores de modo que:

1. Palabras sinónimas están cercanas:

Vector("perro") ≈ Vector("can")
Vector("auto") ≈ Vector("automóvil") ≈ Vector("coche")

2. Palabras relacionadas (mismo dominio) están cercanas:

Vector("perro") cerca de Vector("gato") cerca de Vector("mascota")
Vector("rey") cerca de Vector("reina") cerca de Vector("monarca")

3. Palabras no relacionadas están lejanas:

Vector("perro") lejos de Vector("auto")
Vector("rey") lejos de Vector("silla")

4. Relaciones semánticas se capturan con direcciones:

Vector("rey") - Vector("hombre") + Vector("mujer") ≈ Vector("reina")

Interpretación: La "dirección género" es capturada por la geometría

Por qué esto funciona: Durante el entrenamiento, el modelo vio millones de frases como:

  • "El rey gobierna el reino"
  • "La reina gobierna el reino"
  • "El hombre trabaja en la fábrica"
  • "La mujer trabaja en la fábrica"

Conclusión del modelo: "rey" y "reina" aparecen en contextos muy similares (gobernar reino); la diferencia principal es género (rey ↔ hombre, reina ↔ mujer). Esa diferencia se captura con una dirección en el espacio vectorial (vector de género). Por eso la operación rey - hombre + mujer funciona: estás "quitando género masculino" y "añadiendo género femenino".


De keywords a semántica: El salto fundamental

Keyword search (búsqueda tradicional):

Cómo funciona: Buscar coincidencias exactas de palabras (o con stemming/lemmatización básicos).

Ejemplo:

Query: "perro"

Documentos:

  • Doc 1: "El perro es un animal doméstico" → ✅ Match (contiene "perro")
  • Doc 2: "El can es un animal doméstico" → ❌ No match (no contiene "perro")
  • Doc 3: "Los gatos son mascotas" → ❌ No match (no contiene "perro")

Problemas:

  • No encuentra sinónimos ("can")
  • No encuentra conceptos relacionados ("mascota", "gato")
  • Solo busca palabras exactas

Semantic search (búsqueda semántica):

Cómo funciona: Convertir query y documentos a vectores, buscar vectores cercanos (similaridad geométrica).

Ejemplo:

Query: "perro" → Vector query = [0.23, -0.45, ..., -0.34] (1536D)

Documentos:

  • Doc 1: "El perro es un animal doméstico" → Vector doc1 = [0.23, -0.45, ..., -0.34]
  • Doc 2: "El can es un animal doméstico" → Vector doc2 = [0.24, -0.44, ..., -0.33]
  • Doc 3: "Los gatos son mascotas" → Vector doc3 = [0.25, -0.43, ..., -0.32]
  • Doc 4: "Los autos tienen ruedas" → Vector doc4 = [9.34, 5.21, ..., 7.56]

Similaridad (coseno). Los valores son ilustrativos: sirven para mostrar el orden relativo, no son medidas reales de un modelo concreto.

  • similarity(query, doc1) ≈ muy alta (contiene "perro")
  • similarity(query, doc2) ≈ alta ("can" es sinónimo de "perro")
  • similarity(query, doc3) ≈ media-alta ("gato" es concepto relacionado)
  • similarity(query, doc4) ≈ baja ("auto" no está relacionado)

Resultado: Retorna Doc1, Doc2, Doc3 (todos relacionados con "perro") aunque Doc2 y Doc3 no contengan la palabra "perro".

Ventajas:

  • ✅ Encuentra sinónimos ("can")
  • ✅ Encuentra conceptos relacionados ("gato", "mascota")
  • ✅ Entiende significado, no solo palabras exactas

Esto es el salto de keyword a semántica: En lugar de buscar palabras, buscas significados usando geometría vectorial.


Aplicaciones prácticas en AI Engineering

Ahora que entiendes por qué vectores capturan significado, puedes ver cómo se usan en productos:

1. Semantic search (búsqueda semántica)

Caso de uso: Buscador de documentación interna.

Flujo:

  1. Usuario pregunta: "¿Cómo configurar autenticación?"
  2. Query → embedding (1536D)
  3. Buscar documentos con embeddings cercanos
  4. Retornar top-5 documentos más relevantes (aunque no contengan las palabras exactas)

Por qué funciona: "configurar autenticación" tiene vector cercano a documentos sobre "setup de auth", "login configuration", "OAuth setup", aunque no usen las mismas palabras.


2. RAG (Retrieval-Augmented Generation)

Caso de uso: Chatbot sobre base de conocimiento de empresa.

Flujo:

  1. Usuario pregunta: "¿Qué beneficios tiene el plan premium?"
  2. Query → embedding
  3. Buscar documentos relevantes en vector database (semantic search)
  4. Pasar documentos + query a LLM (GPT-4, Claude)
  5. LLM genera respuesta basada en documentos recuperados

Por qué funciona: Semantic search encuentra documentos relevantes (aunque no mencionen "beneficios" o "premium" textualmente); LLM usa esos documentos para generar respuesta precisa y contextual.


3. Recomendaciones

Caso de uso: Sugerir artículos relacionados.

Flujo:

  1. Usuario lee artículo "Introducción a vectores"
  2. Artículo → embedding
  3. Buscar artículos con embeddings cercanos
  4. Sugerir: "Espacios vectoriales", "Similaridad coseno", "Embeddings en AI"

Por qué funciona: Artículos sobre temas relacionados tienen embeddings cercanos (contextos similares).


4. Detección de duplicados

Caso de uso: Detectar tickets de soporte duplicados.

Flujo:

  1. Nuevo ticket: "No puedo hacer login"
  2. Ticket → embedding
  3. Buscar tickets con embeddings muy cercanos (similaridad > 0.95)
  4. Alertar: "Ya existe un ticket similar: 'Problema con autenticación'"

Por qué funciona: Frases con el mismo significado (aunque redactadas diferente) tienen embeddings cercanos.


5. Clustering semántico

Caso de uso: Agrupar feedback de clientes por temas.

Flujo:

  1. Cada feedback → embedding
  2. Clustering (k-means, DBSCAN) en espacio vectorial
  3. Resultado: Grupos de feedback similares (ej: Cluster 1 = problemas con pago, Cluster 2 = solicitudes de features, Cluster 3 = quejas de soporte)

Por qué funciona: Feedbacks sobre el mismo tema tienen embeddings cercanos → quedan en el mismo cluster.


Por qué alta dimensión es necesaria

Recordatorio de Cápsula 04: embeddings reales tienen 768D-1536D.

¿Por qué no 2D o 3D?

Razón 1: Capacidad para distinguir conceptos

En 2D, solo puedes capturar 2 aspectos (ej: "animalidad" y "domesticidad"). Con solo 2 ejes, muchas palabras se solapan:

  • "perro", "gato", "hamster" → todos cerca (animales domésticos)
  • No puedes distinguir "perro" (grande) de "hamster" (pequeño)

En 1536D, puedes capturar 1536 aspectos:

  • Eje 1: animalidad
  • Eje 2: domesticidad
  • Eje 3: tamaño
  • Eje 4: velocidad
  • Eje 5: hábitat
  • ...
  • Eje 1536: (algún aspecto abstracto)

Resultado: Cada palabra tiene una posición única; palabras similares están cerca, pero palabras con diferencias sutiles (ej: "perro" grande vs "ratón" pequeño) están distinguibles.


Razón 2: Capturar relaciones complejas

En 3D, no hay suficientes "direcciones" para capturar todas las relaciones semánticas (género, tamaño, tiempo, jerarquía, emoción, etc.).

En 1536D, hay suficiente "espacio" para que múltiples direcciones capturen diferentes relaciones:

  • Dirección género: rey - hombre + mujer = reina
  • Dirección tamaño: elefante - ratón ≈ "grande"
  • Dirección tiempo: presente - pasado ≈ "futuro"

Analogía: Si describes una película con 2 características (duración, año), muchas películas se solapan. Si usas 100 características (duración, año, género, director, actores, idioma, rating, etc.), cada película es única y puedes hacer recomendaciones precisas. Más dimensiones = más capacidad para capturar matices.


Ventajas de representar texto como vectores

AspectoTexto como stringTexto como vector (embedding)
BúsquedaSolo palabras exactasSignificado (sinónimos, conceptos relacionados)
ComparaciónNo cuantitativaDistancia/similaridad matemática
OperacionesNo definidasSuma, resta, escalado
RelacionesInvisiblesCapturadas geométricamente (ej: rey - hombre + mujer = reina)
ClusteringDifícilNatural (agrupar vectores cercanos)
RecomendacionesBasadas en reglasBasadas en similaridad automática

Conclusión: Vectores permiten tratar lenguaje como geometría, lo que habilita operaciones matemáticas que capturan significado.


Limitaciones y consideraciones

Aunque embeddings son poderosos, tienen limitaciones:

Limitación 1: "Caja negra"

No sabemos qué significa cada dimensión. Los modelos aprenden representaciones implícitas; no hay etiquetas como "Eje 1 = tamaño" o "Eje 42 = emoción".

Consecuencia: No puedes "editar" embeddings manualmente para ajustar significado (ej: "hacer que 'perro' sea más grande"). Solo puedes usarlos como están.


Limitación 2: Sesgos

Los embeddings aprenden de texto real (web, libros, etc.). Si el texto de entrenamiento tiene sesgos (género, raza, etc.), los embeddings los reflejan.

Ejemplo famoso:

  • Vector("doctor") - Vector("man") + Vector("woman") a veces resulta cercano a "nurse" (enfermera) en lugar de "doctor"
  • Refleja sesgos históricos en el texto de entrenamiento (más texto asociando "doctor" con hombres)

Solución: Los modelos modernos (OpenAI, Anthropic) aplican técnicas de "debiasing" durante el entrenamiento, pero no es perfecto.


Limitación 3: Dependencia del dominio

Embeddings pre-entrenados en texto general (web, Wikipedia) pueden no capturar bien terminología especializada (médica, legal, técnica).

Solución: Fine-tuning (ajustar el modelo con texto de tu dominio) o usar modelos ya ajustados a tu dominio (ej: BioBERT para medicina).


Limitación 4: Longitud del texto

Embeddings de frases/documentos largos comprimen mucho contenido en un solo vector. Puede haber pérdida de información.

Ejemplo: Un documento de 5000 palabras → 1 vector 1536D. Algunas sutilezas se pierden.

Solución: Chunking (dividir documentos largos en partes más pequeñas, cada una con su embedding).


Comparación: Embeddings vs otras representaciones

MétodoDimensionalidadCaptura similaridadEficienciaUso típico
One-hotVocabulario (ej: 50,000D)❌ No (todas las palabras igualmente distantes)Baja (muy sparse)ML clásico, clasificación simple
TF-IDFVocabulario (ej: 50,000D)⚠️ Parcial (frecuencias)MediaBúsqueda tradicional, clasificación
Word2VecFija (ej: 300D)✅ Sí (palabras similares cercanas)Alta (densa)Embeddings clásicos
BERT/GPTFija (ej: 768D-1536D)✅ Sí (contextuales)AltaEmbeddings modernos, semantic search, RAG

Conclusión: Embeddings modernos (BERT, GPT, OpenAI) son el estado del arte: capturan similaridad, son eficientes, y son contextuales (el vector de una palabra cambia según el contexto).


Ejercicios

Ejercicio 1: Hipótesis distribucional

Dadas estas frases, ¿qué palabras crees que tendrán embeddings cercanos?

Frases:

  • "El león ruge en la selva"
  • "El tigre caza en la selva"
  • "El elefante camina en la selva"
  • "El auto acelera en la carretera"
Ver solución

Embeddings cercanos: "león", "tigre", "elefante"

Justificación: Todas aparecen en contextos similares:

  • Sujetos de frases sobre acción animal
  • En la "selva" (mismo hábitat)
  • Verbos relacionados con comportamiento animal (rugir, cazar, caminar)

Embedding lejano: "auto"

  • Contexto diferente: carretera (no selva)
  • Verbo diferente: acelera (mecánico, no biológico)

Conclusión: "león", "tigre", "elefante" tienen contextos similares → embeddings cercanos. "auto" tiene contexto diferente → embedding lejano.


Ejercicio 2: Semantic search vs keyword search

Query: "mascotas"

Documentos:

  • Doc 1: "Los perros son mascotas leales"
  • Doc 2: "Los gatos son animales domésticos"
  • Doc 3: "Los autos necesitan gasolina"

¿Qué documentos retornaría cada método?

Ver solución

Keyword search:

  • Doc 1: ✅ Contiene "mascotas"
  • Doc 2: ❌ No contiene "mascotas"
  • Doc 3: ❌ No contiene "mascotas"

Resultado: Solo Doc 1


Semantic search:

  • Doc 1: ✅ Contiene "mascotas" → alta similaridad (1.0)
  • Doc 2: ✅ "animales domésticos" es concepto relacionado → alta similaridad (ej: 0.85)
  • Doc 3: ❌ "autos" no relacionado → baja similaridad (ej: 0.10)

Resultado: Doc 1 y Doc 2 (ambos relacionados con mascotas/animales)

Ventaja de semantic search: Encuentra Doc 2 aunque no contenga la palabra "mascotas".


Ejercicio 3: Interpretación de operación vectorial

Si:

  • Vector("grande") - Vector("pequeño") captura la "dirección tamaño"

¿Qué resultado esperarías de:

  • Vector("elefante") - Vector("ratón")?
Ver guía de respuesta

Resultado esperado: Un vector cercano a la "dirección tamaño" (similar a grande - pequeño).

Justificación: "elefante" y "ratón" son ambos animales, pero la diferencia principal es tamaño (elefante = muy grande, ratón = muy pequeño). Entonces:

elefante - ratón ≈ "animal grande" - "animal pequeño" ≈ "dirección tamaño"

Verificación (conceptual):

Si hacemos:

Vector("hormiga") + (Vector("elefante") - Vector("ratón"))

Esperaríamos obtener un vector cercano a un "animal grande" (ej: "ballena", "rinoceronte"), porque estamos sumando la "dirección tamaño" a un animal pequeño.

Esto funciona en embeddings reales (aunque con aproximaciones; no es exacto matemáticamente, pero la intuición es correcta).


Ejercicio 4: ¿Por qué alta dimensión?

Explica en 1-2 frases por qué un embedding de 1536D puede distinguir mejor conceptos que uno de 2D.

Ver guía de respuesta

Respuesta posible: "Un embedding de 1536D puede capturar 1536 aspectos diferentes del significado (tamaño, velocidad, emoción, contexto, etc.), mientras que 2D solo puede capturar 2 aspectos. Con más dimensiones, conceptos sutilmente diferentes (ej: 'perro' vs 'lobo' — ambos cánidos pero con domesticidad diferente) tienen posiciones únicas en el espacio, mientras que en 2D se solaparían."

Analogía adicional: "Es como describir una persona: con 2 características (altura, peso) muchas personas se solapan; con 1536 características (altura, peso, edad, profesión, idiomas, hobbies, etc.), cada persona es única."


Ejercicio 5: Casos de uso

Para cada caso, ¿usarías keyword search o semantic search?

a) Buscar todos los documentos que contienen exactamente el código de producto "ABC-12345"
b) Buscar documentos sobre "cómo mejorar el rendimiento de mi app" (puede usar términos variados: "optimizar", "performance", "velocidad", etc.)
c) Buscar documentos legales que mencionen exactamente el artículo 42 de la ley X
d) Buscar artículos relacionados con "inteligencia artificial" (puede incluir "machine learning", "deep learning", "AI", "redes neuronales", etc.)

Ver solución

a) Código de producto "ABC-12345":
Keyword search
Necesitas coincidencia exacta (no quieres documentos sobre "ABC-12346" o códigos similares).


b) "Cómo mejorar rendimiento de mi app":
Semantic search
La query puede usar términos variados ("optimizar", "performance", "velocidad"). Semantic search encuentra todos los documentos relevantes aunque usen palabras diferentes.


c) Artículo 42 de ley X:
Keyword search
Necesitas coincidencia exacta del artículo. No quieres artículos similares o relacionados; quieres exactamente ese artículo.


d) Artículos sobre "inteligencia artificial":
Semantic search
El tema puede expresarse con muchos términos ("AI", "machine learning", "deep learning", "redes neuronales"). Semantic search captura todos los conceptos relacionados.


Regla general:

  • Keyword search: Cuando necesitas coincidencias exactas (códigos, números, nombres propios)
  • Semantic search: Cuando necesitas conceptos/significados (temas, preguntas, descripciones)

Troubleshooting

Problema 1: "No entiendo cómo el modelo 'aprende' vectores"

Síntoma: El proceso de entrenamiento te parece mágico.

Solución: No hace falta que entiendas los detalles matemáticos del entrenamiento (backpropagation, gradientes, etc.). Solo entiende la intuición:

  1. El modelo ve millones de frases de texto
  2. Ajusta vectores para que palabras con contextos similares queden cerca
  3. Después de mucho entrenamiento, los vectores resultantes capturan significado

Analogía: No hace falta que entiendas cómo tu cerebro "aprendió" el significado de "perro" (neurología). Solo sabes que después de ver muchos perros y escuchar la palabra "perro" en contextos, tu cerebro asocia "perro" con el concepto. Los embeddings hacen lo mismo: después de ver "perro" en millones de contextos, el modelo asocia un vector con ese concepto.


Problema 2: "¿Cómo sé si dos embeddings son 'cercanos'?"

Síntoma: No sabes cuándo considerar dos vectores "similares".

Solución: Usa métricas de similaridad (verás en Módulo 3):

  • Distancia euclidiana: Distancia directa entre puntos (menor = más cercanos)
  • Similaridad coseno: Ángulo entre vectores (1 = idénticos, 0 = ortogonales, -1 = opuestos)

Umbral típico (coseno):

  • 0.9: Muy similares (casi sinónimos)

  • 0.7-0.9: Similares (conceptos relacionados)
  • 0.5-0.7: Moderadamente relacionados
  • < 0.5: Poco relacionados

No hace falta que calcules a mano; herramientas como Pinecone, Weaviate, o NumPy lo hacen por ti.


Problema 3: "¿Por qué no usar siempre semantic search en lugar de keyword?"

Síntoma: Crees que semantic search siempre es mejor.

Solución: Keyword search sigue siendo útil para:

  • Búsquedas exactas (códigos, nombres propios, números)
  • Casos donde la precisión es crítica (legal, médica)
  • Cuando tienes pocos datos (semantic search necesita buenos embeddings pre-entrenados o fine-tuned)

Mejor enfoque: Híbrido (keyword + semantic):

  1. Filtrar con keyword (ej: documentos que mencionan "producto X")
  2. Rankear con semantic search (ordenar por relevancia semántica)

Muchos sistemas modernos (Elasticsearch con vector search, Weaviate) soportan búsqueda híbrida.


Problema 4: "¿Los embeddings capturan TODO el significado?"

Síntoma: Crees que embeddings son perfectos.

Solución: No. Embeddings comprimen significado en un vector de dimensión fija (1536D). Hay pérdida de información, especialmente para:

  • Textos muy largos (documentos de miles de palabras → 1 vector)
  • Sutilezas contextuales (ironía, sarcasmo, metáforas)
  • Información estructural (tablas, código, fórmulas)

Embeddings son una aproximación útil, no una representación perfecta. Para la mayoría de tareas (semantic search, RAG), son suficientes. Para tareas muy específicas (análisis literario profundo, reasoning complejo), pueden no capturar todos los matices.


Resumen

En una frase: Los sistemas de AI usan vectores para representar texto porque la geometría vectorial (cercanía = similaridad) captura significado semántico de forma matemática, habilitando semantic search, RAG y manipulación de conceptos como rey - hombre + mujer ≈ reina.

Puntos clave:

  • Problema: Texto como strings no permite operaciones matemáticas ni captura similaridad
  • Solución: Embeddings (vectores densos de 768D-1536D) donde palabras similares → vectores cercanos
  • Hipótesis distribucional: Palabras en contextos similares tienen significados similares
  • Entrenamiento: Modelos (Word2Vec, BERT, GPT) aprenden vectores de millones de textos
  • Resultado: Espacio geométrico donde cercanía = similaridad semántica
  • Semantic search: Buscar significado (vectores cercanos) en lugar de solo palabras exactas (keyword)
  • Operaciones: rey - hombre + mujer ≈ reina funciona por direcciones geométricas en alta dimensión
  • Alta dimensión: 1536D captura 1536 aspectos del significado (vs 2-3 en baja dimensión)
  • Aplicaciones: Semantic search, RAG, recomendaciones, clustering, detección de duplicados
  • Limitaciones: Caja negra, sesgos, dependencia del dominio, pérdida de información en textos largos

Conexión con la siguiente cápsula

En la Cápsula 07 (Ejercicio integrador), vas a aplicar TODO lo que aprendiste en el módulo: representar conceptos como vectores 2D (simplificado), calcular operaciones (suma, resta), medir distancia, y visualizar cómo "cercanía geométrica = similaridad semántica". Este ejercicio práctico consolidará tu intuición antes de pasar al Módulo 2 (Espacios Vectoriales), donde verás cómo funcionan los espacios de alta dimensión conceptualmente y cómo se comparan vectores (similaridad coseno, distancia).


Recursos adicionales

  1. Jay Alammar: "The Illustrated Word2vec" — Blog con diagramas sobre cómo se entrenan embeddings y cómo capturan significado. Excelente para visualizar el proceso. En inglés.

  2. Stanford CS224N: "Word Vectors" — Slides del curso de Stanford sobre embeddings. Técnico pero muy claro. En inglés.

  3. TensorFlow: "Word Embeddings" — Tutorial de Google sobre embeddings con ejemplos visuales. En inglés.

  4. OpenAI: "Embeddings Guide" — Documentación oficial de OpenAI sobre cómo usar embeddings para semantic search. Con ejemplos de código. En inglés.

  5. Pinecone: "What are Embeddings?" — Blog orientado a vector databases que explica qué son embeddings y por qué son útiles. En inglés.

  6. 3Blue1Brown: "But what is a Neural Network?" — Video de 19 min sobre cómo funcionan redes neuronales (base de los modelos de embeddings). Visualizaciones excelentes. En inglés.

  7. Anthropic: "Understanding Word Embeddings" — Artículos de investigación sobre embeddings y cómo interpretarlos. Técnico pero útil para profundizar. En inglés.


Próxima cápsula: 07-capstone-exercise-1.md — Ejercicio práctico para aplicar todo lo aprendido: representar conceptos como vectores 2D, calcular operaciones, medir distancia, y visualizar "cercanía = similaridad".