Single-modality retrieval edge cases-ல் fail ஆகும்: dense vectors rare tokens மற்றும் IDs-ஐ miss செய்யலாம்; pure lexical paraphrase மற்றும் semantic similarity-ஐ miss செய்யலாம். Hybrid retrieval dense semantic, sparse lexical, structured metadata, temporal freshness போன்ற complementary signals-ஐ fuse செய்து stable high-precision candidate sets தருகிறது.
Motivation
Failure scenarios:
- Proper nouns / SKU codes dense model-ல் miss ஆகுதல்.
- Pricing change queries stale snapshots-ஐ freshness boost இல்லாமல் pull செய்தல்.
- Long natural questions sparse-only system-ல் stopwords மீது overweight ஆகுதல்.
- Broad marketing pages semantic false positives தருதல்.
Hybrid இந்த orthogonal evidence dimensions-ஐ capture செய்து risk-ஐ குறைக்கிறது.
Component Layering
Recommended flow:
- Query Embedding → ANN search (k_vec)
- Lexical Search (BM25 / SPLADE / Elasticsearch) (k_lex)
- Union → Score Normalization
- Metadata Filter Pass (locale, access_tier, page_type)
- Diversity & Freshness Adjustments
- Optional Cross/Mono Re-Ranker
- Final Truncation (top K)
Audit க்காக raw pre-fusion scores வைத்திருங்கள்.
Query Normalization
Steps:
- Unicode NFKC normalize செய்யுங்கள்.
- Lowercase செய்யுங்கள்; answer formatting க்காக original casing snapshot வைத்திருங்கள்.
- Stopwords preserve செய்யுங்கள்; semantic embeddings context-ஐ பயன்படுத்தும்.
- Internal product codename mapping க்காக synonym / alias expansion sparse retrieval-ல் மட்டும் பயன்படுத்துங்கள்.
- X.Y.Z போன்ற patterns-ஐ numeric & version extraction மூலம் targeted lexical scoring க்கு capture செய்யுங்கள்.
Metadata & Attribute Filters
Initial candidate union பிறகு filters apply செய்தால் recall loss குறையும். Common fields: locale, access_tier, page_type, product_area, updated_bucket. Security filters (tenant / tier) scoring fusion-க்கு முன் enforce செய்ய வேண்டும்; leakage re-ranking-ஐ influence செய்யக்கூடாது.
Re-Ranking Strategy
Top N (10-20) மீது lightweight cross-encoder பயன்படுத்துங்கள். Latency budget-ஐ மீறினால் rerank skip செய்யவும் அல்லது candidate count குறைத்து lexical weight உயர்த்தவும். re_rank_delta = MRR_post - MRR_pre track செய்து cost justify செய்யுங்கள்.
Freshness & Temporal Signals
freshness_weight = exp(-lambda * age_days) compute செய்யுங்கள்; lambda content type-க்கு ஏற்ப tune செய்யுங்கள். final_score = w_sem * sem_score + w_lex * lex_score + w_fresh * freshness_weight + w_meta * meta_priors என combine செய்யலாம். Dominance தவிர்க்க ஒவ்வொரு component-ஐ முதலில் normalize செய்யுங்கள்.
Failure Modes
| Failure | Cause | Mitigation |
|---|---|---|
| Popularity Bias | Lexical tf-idf overweight | Term frequency contribution cap செய்யுங்கள் |
| Stale Results | Freshness weight தவறாக tuned | Evaluation set கொண்டு lambda recalibrate செய்யுங்கள் |
| Locale Leakage | Late filter application | Security filters-ஐ முன்பாக move செய்யுங்கள் |
| Semantic Drift | Embedding model upgrade | Dual-index மற்றும் A/B compare முன் rollout |
| Over-fusion Noise | Unbounded union size | Union limit மற்றும் diversity pruning |
Evaluation Framework
Ablation experiments நடத்துங்கள்: vector only, lexical only, hybrid without rerank, full. Recall@k, MRR, latency, drift ஆகியவற்றை measure செய்யுங்கள். Fusion weights validation gold set-ல் grid search மூலம் tune செய்யுங்கள்; config hashes உடன் evaluation manifest வைத்திருங்கள்.
Optimization Loop
- Retrieval traces log செய்யுங்கள்: query, candidates, scores, source_tag.
- Mis-hits கண்டறிந்து root cause classify செய்யுங்கள்: missing lexical candidate, semantic false positive, stale content.
- Weights / thresholds adjust செய்து offline suite ஓட்டுங்கள்.
- Feature flag பின்னால் new fusion weights canary செய்யுங்கள்.
- Statistically significant improvement இருந்தால் promote செய்யுங்கள்.
Key Takeaways
- Hybrid retrieval tunable dials கொண்ட system; instrumentation அவசியம்.
- Security & access filters-ஐ early apply செய்யுங்கள்.
- Re-ranking measurable MRR / Recall lift மூலம் latency-ஐ justify செய்ய வேண்டும்.
- Temporal decay outdated high-authority pages dominate செய்வதைத் தடுக்கிறது.
- Fusion changes code போல version, evaluate, roll forward அல்லது back செய்யப்பட வேண்டும்.