← All questions
Retrieval & EmbeddingsHard· Reranking & Post-Retrieval

monoT5 trains a reranker as binary classification — "re...

The error isn’t in the sigmoid squashing or the classification head — both are monotonic transforms, so they can’t reorder candidates within a query, and calibrating the output afterward literally cannot help for the same reason. The error is in the loss shape. monoT5 trains with ordinary cross-entropy on independent (query, document) pairs, so the gradient for one document’s score is a function of that document alone — nothing in the objective ever compares two candidates competing for the same query. But a ranking metric measures exactly that comparison. The practical failure: nudging a distractor’s score up by the same small amount produces an identical loss penalty whether the query is easy (gold document far ahead) or hard (gold document nearly tied) — even though only the hard case actually changes the ranking.

RankT5-style listwise softmax cross-entropy fixes this structurally: the loss normalizes over all candidates for one query, so the same perturbation produces a much larger penalty exactly when it matters, and gradient mass is provably balanced between the positive and the negatives at any list length. Pointwise training keeps re-teaching a model things it already got right on easy queries; listwise training concentrates correction on the document actually causing an error. This is why reranker quality and pointwise classification accuracy can diverge — a 94%-accurate classifier can still leave nDCG@10 untouched.

Code playground (Python)