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

EstrategiaCaso de uso
Score fusionCombinar keyword + semantic
RRFFusionar múltiples rankings (sin scores)
MMRDiversificar resultados (evitar redundancia)
Boost metadataPriorizar docs recientes/populares
EnsembleCombinar 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.