La búsqueda semántica es un método de recuperación que relaciona una consulta con documentos por su significado en lugar de por las palabras que comparten. Convierte tanto la consulta como los documentos en listas de números llamadas incrustaciones (embeddings) y luego devuelve los documentos cuyos embeddings están más cerca del de la consulta. Una página sobre "vuelos baratos a Lisboa" puede coincidir con la pregunta "viajes en avión de bajo coste a Portugal" aunque ambas no compartan casi ninguna palabra.
La mayoría de los productos de búsqueda con IA usan búsqueda semántica en algún punto de su proceso, normalmente junto con métodos más antiguos basados en palabras clave. Saber cómo funciona explica por qué algunos pasajes se recuperan y se citan mientras que otros de la misma página se ignoran.
¿Cómo funciona la búsqueda semántica?
Un sistema de búsqueda semántica tiene una parte de indexación, que se ejecuta con antelación, y una parte de consulta, que se ejecuta cuando alguien hace una pregunta.
- Dividir el contenido. Cada página se corta en fragmentos, normalmente de unas pocas frases a unos pocos párrafos. Un fragmento es la unidad que se compara y se devuelve.
- Crear embeddings. Un modelo de embeddings lee cada fragmento y produce un vector, una lista de números de longitud fija (a menudo varios cientos o unos pocos miles). El modelo está entrenado para que los textos con significado similar produzcan vectores que apunten en direcciones similares.
- Almacenar los vectores. Los vectores se guardan en un índice vectorial, una base de datos diseñada para encontrar rápidamente vectores cercanos entre millones o miles de millones de entradas.
- Convertir la consulta en embedding. Cuando llega una pregunta, el mismo modelo de embeddings la convierte en un vector.
- Encontrar los vecinos más cercanos. El índice compara el vector de la consulta con los vectores almacenados, normalmente con una medida llamada similitud del coseno, y devuelve los fragmentos con las puntuaciones más altas.
El modelo de embeddings es una red neuronal emparentada con un modelo de lenguaje de gran tamaño, entrenada con grandes cantidades de texto para que aprenda qué palabras y frases suelen significar lo mismo. Cuando convierte una consulta en embedding, sitúa el texto en un punto de un espacio donde las ideas relacionadas se agrupan. En este paso no se hace ninguna búsqueda en una tabla.
¿En qué se diferencia la búsqueda semántica de la búsqueda por palabras clave?
La búsqueda por palabras clave, también llamada búsqueda léxica, puntúa los documentos según las palabras que comparten con la consulta. La fórmula de puntuación más común, BM25, premia los documentos que contienen los términos de la consulta con frecuencia y da más peso a los términos poco frecuentes que a los comunes. La búsqueda semántica ignora la redacción exacta y compara el significado.
| Búsqueda por palabras clave | Búsqueda semántica | |
|---|---|---|
| Qué compara | Palabras compartidas | Vectores de embeddings |
| Sinónimos y paráfrasis | No los detecta salvo que estén listados | Normalmente los detecta |
| Cadenas exactas (códigos de producto, nombres, mensajes de error) | Las detecta de forma fiable | A veces las pasa por alto o las difumina |
| Preguntas largas y conversacionales | Débil, muchas palabras aportan poca señal | Fuerte |
| Explicar por qué coincidió un resultado | Fácil, las palabras son visibles | Difícil, la coincidencia es numérica |
Los dos métodos fallan con tipos de consulta distintos. Una pregunta como "por qué mi portátil hace ruido cuando está inactivo" se adapta bien a la búsqueda semántica, porque las buenas respuestas pueden hablar del ruido del ventilador y de los procesos en segundo plano. Una consulta con un número de modelo como "XPS 9530" se adapta bien a la búsqueda por palabras clave, porque un modelo de embeddings puede tratarlo como similar a otros números de modelo y devolver el producto equivocado.
¿Por qué los sistemas de búsqueda combinan la recuperación semántica y la recuperación por palabras clave?
Como los dos métodos tienen debilidades opuestas, la mayoría de los sistemas en producción ejecutan ambos y combinan los resultados. Esto se llama búsqueda híbrida. Un enfoque común toma los mejores resultados de cada método y combina sus clasificaciones en una sola lista, de modo que un pasaje que puntúa bien en cualquiera de los dos lados tiene posibilidades de mantenerse.
La lista combinada se pasa después, normalmente, a un reclasificador, un modelo independiente que lee la consulta y cada pasaje candidato juntos y asigna una puntuación de relevancia más cuidadosa. La reclasificación es más lenta que la búsqueda vectorial, por lo que solo se ejecuta sobre una lista corta de candidatos. El orden que produce decide qué pasajes pasan a la siguiente etapa, un proceso que se explica en cómo elige la búsqueda con IA qué fuentes citar.
¿Dónde encaja la búsqueda semántica en la búsqueda con IA?
La búsqueda con IA se basa en la generación aumentada por recuperación: el sistema recupera primero el texto y el modelo de lenguaje redacta su respuesta a partir de ese texto. La búsqueda semántica puede aparecer en varios puntos de ese proceso.
- Recuperar páginas. Algunos índices de búsqueda usan embeddings para encontrar páginas candidatas para cada consulta que escribe el modelo.
- Seleccionar pasajes. Después de obtener las páginas y dividirlas en pasajes, los embeddings ayudan a puntuar qué pasajes de una página coinciden con la pregunta.
- Relacionar preguntas de seguimiento. En una conversación, la consulta con la que busca el sistema suele ser una versión reescrita de lo que escribió el usuario, y los embeddings ayudan a relacionar esa intención reescrita.
Esta es una de las razones por las que la búsqueda con IA se comporta de forma distinta a una página de resultados clásica, como se describe en en qué se diferencia la búsqueda con IA de la búsqueda tradicional. Un buscador tradicional clasifica páginas completas para una consulta corta. Un sistema de IA compara pasajes individuales con preguntas largas en lenguaje natural, y la búsqueda semántica gestiona bien ese tipo de coincidencia.
¿Qué significa la búsqueda semántica para un sitio web?
Como la coincidencia se produce a nivel de fragmentos, cada pasaje de una página compite por sí solo. Un pasaje que responde con claridad a una pregunta, usando los términos que usaría un lector, produce un embedding que queda cerca de esa pregunta. Si un pasaje mezcla varios temas, su embedding cae en algún punto entre ellos y puede no estar cerca de ninguno.
Del mecanismo se derivan algunas consecuencias prácticas:
- Escribe secciones que tengan sentido sin el texto que las rodea. Un fragmento que empieza con "Como se ha mencionado antes" pierde el contexto que necesitaba el embedding.
- Nombra las cosas de forma explícita. Los nombres de productos, los nombres de marcas, las ubicaciones y las especificaciones deben aparecer en el pasaje que trata de ellos, porque la recuperación por palabras clave sigue gestionando las cadenas exactas mejor que los embeddings.
- Cubre las distintas formas en que la gente formula una pregunta. La búsqueda semántica tolera la paráfrasis, pero una página que aborda el problema real que describe una persona coincidirá con más de sus preguntas que una página que solo usa jerga interna.
- Mantén las páginas accesibles. Nada de esto se aplica si los rastreadores de IA que recopilan contenido para un producto determinado tienen bloqueada la lectura de la página.
La recuperación híbrida y la reclasificación cambian con cada consulta y cada ejecución, por lo que la misma página puede recuperarse con una formulación de una pregunta y no aparecer con otra. Probar a lo largo del tiempo una variedad de prompts realistas muestra qué formulaciones hacen aparecer realmente una página. Ese enfoque se describe en medir la visibilidad en IA.