Hybrid retrieval (ES)
Hybrid Retrieval (recuperación híbrida) — es una clase de métodos de recuperación de información que combinan señales léxicas (sparse) y semánticas (dense/late-interaction) para mejorar la exhaustividad (recall) y la precisión de los resultados. Los esquemas híbridos combinan las ventajas de la coincidencia exacta de términos (BM25/TF-IDF) y la proximidad vectorial (bi-codificadores, modelos multivectoriales de interacción tardía), y utilizan métodos de fusión de clasificaciones robustos a puntuaciones de diferentes escalas (por ejemplo, Reciprocal Rank Fusion, CombSUM/CombMNZ) y re-clasificación con cross-encoders.[1][2][3]
Definición y motivación
La recuperación híbrida es una búsqueda paralela o en cascada a través de dos (o más) canales de señales independientes, seguida de una fusión y/o re-clasificación. Las motivaciones típicas son: (i) superar la «brecha terminológica» (sinónimos, reformulaciones), (ii) robustez ante errores tipográficos/morfología, (iii) extracción de códigos/identificadores específicos (donde los modelos sparse son fuertes), (iv) transferencia a nuevos dominios/idiomas (donde los modelos dense proporcionan generalización semántica).[4][5][6]
Componentes de la búsqueda híbrida
Léxico (sparse)
- Modelos clásicos. TF-IDF y BM25/BM25F son métodos base estándar que utilizan índices invertidos; BM25 se fundamenta en el marco probabilístico PRF y se utiliza ampliamente en la primera etapa de clasificación.[7]
- Modelos sparse entrenables.
- SPLADE / SPLADE++/v3. Un modelo neuro-sparse que aprende la expansión y ponderación de términos a través de una cabeza MLM con regularización de escasez; muestra resultados sólidos y buena transferibilidad (BEIR).[8][9][10]
- uniCOIL/COIL. Listas invertidas contextualizadas y su versión simplificada, uniCOIL; son compatibles con los índices invertidos clásicos.[11]
Semántico (dense/late-interaction)
- Bi-codificador (un solo vector). La consulta y el documento se codifican con modelos vectoriales, y la similitud se calcula mediante producto escalar (dot-product)/MIPS. Ejemplos: DPR,[12] ANCE,[13] Contriever,[14] GTR,[15] E5.[16]
- Interacción tardía (multivectorial). Modelan correspondencias a nivel de token durante una interacción «tardía»: ColBERT/ColBERTv2; el compromiso es una mayor precisión a costa de un índice/latencia más grandes, lo cual se mitiga con optimizaciones de ingeniería (PLAID, WARP).[17][18][19]
Esquemas de hibridación y fusión de clasificaciones
- Búsqueda paralela y fusión de candidatos. Se obtienen listas de candidatos de forma independiente (sparse y dense) con sus puntuaciones internas; luego, se realiza la fusión de clasificaciones.[20]
- RRF (Reciprocal Rank Fusion). Técnica robusta a puntuaciones de clasificación no comparables que suma los rangos recíprocos:
, donde usualmente .[21] Soportado en motores de búsqueda comerciales (Elasticsearch/OpenSearch) como un recuperador/procesador integrado.[22][23]
- CombSUM/CombMNZ y otros. Funciones clásicas de «suma de puntuaciones» (con normalización si es necesario).[24][25][26]
- Combinación lineal ponderada.
, . La elección de puede ser fija o entrenable (por colección/por consulta).[27]
- Normalización de puntuaciones. Para CombSUM/CombMNZ, a menudo se utilizan min-max, z-score, etc., para alinear las escalas;[28] alternativamente, RRF se basa únicamente en los rangos.
- Ponderación dinámica/adaptativa. Enrutamiento de consultas (query routing), características de la consulta y modelos de LTR para seleccionar/ponderar los canales; trabajos recientes muestran que una simple combinación entrenada a menudo supera a RRF y es poco sensible a la normalización.[29]
Re-clasificación y pipelines multi-etapa
Los sistemas híbridos suelen construirse como recuperación → fusión → re-clasificación. Para la re-clasificación se utilizan:
- Cross-encoders (BERT/T5). Los más precisos, pero costosos: MonoBERT/MonoT5 para reordenar los N mejores candidatos.[30][31]
- Interacción tardía como re-clasificador. La familia ColBERT también puede actuar como re-clasificador; los aceleradores modernos (PLAID, WARP) reducen la latencia sin pérdida de calidad.[32][33]
El compromiso entre calidad ↔ latencia/costo es especialmente importante en RAG y con SLAs estrictos (ver latencias de cola p95/p99).[34]
Evaluación en benchmarks
- BEIR. Un conjunto unificado de colecciones/tareas heterogéneas para la evaluación zero-shot/out-of-domain de recuperadores (p. ej., TREC‑COVID, NFCorpus, NQ, HotpotQA, FiQA‑2018, DBPedia-entity, ArguAna, Webis‑Touché‑2020, FEVER/Climate‑FEVER, Scidocs, SciFact, CQADupStack y otros).[35]
- TREC Deep Learning / MS MARCO. Recursos clásicos para entrenar/evaluar recuperadores y re-clasificadores en un entorno de big data.[36][37][38]
- Métricas de calidad. nDCG@k, Recall@k, MRR; para el rendimiento: latencia p50/p95/p99, QPS; para la operación: memoria/costo (CPU/GPU, índice).[39][40]
- Estudios de ablación. Se recomienda registrar la contribución de cada canal/peso y la sensibilidad a los parámetros en RRF y en la combinación; evaluar la robustez a reformulaciones y cambios OOD (out-of-domain).[41][42]
Aspectos de ingeniería y prácticas de producción
- Índices y ANN. FAISS (Flat/HNSW/IVF-PQ), HNSW, ScaNN para MIPS/similitud de coseno.[43][44][45]
- Pila de IR. Lucene/Anserini/Pyserini para pipelines sparse, dense e híbridos; reproducibilidad «con dos botones» en BEIR.[46][47]
- Bases de datos vectoriales y motores de búsqueda. Qdrant, Weaviate, pgvector/PostgreSQL, Vespa, Elasticsearch/OpenSearch tienen modos nativos de búsqueda híbrida (BM25F+vector) y/o fusión con RRF/combinación lineal.[48][49][50][51][52]
- Patrón RAG. Arquitectura: recuperación → fusión → re-clasificación → contexto LLM con limitación de tokens y trazabilidad de fuentes.[53]
- Actualización de índices, deduplicación, tokenización. Es importante alinear la tokenización entre BM25 y el vectorizador; calibración de puntuaciones (normalización/escalado) antes de la combinación.[54]
Limitaciones y preguntas abiertas
- Portabilidad y multilingüismo. Los modelos dense (GTR/E5) mejoran la transferencia pero son sensibles al dominio/idioma; los modelos sparse (SPLADE) suelen ser más robustos en entornos OOD.[55][56]
- Integración con LLM y alucinaciones. La recuperación híbrida reduce las omisiones y el ruido en los contextos de RAG, pero no elimina por completo las alucinaciones; se necesitan re-clasificadores estrictos y filtrado de fuentes.[57]
- Costo y privacidad. Almacenamiento de índices multivectoriales, compresión, cifrado y pila on-premise; evaluación del TCO.
- Tendencias. HyDE/doc2query/PRF como expansión de documentos/consultas;[58][59] aprendizaje de la combinación ( por consulta), interacciones tardías más eficientes (PLAID/WARP), documentos largos e índices multivectoriales.[60][61]
Tabla comparativa de métodos
A fecha de 2025-09-10 (ejemplo con la colección de BEIR trec-covid; nDCG@10 / Recall@100):[62]
| Método | Tipo (sparse/dense/híbrido) | Idea/Modelo | Esquema de fusión | Re-clasificador | nDCG@10 / R@100 | Latencia (rel.) | Fuentes |
|---|---|---|---|---|---|---|---|
| BM25 | sparse | Coincidencia exacta de términos (PRF/BM25) | — | — | 0.595 / 0.109 | muy baja | [63][64] |
| SPLADE++ (ED) | sparse (aprendido) | Expansión/ponderación dispersa de términos | — | — | 0.727 / 0.128 | baja-media | [65][66] |
| Contriever (MS MARCO FT) | dense | Bi-codificador de aprendizaje contrastivo | — | — | 0.596 / 0.091 | media | [67][68] |
| BGE-base-en-v1.5 | dense | Embedder universal potente | — | — | 0.781 / 0.141 | media | [69] |
| Cohere embed-english-v3.0 | dense | Modelo de embedding de texto de nivel industrial | — | — | 0.818 / 0.159 | media | [70] |
| BM25 + dense (ej.: BM25+BGE) | híbrido | Recuperación paralela + fusión de listas | RRF (k≈60) o combinación ponderada | opc.: MonoT5/ColBERT | (varía según la implementación; generalmente > que el mejor canal individual) | media | [71][72][73] |
Nota: la última fila ilustra el esquema; las cifras exactas dependen de la elección del embedder, la normalización y los parámetros de fusión (consulte las fuentes y los scripts reproducibles de Pyserini).
Enlaces externos
- Pyserini / Anserini: github.com/castorini/pyserini • github.com/castorini/anserini
- FAISS: arXiv:1702.08734
- Weaviate (Hybrid search): docs.weaviate.io/weaviate/search/hybrid
- pgvector: github.com/pgvector/pgvector
- Vespa (Hybrid search tutorial): docs.vespa.ai/en/tutorials/hybrid-search.html
Literatura
- Manning, C.D., Raghavan, P., Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press. ISBN 978‑0521865715.
- Robertson, S., Zaragoza, H. (2009). The Probabilistic Relevance Framework: BM25 and Beyond. Foundations and Trends in Information Retrieval 3(4):333–389. DOI:10.1561/1500000019.
- Lin, J. et al. (2021). Pyserini: A Python Toolkit for Reproducible IR. SIGIR.
- Järvelin, K., Kekäläinen, J. (2002). Cumulated Gain‑Based Evaluation of IR Techniques. Information Retrieval 6:241–256. DOI:10.1023/A:1016043826386.
- Dean, J., Barroso, L.A. (2013). The Tail at Scale. CACM 56(2):74–80. DOI:10.1145/2408776.2408794.
Referencias
- ↑ Robertson, S., Zaragoza, H. (2009). The Probabilistic Relevance Framework: BM25 and Beyond. Foundations and Trends in Information Retrieval, 3(4), 333–389. DOI:10.1561/1500000019.
- ↑ Cormack, G.V., Clarke, C.L.A., Büttcher, S. (2009). Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods. SIGIR 2009, 758–759. PDF.
- ↑ Bruch, S., Gai, S., Ingber, A. (2023). An Analysis of Fusion Functions for Hybrid Retrieval. ACM TOIS 42(1):1–35. DOI:10.1145/3596512 • arXiv:2210.11934.
- ↑ Manning, C.D., Raghavan, P., Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press. ISBN 978‑0521865715 (ver capítulos sobre TF‑IDF, evaluación y el problema de vocabulary mismatch).
- ↑ Izacard, G. et al. (2022). Unsupervised Dense Information Retrieval with Contrastive Learning (Contriever). TACL 10:1089–1108. arXiv:2112.09118.
- ↑ Wang, L. et al. (2022/2024). Text Embeddings by Weakly‑Supervised Contrastive Pre‑training (E5). arXiv:2212.03533.
- ↑ Robertson, S., Zaragoza, H. (2009). The Probabilistic Relevance Framework: BM25 and Beyond. DOI:10.1561/1500000019.
- ↑ Formal, T., Piwowarski, B., Clinchant, S. (2021). SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking. arXiv:2107.05720.
- ↑ Formal, T. et al. (2022). Making Sparse Neural IR Models More Effective. Findings of EMNLP. arXiv:2205.04733.
- ↑ Formal, T. et al. (2024). SPLADE‑v3: New baselines for SPLADE. arXiv:2403.06789.
- ↑ Lin, J., Ma, X. (2021). A Few Brief Notes on DeepImpact, COIL, and uniCOIL. arXiv:2106.14807.
- ↑ Karpukhin, V. et al. (2020). Dense Passage Retrieval for Open‑Domain QA. EMNLP. arXiv:2004.04906.
- ↑ Xiong, L. et al. (2021). Approximate Nearest Neighbor Negative Contrastive Learning for Dense Text Retrieval (ANCE). ICLR. arXiv:2007.00808.
- ↑ Izacard, G. et al. (2022). TACL. arXiv:2112.09118.
- ↑ Ni, J. et al. (2021/2022). Large Dual Encoders Are Generalizable Retrievers (GTR). EMNLP. arXiv:2112.07899.
- ↑ Wang, L. et al. (2022/2024). arXiv:2212.03533.
- ↑ Khattab, O., Zaharia, M. (2020). ColBERT: Efficient and Effective Passage Search via Contextualized Late Interaction over BERT. SIGIR. arXiv:2004.12832.
- ↑ Santhanam, K. et al. (2022). ColBERTv2 & PLAID. NAACL/ArXiv. arXiv:2112.01488; arXiv:2205.09707.
- ↑ Scheerer, J.L. et al. (2025). WARP: An Efficient Engine for Multi‑Vector Retrieval. arXiv:2501.17788.
- ↑ Lin, J. et al. (2021). Pyserini: A Python Toolkit for Reproducible IR with Sparse and Dense Representations. SIGIR. PDF.
- ↑ Cormack, G.V., Clarke, C.L.A., Büttcher, S. (2009). SIGIR. PDF.
- ↑ Elastic Docs. Reciprocal Rank Fusion. (acceso 2025‑09‑10). elastic.co/docs/.../reciprocal-rank-fusion.
- ↑ OpenSearch Docs. Score ranker processor (RRF). (acceso 2025‑09‑10). docs.opensearch.org/.../score-ranker-processor/.
- ↑ Fox, E.A., Shaw, J.A. (1994). Combination of Multiple Searches. TREC‑2, NIST SP 500‑215, 243–252. PDF.
- ↑ Lee, J.H. (1997). Analyses of Multiple Evidence Combination. SIGIR, 267–276. DOI:10.1145/258525.258587.
- ↑ Hsu, D.F., Taksa, I. (2005). Comparing Rank and Score Combination Methods for Data Fusion in IR. (Tech. report). PDF.
- ↑ Bruch, S., Gai, S., Ingber, A. (2023). TOIS. DOI:10.1145/3596512.
- ↑ Hsu, D.F., Taksa, I. (2005). ver arriba.
- ↑ Bruch, S., Gai, S., Ingber, A. (2023). TOIS. DOI:10.1145/3596512.
- ↑ Nogueira, R., Cho, K. (2019). Passage Re‑ranking with BERT. arXiv:1901.04085.
- ↑ Nogueira, R., Jiang, Z., Lin, J. (2020). Document Ranking with a Pretrained Sequence‑to‑Sequence Model (MonoT5). Findings of EMNLP. arXiv:2003.06713.
- ↑ Santhanam, K. et al. (2022). arXiv:2205.09707.
- ↑ Scheerer, J.L. et al. (2025). arXiv:2501.17788.
- ↑ Dean, J., Barroso, L.A. (2013). The Tail at Scale. CACM 56(2):74–80. DOI:10.1145/2408776.2408794.
- ↑ Thakur, N. et al. (2021). BEIR: A Heterogeneous Benchmark for Zero‑shot Evaluation of IR Models. NeurIPS Datasets & Benchmarks. arXiv:2104.08663.
- ↑ Craswell, N. et al. (2020). Overview of the TREC 2019 Deep Learning Track. arXiv:2003.07820.
- ↑ Craswell, N. et al. (2021). Overview of the TREC 2020 Deep Learning Track. arXiv:2102.07662.
- ↑ Bajaj, P. et al. (2016). MS MARCO: A Human Generated MAchine Reading COmprehension Dataset. arXiv:1611.09268.
- ↑ Järvelin, K., Kekäläinen, J. (2002). Cumulated Gain‑Based Evaluation of IR Techniques. Information Retrieval 6:241–256. DOI:10.1023/A:1016043826386.
- ↑ Dean, J., Barroso, L.A. (2013). CACM. DOI:10.1145/2408776.2408794.
- ↑ Bruch, S. et al. (2023). DOI:10.1145/3596512.
- ↑ Ni, J. et al. (2021/2022). arXiv:2112.07899.
- ↑ Johnson, J., Douze, M., Jégou, H. (2017). Billion‑scale Similarity Search with GPUs (FAISS). arXiv:1702.08734.
- ↑ Malkov, Y., Yashunin, D. (2020). HNSW. IEEE TPAMI 42(4):824–836. DOI:10.1109/TPAMI.2018.2889473.
- ↑ Guo, R. et al. (2020). ScaNN: Efficient Vector Similarity Search at Scale. arXiv:1908.10396.
- ↑ Yang, P., Fang, H., Lin, J. (2018). Anserini: Reproducible IR Research with Lucene. JDIQ 10(4):1–20. DOI:10.1145/3239571.
- ↑ Lin, J. et al. (2021). SIGIR. PDF.
- ↑ Qdrant Docs. Hybrid queries (RRF, DBSF). (acceso 2025‑09‑10). qdrant.tech/.../hybrid-queries/.
- ↑ Weaviate Docs. Hybrid search. (acceso 2025‑09‑10). docs.weaviate.io/weaviate/search/hybrid.
- ↑ pgvector GitHub. (acceso 2025‑09‑10). github.com/pgvector/pgvector.
- ↑ Vespa Docs. Hybrid Text Search Tutorial. (acceso 2025‑09‑10). docs.vespa.ai/.../hybrid-search.html.
- ↑ Elastic Docs. Reciprocal Rank Fusion. (acceso 2025‑09‑10). elastic.co/docs/.../rrf.
- ↑ Lewis, P. et al. (2020). Retrieval‑Augmented Generation for Knowledge‑Intensive NLP Tasks. NeurIPS. arXiv:2005.11401.
- ↑ Hsu, D.F., Taksa, I. (2005). ver arriba.
- ↑ Ni, J. et al. (2021/2022). arXiv:2112.07899.
- ↑ Formal, T. et al. (2021, 2022, 2024). arXiv:2107.05720; 2205.04733; 2403.06789.
- ↑ Lewis, P. et al. (2020). arXiv:2005.11401.
- ↑ Gao, L. et al. (2023). Precise Zero‑Shot Dense Retrieval without Relevance Labels (HyDE). ACL. arXiv:2212.10496.
- ↑ Nogueira, R. et al. (2019). Document Expansion by Query Prediction. arXiv:1904.08375; docTTTTTquery. PDF.
- ↑ Santhanam, K. et al. (2022). arXiv:2205.09707.
- ↑ Scheerer, J.L. et al. (2025). arXiv:2501.17788.
- ↑ Pyserini BEIR Regressions (acceso 2025‑09‑10): resultados para trec-covid de BM25/SPLADE/Contriever/BGE/Cohere. castorini.github.io/pyserini/2cr/beir.html.
- ↑ Robertson, S., Zaragoza, H. (2009). DOI:10.1561/1500000019.
- ↑ Pyserini BEIR. Ver enlace arriba.
- ↑ Formal, T. et al. (2021, 2022). arXiv:2107.05720; 2205.04733.
- ↑ Pyserini BEIR.
- ↑ Izacard, G. et al. (2022). arXiv:2112.09118.
- ↑ Pyserini BEIR.
- ↑ Pyserini BEIR.
- ↑ Pyserini BEIR.
- ↑ Cormack et al. (2009). SIGIR. RRF.
- ↑ Bruch et al. (2023). TOIS.
- ↑ Elastic/OpenSearch RRF Docs.