Elasticsearch está repleto de características nuevas que te ayudarán a desarrollar las mejores soluciones de búsqueda para tu caso de uso. Aprende a ponerlas en práctica en nuestro webinar práctico sobre crear una experiencia moderna de búsqueda con IA. También puedes iniciar una prueba gratuita en el cloud o prueba Elastic en tu máquina local ahora mismo.
En nuestra publicación de blog anterior , presentamos el marco de recuperadores rediseñado desde cero, que permite la creación de canalizaciones de clasificación complejas. También exploramos cómo el recuperador Reciprocal Rank Fusion (RRF) permite la búsqueda híbrida al fusionar resultados de diferentes consultas. Si bien RRF es fácil de implementar, tiene una limitación notable: se enfoca puramente en rangos relativos, ignorando los puntajes reales. Esto hace que el ajuste y la optimización sean un desafío.
¡Conoce al retriever lineal!
En esta publicación, presentamos el linear retriever, ¡nuestra última incorporación para apoyar la búsqueda híbrida! A diferencia de rrf, el recuperador de linear calcula una suma ponderada en todas las consultas que coinciden con un documento. Este enfoque conserva la importancia relativa de cada documento dentro de un conjunto de resultados al tiempo que permite un control preciso sobre la influencia de cada consulta en el puntaje final. Como resultado, proporciona una forma más intuitiva y flexible de ajustar la búsqueda híbrida.
Definición de un recuperador lineal donde el puntaje final se calculará como:
Es tan simple como:
¿Notas lo simple e intuitivo que es? (¡y muy similar a rrf!) Esta configuración le permite controlar con precisión cuánto contribuye cada tipo de consulta a la clasificación final, a diferencia de rrf, que se basa únicamente en clasificaciones relativas.
Queda una advertencia: knn puntajes pueden estar estrictamente limitados, dependiendo de la métrica de similitud empleada. Por ejemplo, con la similitud del coseno o el producto punto de los vectores estandarizados por unidades, los puntajes siempre estarán dentro del rango [0, 1] . Por el contrario, bm25 puntajes son menos previsibles y no tienen límites claramente definidos.
Escalando los puntajes: kNN vs BM25
Un desafío de la búsqueda híbrida es que diferentes recuperadores producen puntajes en diferentes escalas. Considere, por ejemplo, el siguiente escenario:
Puntajes de la consulta A:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 100 | 1.5 | 1 | 0.5 |
Puntajes de la consulta B:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 0.63 | 0.01 | 0.3 | 0.4 |
Puede ver la disparidad arriba: kNN puntajes oscilan entre 0 y 1, mientras que bm25 puntajes pueden variar enormemente. Esta diferencia hace que sea difícil establecer pesos óptimos estáticos para combinar los resultados.
Normalización al rescate: el normalizador MinMax
Para solucionar esto, introdujimos un normalizador de minmax opcional que escala los puntajes, de forma independiente para cada consulta, al rango de [0, 1] mediante la siguiente fórmula:
Esto conserva la importancia relativa de cada documento dentro del conjunto de resultados de una consulta, lo que facilita la combinación de puntajes de diferentes recuperadores. Con la normalización, los puntajes se convierten en:
Puntajes de la consulta A:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 1.00 | 0.01 | 0.005 | 0.000 |
Puntajes de la consulta B:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 1.00 | 0.000 | 0.465 | 0.645 |
Todos los puntajes ahora se encuentran en el rango de [0, 1] y optimizar la suma ponderada es mucho más sencillo, ya que ahora capturamos la importancia (relativa a la consulta) de un resultado en lugar de su puntaje absoluto y mantenemos la coherencia entre las consultas.
Ejemplo de recuperador lineal
Veamos un ejemplo ahora para mostrar cómo se ve lo anterior y cómo el linear retriever aborda algunas de las deficiencias de rrf. RRF se basa únicamente en rangos relativos y no considera las diferencias de puntaje reales. Por ejemplo, dadas estos puntajes:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 100 | 1.5 | 1 | 0.5 |
| puntaje de la fuerza de avance | 0.03226 | 0.03252 | 0.03200 | 0.03125 |
RRF clasificaría los documentos como:
Sin embargo, doc1 tiene un puntaje de bm25 significativamente más alta que los demás, que rrf no logra capturar porque solo analiza los rangos relativos. El recuperador de linear , combinado con la normalización, explica correctamente tanto los puntajes como sus diferencias, produciendo una clasificación más significativa:
| doc1 | doc2 | doc3 | doc4 | |
|---|---|---|---|---|
| knn | 0.347 | 0.35 | 0.348 | 0.346 |
| bm25 | 1 | 0.01 | 0.005 | 0 |
Como podemos ver en lo anterior, la gran clasificación y score de doc1 para bm25 se contabiliza adecuadamente y se refleja en los puntajes finales. Además de eso, todos los puntajes se encuentran ahora en el rango [0, 1] para que podamos compararlas y combinarlas de una manera mucho más intuitiva (e incluso construir procesos de optimización offline).
Poniéndolo todo junto
Para aprovechar al máximo el recuperador de linear con normalización, la solicitud de búsqueda tendría el siguiente aspecto:
Este enfoque combina lo mejor de ambos mundos: conserva la flexibilidad y el puntaje intuitivo del recuperador de linear , al tiempo que garantiza una escala de puntaje consistente con la normalización MinMax.
Al igual que con todos nuestros retrievers, el linear retriever se puede integrar en cualquier nivel de un árbol jerárquico de retriever, con soporte para explicabilidad, resaltado de coincidencias, colapso de campo y más.
Cuándo elegir el retriever lineal y por qué marca la diferencia
El linear retriever:
- Preserva la importancia relativa al aprovechar los puntajes reales, no solo los rangos.
- Permite el ajuste fino con contribuciones ponderadas de diferentes consultas.
- Mejora la coherencia mediante la normalización, lo que hace que la búsqueda híbrida sea más estable y previsible.
Conclusión
El recuperador de linear ya está disponible en Elasticsearch Serverless y en las versiones 8.18 y 9.0. También se pueden encontrar más ejemplos y parámetros de configuración en nuestra documentación. Pruébelo y vea cómo puede mejorar su experiencia de búsqueda híbrida: esperamos sus comentarios. ¡Feliz búsqueda!
Preguntas frecuentes
¿Cómo mejora el recuperador lineal la búsqueda híbrida en comparación con el enfoque anterior de fusión de rango recíproco (RRF)?
El recuperador lineal ofrece varios beneficios sobre el RRF en la búsqueda híbrida. Mientras que RRF se centra únicamente en los rangos relativos e ignora los puntajes reales, el recuperador lineal calcula una suma ponderada en todas las consultas, preservando la importancia relativa de cada documento. Este enfoque permite un control más preciso sobre cómo los diferentes tipos de consulta contribuyen a la clasificación final. Además, el recuperador lineal admite técnicas de normalización como MinMax, lo que facilita la combinación de puntajes de diferentes recuperadores y optimiza el resultado final de la búsqueda. Esta flexibilidad y control proporcionan una experiencia de búsqueda híbrida más intuitiva y ajustada.




