Retrieval gives you candidates. Reranking reorders them. It's a two-stage process that separates concerns: stage one fetches quickly and cheaply, stage two scores accurately and expensively. This is pragmatic engineering. You can't afford to apply expensive scoring to everything, so you apply cheap retrieval to everything, then expensive reranking to the best candidates. Multiple signals work here. Semantic similarity scores from your initial retrieval. Lexical overlap scores. Cross-encoder neural scores. Domain-specific signals (freshness, authority, specificity). Combine them with learned weights or simple heuristics. The mechanics vary. Some systems use explicit reranking models trained to predict relevance. Others use heuristic-based reranking (boost recent results, boost high-quality sources, etc.). Some use human feedback loops where user behavior trains the reranker. The sophistication of reranking directly impacts end-user experience. I've seen systems where adding a single reranking pass improves perceived quality dramatically because suddenly relevant results bubble to the top. There's also the ranking diversity problem. Maybe you want your top results to be different perspectives on a question, not ten slightly different versions of the same answer. Reranking can optimize for diversity instead of pure relevance. Or both. The computational budget becomes the constraint. If you have 10ms to respond, you can rerank maybe 100 candidates. If you have 500ms, you can rerank 500. Synap's reranking infrastructure supports multiple scoring strategies, from simple heuristic combination to neural models, letting you tune the latency-accuracy tradeoff for your specific use case.
Why It Matters
Reranking is how you escape the accuracy-latency tradeoff in retrieval. You can afford cheap retrieval everywhere and expensive scoring for top candidates, getting good accuracy without terrible latency. It's fundamental to any production retrieval system that needs to handle scale without sacrificing quality.
Example
An e-commerce search system retrieves 1,000 products matching 'red jacket.' A simple reranking pass considers: user location (prefer nearby inventory), user history (they bought blazers before, maybe casual jackets aren't relevant), ratings, price range. The reranking reorders those 1,000 products so the top 20 are actually things the user probably wants, not random red jackets sorted by sale date.