Introduccion
En los articulos anteriores, nos hemos centrado en la busqueda de texto completo basada en palabras clave. La busqueda de texto completo es muy eficaz cuando los usuarios pueden introducir las palabras clave adecuadas. Sin embargo, hay casos en los que la busqueda por palabras clave por si sola no puede responder adecuadamente a necesidades como «no se que palabras clave usar para buscar» o «quiero respuestas a preguntas conceptuales».
En este articulo, organizamos el espectro de las tecnologias de busqueda y explicamos como evoluciona la busqueda desde la busqueda por palabras clave hasta la busqueda semantica.
Audiencia objetivo
Personas interesadas en la busqueda con IA que desean organizar los conceptos
Personas que estan considerando la introduccion de la busqueda semantica
Personas que desean comprender las funciones relacionadas con la IA de Fess
Espectro de las tecnologias de busqueda
Las tecnologias de busqueda forman un espectro que va de lo simple a lo avanzado, como se muestra a continuacion.
Limitaciones de la busqueda por palabras clave
La busqueda por palabras clave es eficaz en muchas situaciones, pero muestra sus limitaciones en los siguientes casos.
Discrepancia de vocabulario
Esto ocurre cuando las palabras utilizadas por los usuarios difieren de las palabras utilizadas en los documentos.
Ejemplo: Incluso si un usuario busca «quiero cambiar el destino de la transferencia de mi salario», si el documento interno utiliza el termino «procedimiento de cambio de cuenta salarial», es posible que las palabras clave no coincidan.
Esto se puede abordar parcialmente con sinonimos (vease la Parte 8), pero no es practico registrar todas las combinaciones de vocabulario posibles de antemano.
Busqueda conceptual
Este es el caso en el que los usuarios desean buscar por concepto en lugar de por palabras clave especificas, como «reglas internas sobre el trabajo remoto». En este caso, diversos documentos relacionados pueden ser relevantes, incluyendo los que tratan sobre «trabajo desde casa», «teletrabajo», «reglas de asistencia a la oficina» y «gestion de horarios».
Como funciona la busqueda semantica
Representacion vectorial (Embedding)
La base de la busqueda semantica es la conversion de texto en «vectores (matrices de numeros)». Estos vectores son representaciones matematicas del «significado» del texto.
Los textos con significados similares se colocan cerca unos de otros en el espacio vectorial. Por ejemplo, los vectores de «perro» y «mascota» estan cerca, mientras que los vectores de «perro» y «automovil» estan lejos.
Funcionamiento de la busqueda
El usuario introduce una consulta de busqueda
La consulta se convierte en un vector
Se calcula la similitud con los vectores de documentos en el indice
Los documentos se devuelven en orden de mayor similitud
Esto permite encontrar documentos semanticamente relacionados incluso cuando las palabras clave no coinciden exactamente.
Busqueda semantica en Fess
Fess puede lograr una busqueda basada en vectores a traves de plugins de busqueda semantica.
Activacion de la busqueda semantica
Instalar el plugin de busqueda semantica
Configurar el modelo de embedding
Reconstruir el indice (vectorizar los documentos existentes)
Eleccion del modelo de embedding
Seleccione un modelo (modelo de embedding) para convertir texto en vectores.
Los criterios de seleccion son los siguientes:
Soporte de idiomas: Si puede manejar adecuadamente el idioma objetivo
Precision: Calidad de los vectores (precision en la captura del significado)
Velocidad: Tiempo requerido para la conversion
Coste: Tarifas de uso de API, requisitos de hardware
Busqueda hibrida: Rank Fusion
La busqueda semantica es potente, pero no omnipotente. Para buscar nombres propios o en casos que requieren coincidencia exacta, la busqueda por palabras clave es mas apropiada.
El concepto de busqueda hibrida
La busqueda hibrida ejecuta tanto la busqueda por palabras clave como la busqueda semantica, y luego integra los resultados.
Fess utiliza Rank Fusion para fusionar los resultados de diferentes metodos de busqueda. En concreto, el algoritmo RRF (Reciprocal Rank Fusion) asegura que los documentos que ocupan posiciones altas en ambos resultados de busqueda se clasifiquen finalmente en las primeras posiciones.
Ventajas de la busqueda hibrida
Combina la «fiabilidad» de la busqueda por palabras clave con la «flexibilidad» de la busqueda semantica
Los nombres propios se cubren con la busqueda por palabras clave
Las busquedas conceptuales se cubren con la busqueda semantica
La calidad general de la busqueda mejora en comparacion con el uso exclusivo de uno de los dos metodos
Criterios para la adopcion
La busqueda semantica no debe introducirse necesariamente en todos los entornos.
Casos en los que se debe considerar la adopcion
Hay muchas «consultas sin resultados» en los registros de busqueda
Los usuarios informan que «no conocen las palabras clave adecuadas»
Se desea soportar preguntas en lenguaje natural (un prerrequisito para RAG en la Parte 19)
Se desea mejorar la busqueda entre idiomas para documentos multilingues
Casos en los que aun no es necesaria
Se obtiene una calidad de busqueda suficiente con busqueda por palabras clave + sinonimos
El numero de documentos es reducido y los usuarios conocen las palabras clave apropiadas
Los recursos de computo (GPU o costes de API en la nube) son limitados
Adopcion gradual
Primero, mejorar la calidad con busqueda por palabras clave + sinonimos (Parte 8)
Si las consultas sin resultados siguen siendo frecuentes, considerar la busqueda semantica
Utilizar la busqueda hibrida para beneficiarse de ambos enfoques
Resumen
En este articulo, hemos organizado el camino de evolucion desde la busqueda por palabras clave hasta la busqueda semantica.
El espectro de las tecnologias de busqueda (palabras clave -> difusa -> sinonimos -> semantica -> hibrida)
Como funciona la busqueda semantica (representacion vectorial y calculo de similitud)
Busqueda semantica y busqueda hibrida en Fess (Rank Fusion)
Criterios para la adopcion y un enfoque gradual
En el proximo articulo, desarrollaremos aun mas la busqueda semantica y construiremos un asistente de IA utilizando RAG.