⏱️ Lectura: 10 min
Cuando escribes perro en un buscador y te devuelve resultados sobre cachorros y mascotas, algo tradujo esas palabras a un lenguaje que la computadora sí entiende: números. Ese puente se llama embedding. Los embeddings vectoriales son la tecnología que permite a las máquinas medir cuánto se parecen dos textos, imágenes o sonidos sin entender el idioma como lo hacemos nosotros.
📑 En este artículo
En esta guía vas a entender qué son, cómo se construyen y por qué están detrás de buscadores, recomendaciones y de casi toda la inteligencia artificial moderna. Con ejemplos de código y analogías claras, sin necesidad de ser matemático.
TL;DR
- Un embedding es una lista de números (un vector) que representa el significado de una palabra, frase, imagen o sonido.
- Textos parecidos quedan cerca en el espacio vectorial; textos distintos quedan lejos. La cercanía se mide con similitud coseno.
- El concepto se popularizó con Word2vec, publicado por Google en 2013 (Mikolov et al.), donde ‘rey – hombre + mujer ≈ reina’.
- La búsqueda semántica encuentra resultados por significado, no por coincidencia exacta de palabras.
- Bibliotecas como FAISS de Meta buscan el vector más parecido entre miles de millones en milisegundos.
- Los embeddings son la base de RAG, los sistemas de recomendación y la memoria de los chatbots actuales.
- Los modelos modernos generan vectores de 384 a 3072 dimensiones a partir de cualquier texto en segundos.
¿Qué son los embeddings vectoriales?
Imagina un mapa. Cada ciudad tiene una coordenada: latitud y longitud. Con solo dos números puedes saber qué tan lejos está San Salvador de Buenos Aires, o agrupar las ciudades costeras frente a las de montaña. Los embeddings vectoriales hacen exactamente esto, pero con significado en lugar de geografía, y con muchas más de dos coordenadas.
Un embedding toma algo que para una máquina no tiene sentido —la palabra gato, una frase completa o incluso una foto— y lo convierte en una lista de números llamada vector. Cada número es una coordenada en un espacio imaginario de cientos o miles de dimensiones. La idea central es simple y poderosa: cosas con significado parecido reciben coordenadas cercanas. Gato y felino caen casi en el mismo punto; gato y avión quedan en extremos opuestos.
Lo notable es que nadie programa esas coordenadas a mano. Un modelo las aprende leyendo enormes cantidades de texto y observando qué palabras aparecen en contextos similares. La hipótesis lingüística detrás —conocida como semántica distribucional— se resume en una frase de J. R. Firth de 1957: “conocerás una palabra por la compañía que tiene”.
Cómo funciona por dentro
El proceso de los embeddings vectoriales tiene siempre la misma forma: un texto entra, un modelo lo procesa y sale un vector. Ese vector luego se compara con otros para medir parecido.
graph LR
A["Texto: 'gato'"] --> B["Modelo de embedding"]
B --> C["Vector [0.21, -0.4, ...]"]
C --> D["Comparar por similitud"]
D --> E["Resultados parecidos"]
El paso clave es el modelo de embedding, una red neuronal entrenada para que palabras usadas en contextos parecidos terminen con vectores parecidos. El método clásico, Word2vec, hace algo casi de juego: oculta una palabra de una oración y entrena a la red para adivinarla a partir de sus vecinas (o al revés). Tras millones de ejemplos, los pesos internos de la red se convierten, sin que nadie lo dicte, en coordenadas con significado.
El truco para medir el parecido: similitud coseno
Una vez que dos textos son vectores, ¿cómo decidimos qué tan parecidos son? La técnica más usada es la similitud coseno: mide el ángulo entre dos vectores. Si apuntan en la misma dirección, el coseno vale 1 (significados casi idénticos). Si son perpendiculares, vale 0 (no relacionados). Si apuntan en sentido opuesto, se acerca a -1.
La gran ventaja del coseno es que ignora el tamaño del vector y se queda solo con la dirección, que es donde vive el significado. Es la razón por la que funciona igual de bien con una palabra corta o con un párrafo largo.
💭 Clave: el resultado más famoso de Word2vec es que la aritmética entre vectores tiene sentido. Tomar el vector de “rey”, restar “hombre” y sumar “mujer” da un vector cuyo vecino más cercano es “reina”. Las relaciones semánticas quedan codificadas como direcciones en el espacio.
Ejemplos prácticos con código
Veamos primero la idea con vectores inventados a mano y la similitud coseno en Python con NumPy. No necesitas un modelo todavía: solo entender qué se está calculando.
import numpy as np
# Vectores de ejemplo (en la practica los genera un modelo)
gato = np.array([0.8, 0.1, 0.3])
perro = np.array([0.7, 0.2, 0.4])
avion = np.array([-0.5, 0.9, 0.1])
def similitud_coseno(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
print(similitud_coseno(gato, perro)) # ~0.98 -> muy parecidos
print(similitud_coseno(gato, avion)) # ~-0.2 -> distintos
El resultado dice que gato y perro están casi alineados, mientras que gato y avión apuntan en direcciones muy diferentes. Eso es, en esencia, todo lo que hace la búsqueda semántica por debajo.
Ahora con un modelo real. La biblioteca sentence-transformers descarga un modelo entrenado y genera embeddings de frases completas en una sola línea:
from sentence_transformers import SentenceTransformer, util
modelo = SentenceTransformer("all-MiniLM-L6-v2")
frases = [
"El gato duerme en el sofa",
"Un felino descansa en el sillon",
"Compre pan en la tienda",
]
emb = modelo.encode(frases)
print(util.cos_sim(emb[0], emb[1])) # alto: significan casi lo mismo
print(util.cos_sim(emb[0], emb[2])) # bajo: temas distintos
Aunque la primera y la segunda frase no comparten casi ninguna palabra (“gato” frente a “felino”, “sofá” frente a “sillón”), el modelo las reconoce como cercanas porque significan lo mismo. Un buscador tradicional, que compara palabra por palabra, fallaría aquí. Esa es la diferencia entre buscar por texto y buscar por significado.
💡 Tip: para tus primeros experimentos, un modelo pequeño como all-MiniLM-L6-v2 (384 dimensiones) corre en un portátil sin GPU y es más que suficiente. Sube de tamaño solo cuando midas que la calidad se queda corta.
Casos de uso reales
Los embeddings vectoriales dejaron de ser un tema académico para volverse infraestructura cotidiana. Estos son los usos más extendidos:
- Búsqueda semántica — Encontrar documentos por lo que significan, no por las palabras exactas. Es lo que hace que una búsqueda interna de empresa entienda “problemas para iniciar sesión” aunque el manual diga “errores de autenticación”.
- RAG (generación aumentada por recuperación) — Antes de responder, un chatbot busca en una base de conocimiento los fragmentos más cercanos a tu pregunta usando embeddings, y los usa como contexto. Así reduce invenciones y cita fuentes propias.
- Sistemas de recomendación — Productos, canciones o artículos se representan como vectores; recomendar es buscar los vecinos más cercanos a lo que ya te gustó.
- Detección de duplicados y agrupamiento — Agrupar tickets de soporte parecidos, detectar noticias repetidas o encontrar plagio, todo midiendo distancias en el espacio vectorial.
- Multimodalidad — Modelos modernos colocan imágenes y texto en el mismo espacio, lo que permite buscar fotos escribiendo una descripción.
Para que esto funcione a escala —millones o miles de millones de vectores— no se puede comparar la consulta contra todo uno por uno. Ahí entran las bibliotecas de búsqueda aproximada del vecino más cercano, como FAISS de Meta, que organizan los vectores en estructuras inteligentes para devolver los más parecidos en milisegundos. Las llamadas bases de datos vectoriales construyen sobre esta misma idea.
Ventajas y desventajas
Como toda tecnología, los embeddings vectoriales brillan en unos escenarios y tropiezan en otros. Conviene conocer ambos lados antes de apostar por ellos.
Ventajas
- Capturan significado — Entienden sinónimos, paráfrasis y relaciones que la coincidencia exacta de palabras nunca vería.
- Universales — El mismo enfoque sirve para texto, imágenes, audio y código.
- Rápidos en consulta — Comparar vectores es una operación matemática barata, optimizable con índices especializados.
Desventajas
- Son una caja parcialmente negra — Sabemos que el vector funciona, pero interpretar qué significa cada una de sus 768 dimensiones es difícil.
- Heredan sesgos — Si los datos de entrenamiento asocian profesiones a un género, el espacio vectorial reproducirá ese sesgo.
- Dependen del modelo — Vectores de modelos distintos no son comparables entre sí, y si cambias de modelo debes recalcular todo tu corpus.
- Costo de almacenamiento — Guardar millones de vectores de miles de dimensiones consume memoria; por eso existen técnicas de compresión y cuantización.
⚠️ Ojo: un embedding mide parecido semántico, no veracidad. Dos frases pueden tener vectores casi idénticos y una ser verdadera y la otra falsa. Los embeddings recuperan información relevante; no la verifican.
📖 Resumen en Telegram: Ver resumen
Preguntas frecuentes
¿Cuál es la diferencia entre un embedding y un vector?
Un vector es simplemente una lista de números. Un embedding es un vector que, además, representa el significado de algo: la palabra “embedding” enfatiza que esos números fueron aprendidos para colocar conceptos parecidos cerca unos de otros.
¿Necesito saber matemáticas avanzadas para usarlos?
No para usarlos. Las bibliotecas modernas generan los embeddings y calculan la similitud por ti. Basta entender la intuición —cosas parecidas quedan cerca— y saber medir distancia con similitud coseno, que son pocas líneas de código.
¿Cuántas dimensiones debe tener un buen embedding?
Depende del modelo. Los modelos ligeros usan 384 dimensiones y los grandes llegan a 1536 o 3072. Más dimensiones pueden capturar más matices, pero también ocupan más memoria y no siempre mejoran la calidad. Conviene medir con tus propios datos.
¿Qué es una base de datos vectorial?
Es un sistema diseñado para almacenar millones de embeddings y encontrar rápidamente los más parecidos a una consulta. Internamente usa índices de búsqueda aproximada del vecino más cercano, como los que ofrece FAISS, para no comparar contra todos los vectores uno por uno.
¿Los embeddings entienden el idioma como una persona?
No. No comprenden; detectan patrones estadísticos de uso. Funcionan asombrosamente bien para medir parecido, pero no razonan ni distinguen lo verdadero de lo falso. Son una herramienta de representación, no de comprensión.
¿Sirven para algo más que texto?
Sí. La misma técnica representa imágenes, audio, código y hasta moléculas. Los modelos multimodales incluso colocan texto e imágenes en un espacio común, lo que permite buscar fotos describiéndolas con palabras.
Referencias
- Efficient Estimation of Word Representations in Vector Space (Mikolov et al., 2013) — el paper de Word2vec que popularizó los embeddings de palabras.
- FAISS (Meta AI Research) — biblioteca de código abierto para búsqueda y agrupamiento eficiente de vectores densos.
- Word2vec — Wikipedia en español — explicación de las arquitecturas CBOW y Skip-gram y sus aplicaciones.
📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.
0 Comentarios