Módulo 6: Diseño de Sistemas de Búsqueda
5. Estrategias de Ranking Avanzadas
Descripción
Esta cápsula cubre técnicas avanzadas de ranking: fusión de scores (keyword + semantic), RRF (Reciprocal Rank Fusion), MMR (Maximal Marginal Relevance), y personalización con metadata.
Estrategia 1: Score fusion (keyword + semantic)
Problema:
Quieres combinar keyword search (BM25) con semantic search (coseno).
Solución: Weighted sum
final_score = α × semantic_score + (1-α) × bm25_score
Donde:
- α = 0.7 (70% semantic, 30% keyword)
- semantic_score ∈ [0, 1] (normalizado)
- bm25_score ∈ [0, 1] (normalizado)
Ejemplo:
Doc A:
semantic_score = 0.85
bm25_score = 0.60
final_score = 0.7 × 0.85 + 0.3 × 0.60 = 0.595 + 0.18 = 0.775
Doc B:
semantic_score = 0.70
bm25_score = 0.90
final_score = 0.7 × 0.70 + 0.3 × 0.90 = 0.49 + 0.27 = 0.76
Ranking: Doc A > Doc B (0.775 > 0.76)
Ajustar α:
- α = 0.5 → Balance igual
- α = 0.7 → Favor semantic (queries conceptuales)
- α = 0.3 → Favor keyword (queries exactas)
Estrategia 2: RRF (Reciprocal Rank Fusion)
¿Qué es RRF?
Fusionar rankings sin depender de scores absolutos (que pueden no ser comparables).
Fórmula:
RRF(doc) = Σ 1 / (k + rank_i)
Donde:
- rank_i: Posición del doc en ranking i
- k: Constante (típicamente k=60)
Ejemplo:
Ranking keyword:
1. Doc A
2. Doc B
3. Doc C
Ranking semantic:
1. Doc C
2. Doc A
3. Doc D
RRF scores:
Doc A: 1/(60+1) + 1/(60+2) ≈ 0.0164 + 0.0161 = 0.0325
Doc B: 1/(60+2) + 0 ≈ 0.0161
Doc C: 1/(60+3) + 1/(60+1) ≈ 0.0159 + 0.0164 = 0.0323
Doc D: 0 + 1/(60+3) ≈ 0.0159
Ranking final:
1. Doc A (0.0325) ✅
2. Doc C (0.0323)
3. Doc B (0.0161)
4. Doc D (0.0159)
Ventaja: No requiere normalizar scores (funciona con rankings).
Estrategia 3: MMR (Maximal Marginal Relevance)
Problema:
Top-10 resultados son muy similares entre sí (redundancia).
Objetivo:
Diversificar resultados (relevancia + diversidad).
Algoritmo:
1. Inicializar: Selected = []
2. Para cada iteración (hasta K resultados):
a. Para cada doc en Candidates:
mmr_score = λ × relevance(doc, query)
- (1-λ) × max_similarity(doc, Selected)
b. Agregar doc con mayor mmr_score a Selected
3. Retornar Selected
Parámetros:
- λ = 1.0 → Solo relevancia (sin diversidad)
- λ = 0.5 → Balance (50% relevancia, 50% diversidad)
- λ = 0.0 → Solo diversidad (no recomendado)
Ejemplo:
Query: "Python"
Top-5 kNN:
1. Doc A: "Tutorial de Python" (coseno: 0.95)
2. Doc B: "Guía de Python" (coseno: 0.94) [muy similar a A]
3. Doc C: "Python vs JavaScript" (coseno: 0.88)
4. Doc D: "Tipos de datos en Python" (coseno: 0.85)
5. Doc E: "Librerías de Python" (coseno: 0.83)
Sin MMR (solo relevancia):
1. Doc A
2. Doc B [redundante con A]
3. Doc C
Con MMR (λ=0.7):
1. Doc A (más relevante)
2. Doc C (diverso: comparación)
3. Doc D (diverso: tipos de datos)
Uso: E-commerce (diversificar productos), búsqueda académica (múltiples perspectivas).
Estrategia 4: Personalización con metadata
Escenario:
Ponderar resultados según metadata (ej: documentos recientes > antiguos).
Ejemplo: Boost por fecha
final_score = semantic_score × time_boost
time_boost:
- Documentos < 1 mes: 1.5x
- Documentos 1-6 meses: 1.2x
- Documentos 6-12 meses: 1.0x
- Documentos > 1 año: 0.8x
Ejemplo numérico:
Doc A:
semantic_score = 0.80
timestamp = 2024-11-01 (1 mes)
boost = 1.5
final_score = 0.80 × 1.5 = 1.20
Doc B:
semantic_score = 0.85
timestamp = 2022-06-01 (2 años)
boost = 0.8
final_score = 0.85 × 0.8 = 0.68
Ranking: Doc A > Doc B (aunque B tenía mayor score semantic)
Estrategia 5: Ensemble (múltiples embeddings)
Escenario:
Usar múltiples modelos de embeddings y fusionar.
Ejemplo:
Query: "machine learning"
Embedding 1 (OpenAI ada-002): top-100
Embedding 2 (Cohere embed-v3): top-100
Fusionar con RRF → top-10 final
Ventaja: Más robusto (múltiples perspectivas).
Desventaja: Mayor costo (2x embeddings).
Cuándo usar cada estrategia
| Estrategia | Caso de uso |
|---|---|
| Score fusion | Combinar keyword + semantic |
| RRF | Fusionar múltiples rankings (sin scores) |
| MMR | Diversificar resultados (evitar redundancia) |
| Boost metadata | Priorizar docs recientes/populares |
| Ensemble | Combinar múltiples modelos de embedding |
Resumen
Puntos clave:
- Score fusion: Weighted sum (α)
- RRF: Fusión por rankings (sin scores)
- MMR: Relevancia + diversidad
- Boost metadata: Ponderación por fecha/popularidad
- Ensemble: Múltiples embeddings
Próxima cápsula: 06-quality-evaluation.md — Precision, recall, MRR, NDCG.