Sign In
Free Sign Up
  • English
  • Español
  • 简体中文
  • Deutsch
  • 日本語
Sign In
Free Sign Up
  • English
  • Español
  • 简体中文
  • Deutsch
  • 日本語

Dominando la Búsqueda Híbrida en MyScale: Una Guía Completa

La búsqueda híbrida es una técnica poderosa que integra múltiples algoritmos de búsqueda para mejorar la precisión y relevancia de los resultados de búsqueda. Al combinar las fortalezas de la búsqueda de texto completo y la búsqueda vectorial, la búsqueda híbrida ofrece una experiencia de búsqueda más efectiva y completa para el usuario.

En la versión 1.6.2 de MyScaleDB, se introdujo esta función de búsqueda híbrida (opens new window). Vamos a explorar cómo se implementó y qué la hace un cambio revolucionario en el panorama de la búsqueda.

# Combinando la Búsqueda Vectorial y la Búsqueda de Texto Completo

En un sistema de búsqueda híbrida dentro de una base de datos vectorial, generalmente se emplean dos tipos distintos de búsquedas: la búsqueda vectorial (opens new window) y la búsqueda de texto completo (opens new window).

  • Búsqueda Vectorial: Este enfoque encuentra resultados basados en la similitud semántica, aprovechando modelos de aprendizaje automático que comprenden el significado y contexto de palabras y frases. Es especialmente útil para capturar resultados relacionados conceptualmente o con matices entre documentos.
  • Búsqueda de Texto Completo: Este método busca coincidencias directas de palabras clave o frases en el texto. Es más tradicional y altamente efectivo cuando la redacción exacta de una consulta es esencial.

Cada uno de estos tipos de búsqueda tiene sus fortalezas y limitaciones. La búsqueda de texto completo destaca en la recuperación básica de palabras clave y la coincidencia de texto, lo que la hace ideal para consultas donde los términos específicos son cruciales. Por otro lado, la búsqueda vectorial sobresale en la coincidencia semántica entre documentos y en la comprensión de significados más profundos, aunque puede ser menos eficiente con consultas de texto corto.

La búsqueda híbrida combina las capacidades de ambas búsquedas, logrando un enfoque de "lo mejor de ambos mundos". Esta integración permite a los usuarios beneficiarse de la coincidencia precisa de palabras clave al mismo tiempo que captura el contexto semántico más amplio, lo que resulta en una experiencia de búsqueda más completa y efectiva.

# Algoritmos de Fusión

Cada método de búsqueda, ya sea vectorial o de texto completo, produce un conjunto de resultados, cada uno acompañado de una puntuación de relevancia. Estas puntuaciones reflejan qué tan cerca se encuentra un resultado en particular de la consulta de búsqueda según el método específico utilizado.

Un algoritmo de fusión combina eficazmente estos resultados. El algoritmo ajusta y normaliza las puntuaciones de las búsquedas vectoriales y de texto completo, haciéndolas comparables y permitiendo una combinación fluida. Este proceso garantiza que los resultados finales presentados al usuario integren las fortalezas de ambos métodos de búsqueda, ofreciendo resultados tanto semánticamente relevantes como textualmente precisos.

En MyScaleDB, la búsqueda híbrida utiliza la puntuación BM25 de las búsquedas de texto (denominada "lex" para léxica) y la métrica de distancia de las búsquedas vectoriales (denominada "sem" para semántica). Para lograr esta integración, MyScaleDB actualmente admite dos algoritmos de fusión: Fusión de Puntuación Relativa (RSF, por sus siglas en inglés) y Fusión de Rango Recíproco (RRF, por sus siglas en inglés).

# Fusión de Puntuación Relativa (RSF)

La Fusión de Puntuación Relativa (RSF) es un método utilizado en sistemas de búsqueda híbrida para combinar eficazmente los resultados de las búsquedas vectoriales y de texto completo. El proceso implica dos pasos clave: normalización de las puntuaciones y cálculo de la suma ponderada.

Normalización de las Puntuaciones:

  • Normalización: RSF comienza normalizando las puntuaciones de las búsquedas vectoriales y de texto completo. Esto implica convertir las puntuaciones sin procesar en una escala común, generalmente de 0 a 1.
  • Puntuaciones Más Altas y Más Bajas: La puntuación más alta en cada tipo de búsqueda (vectorial y de texto) se escala a 1, lo que representa el resultado más relevante dentro de esa búsqueda. Por el contrario, la puntuación más baja se escala a 0, lo que representa el resultado menos relevante.
  • Ajuste Proporcional: Todas las demás puntuaciones se ajustan proporcionalmente dentro de este rango de 0 a 1 en función de su posición relativa entre las puntuaciones más altas y más bajas.

Suma Ponderada:

  • Asignación de Pesos: Después de la normalización, cada puntuación se multiplica por un peso específico que refleja la importancia asignada a ese tipo de búsqueda en particular (vectorial o de texto completo).
  • Cálculo de la Puntuación Final: La puntuación final para cada resultado se determina sumando estas puntuaciones normalizadas y ponderadas, lo que resulta en una clasificación equilibrada y completa que integra las fortalezas de ambos métodos de búsqueda.

La fórmula de normalización utilizada es:

El propósito de RSF es crear una clasificación unificada que integre tanto la relevancia semántica de la búsqueda vectorial como la precisión textual de la búsqueda de texto completo. Al normalizar las puntuaciones y aplicar los pesos adecuados, RSF garantiza que los resultados finales estén equilibrados, combinando las fortalezas de ambos métodos de búsqueda para ofrecer un resultado más completo y preciso para el usuario.

# Fusión de Rango Recíproco (RRF)

La Fusión de Rango Recíproco (RRF) es un método alternativo utilizado en sistemas de búsqueda híbrida para combinar resultados de diferentes métodos de búsqueda, como las búsquedas vectoriales y de texto completo. A diferencia de RSF, RRF no requiere la normalización de las puntuaciones. En su lugar, clasifica los resultados en función de sus posiciones en cada conjunto de resultados utilizando la siguiente fórmula, donde k es una constante arbitraria que ajusta la importancia de los resultados de menor rango.

La principal ventaja de RRF es su simplicidad. Al evitar la necesidad de normalizar las puntuaciones, RRF se centra directamente en las posiciones de rango, lo que facilita la combinación de resultados de diferentes métodos de búsqueda, especialmente cuando las escalas de puntuación de esos métodos no son directamente comparables.

Boost Your AI App Efficiency now
Sign up for free to benefit from 150+ QPS with 5,000,000 vectors
Free Trial
Explore our product

# Cómo Realizar una Búsqueda Híbrida en MyScaleDB

Veamos cómo realizar la búsqueda híbrida en MyScale utilizando un ejemplo. Las consultas SQL que se muestran a continuación se basan en un conjunto de datos de Wikipedia que se ha importado previamente en el clúster de MyScale.

Primero, cree una búsqueda de texto completo, un índice FTS (opens new window) en la columna de texto 'body', y un índice vectorial MSTG utilizando la distancia del coseno en la columna vectorial 'body_vector'.

CREATE TABLE wiki_abstract
(
    `id` UInt64,
    `body` String,
    `title` String,
    `url` String,
    `body_vector` Array(Float32),
    VECTOR INDEX body_vec_idx body_vector TYPE MSTG('metric_type=Cosine'),
    INDEX body_idx body TYPE fts('{"body":{"tokenizer":{"type":"stem", "stop_word_filters":["english"]}}}') GRANULARITY 1,
    CONSTRAINT check_length CHECK length(body_vector) = 1024
) ENGINE = MergeTree ORDER BY id;

En esta declaración SQL CREATE TABLE, hemos definido un índice FTS para la búsqueda de texto completo BM25 y un índice vectorial para la búsqueda de similitud del coseno en datos de alta dimensionalidad, convertidos de columnas de texto.

A continuación, podemos ejecutar una búsqueda híbrida que utiliza tanto las columnas de texto como las columnas vectoriales. Así es como funciona:

SELECT id, body, HybridSearch('fusion_type=RSF', 'fusion_weight=0.4')(body_vector, body, 
    HuggingFaceEmbedText('Who won the Polar Medal'), 'Who won the Polar Medal') AS score
FROM wiki_abstract
ORDER BY score DESC
LIMIT 5;

Esta consulta de búsqueda híbrida primero realiza una búsqueda vectorial utilizando la función distance() en la columna body_vector para encontrar los objetos más similares al vector de consulta. Al mismo tiempo, se realiza una búsqueda de texto completo utilizando la función TextSearch() en la columna body, clasificando los resultados en función de la frecuencia de los términos de la consulta. Los dos resultados de búsqueda se combinan luego utilizando el algoritmo de fusión seleccionado, en este caso RSF, y se devuelven los candidatos principales.

Resultado de la Búsqueda Híbrida

En este ejemplo, aplicamos un peso de 0.4 para la búsqueda de texto completo y 0.6 para la búsqueda vectorial. Puede ajustar estos pesos para experimentar y encontrar el equilibrio óptimo para sus datos y requisitos de búsqueda.

# Cuándo Utilizar la Búsqueda Híbrida

Las consultas de búsqueda híbrida son especialmente útiles para sistemas de búsqueda que buscan aprovechar el poder de la búsqueda vectorial semántica al mismo tiempo que dependen de la precisión de las coincidencias exactas de palabras clave en la búsqueda de texto completo. Por ejemplo, una consulta de búsqueda como "Who won the Polar Medal" produciría resultados más precisos y relevantes con una búsqueda híbrida que con una búsqueda de texto completo basada en palabras clave estándar o incluso una búsqueda vectorial puramente semántica.

En este escenario:

  • Los 5 mejores resultados de la búsqueda vectorial contienen 3 respuestas correctas:

Resultado de la Búsqueda Vectorial

  • Los 5 mejores resultados de la búsqueda de texto completo contienen 2 respuestas correctas:

Resultado de la Búsqueda de Texto Completo

  • Como se demostró en la sección anterior, los 5 mejores resultados de la búsqueda híbrida contienen 4 respuestas correctas.

Al combinar la búsqueda vectorial y la búsqueda de texto completo, la búsqueda híbrida mejora significativamente la precisión de la búsqueda, ofreciendo una mayor precisión y resultados más relevantes.

Join Our Newsletter

# Conclusión

La búsqueda híbrida es importante porque mejora la precisión y relevancia de los resultados de búsqueda al combinar la búsqueda directa de palabras clave con la profundidad contextual de la búsqueda semántica. Este enfoque dual garantiza que los usuarios reciban no solo coincidencias exactas, sino también resultados contextualmente relevantes, incluso si se utiliza terminología diferente. La búsqueda híbrida también destaca en el manejo de consultas diversas, proporcionando resultados completos y adaptativos que se alinean con la intención del usuario. Su capacidad para optimizar el rendimiento y adaptarse a diversas aplicaciones la convierte en una tecnología clave en la recuperación de información moderna.

Este artículo ha explicado el concepto de búsqueda híbrida y su implementación en MyScale. Si tiene alguna pregunta sobre cómo utilizar la búsqueda híbrida en MyScale, consulte la documentación de MyScale (opens new window) o únase a nuestro Discord (opens new window) para obtener ayuda.

Keep Reading
images
Cómo ajustar finamente un LLM utilizando OpenAI

¡Bienvenido de nuevo a nuestra serie sobre el ajuste fino de modelos de lenguaje (LLMs)! En nuestra publicación anterior, exploramos el [ajuste fino de LLMs utilizando Hugging Face](https://myscale.co ...

Start building your Al projects with MyScale today

Free Trial
Contact Us