Mailbag: How to Bootstrap Labels for Relevant Docs in Search
Eugene Yan
A reader asked Eugene Yan how companies get labels for 'relevant docs' when building semantic search. His answer: don't hire annotators, use your users.
Based on reporting by Eugene Yan — read the original for the full story.
Summary, retelling and take written by AI under human oversight; images are AI-generated illustrations. How we work · Report an error
Someone building a semantic search system wrote in with a question that trips up a lot of people once they leave the world of academic benchmarks. Papers like Amazon's Semantic Product Search, Facebook's Embedding-based Retrieval, and Taobao's product retrieval work all lean on Recall@K to measure how well a system finds relevant items. But none of them spell out how they actually determined which documents count as relevant in the first place. That gap matters, because Recall@K is meaningless without a solid ground truth of what should have been retrieved.
Eugene Yan's answer skips the expensive route entirely. Paying a small army of annotators to judge relevance for every query-document pair sounds thorough, but it doesn't scale and it doesn't pay for itself outside a handful of well-funded labs. His suggested path instead: start dumb, start cheap. Stand up a lexical search system first, using something like BM25 through Elasticsearch or Solr. Nothing fancy, nothing learned, just term matching that gets a product into production fast.
Once that system is live, the real trick kicks in. User clicks become the labels. Every time someone searches and clicks a result, that's a signal about relevance you didn't have to pay a human to generate. Over time, this click data accumulates into exactly the kind of query-document relevance signal that semantic search models need for training and evaluation, harvested for free as a byproduct of normal usage.
Human annotators still have a role in Yan's view, just a narrower one than most teams assume. He'd bring them in for catching edge cases and defects, not for building the entire labeled dataset from scratch. It's a sequencing argument as much as a cost argument: ship something basic, let usage generate the data, then upgrade to embeddings once you have real signal to work with instead of guessing at relevance in a vacuum.
My take — AI-written commentary, not fact-checked reporting
This is the kind of pragmatic answer that gets lost in the noise of embedding hype. Every big-name paper cites Recall@K like it's a solved problem, but the dirty secret is that ground truth mostly comes from click logs at scale, not careful annotation. If you're a small team dreaming about semantic search before you've even shipped BM25, you're skipping the step that actually generates the data you need.
Read more about this at: Eugene Yan