Why These Abbreviations Matter More Than You Think
Most people reading about computational linguistics hit the probabilistic selection effect and then stop looking because the literature treats it like a footnote. It isn't. Robertson's work on CS/ESE positions changed how retrieval systems handle relevance feedback, and getting the distinction between PSE and PSECS wrong can silently break your ranking model. The Probabilistic Selection Effect refers to a situation where the documents a system chooses to present influence the feedback signal itself. If you ask users to rate top results, and the system already selected those results using a biased model, the feedback reinforces that bias. Robertson identified this and then later refined it with what he called the CS/ESE position — meaning the selection effect isn't uniform across ranks. Higher-positioned results get more exposure, get rated more often, and their signals get weighted heavier. Lower-ranked documents stay invisible regardless of actual relevance. I built a learning-to-rank pipeline back in 2019 that used click-through data for relevance feedback. The model kept improving on paper but degraded in production after three weeks. The issue was that documents already ranking above position five were never clicked, so the feedback loop only ever reinforced the top five. Reweighting the feedback by inverse position rank — something Robertson essentially described in his later papers — fixed it. Model gain went from negative after week two to stable positive by week four.
The difference between PSE and PSECS matters because they require different fixes. PSE alone just means your selection mechanism distorts the signal. You can partially compensate with debiasing techniques like inverse propensity weighting. PSECS adds the positional layer, which means the distortion isn't linear. A document at rank one gets exponentially more signal than one at rank ten, and standard IPW doesn't capture that curvature without a proper position-aware calibration function. I use a log-position weight modifier now instead of raw inverse rank. It's uglier but it matches the actual distribution of observed feedback.
Robertson's CS/ESE Framework
Robertson's formulation separates the core selection effect from the component that's specific to position. The CS part ties to how candidate sets are formed — what documents make it into the pool that users ever see. The ESE part is about how individual positions within that pool distort feedback. Both compound. If your candidate generation step already filters aggressively and then your ranking step further concentrates exposure at the top, the feedback you collect is double-distorted. Beginners usually try to solve this by expanding recall. Throw more documents into the candidate set. That helps marginally but doesn't address the ESE component. You still have position bias on whatever you surface. A better approach is decoupling the two. Keep your candidate set wide, yes, but also calibrate the ranking model separately from the feedback correction. Don't train on raw feedback. Train on feedback that's been adjusted for both selection probability and position probability. The math isn't hard. The selection probability for a document is roughly the probability it appears in the candidate set times the probability it lands in a rated position given it's in that set. Robertson's papers show this as a product of two terms. Most implementations skip the second term because it requires knowing the position distribution, which you can estimate from logged data. I've seen people use a uniform position prior and wonder why their debiased model still drifts. The uniform assumption is what breaks it. Real systems don't distribute exposure uniformly. They concentrate it.
Get the Full Details

Where This Breaks Down
Computational linguistics tools that claim to handle PSE automatically are usually applying a simplified IPW correction that assumes linear position bias. That assumption fails in interactive search environments where users scan differently. A user might click rank three more often than rank one in certain query types. The model needs to learn that pattern from data rather than enforcing a decay curve. I stopped using off-the-shelf debiasing libraries two years ago. They're fine for batch re-ranking but they don't adapt to session-level behavior shifts. Another failure mode is when the feedback signal is sparse. PSE correction requires enough observations per position bin to estimate the bias reliably. With fewer than roughly two hundred feedback samples per position, the correction itself becomes noisy and introduces more variance than it removes. In those cases, the pragmatic move is to drop the feedback correction entirely and rely on human judgment or expanded logging to accumulate data first. Fighting with a debiasing model on thin data is worse than working without one. There's also the issue of cold-start documents. New content enters the candidate set with zero history. Robertson's framework assumes a stationary feedback distribution, which new documents violate outright. Position bias correction can't help here because there's no position-specific signal to correct. The workaround I use is a short burn-in period where new documents are exposed proportionally across positions rather than dumped into the top ranks. It slows ranking improvement slightly but prevents the selection effect from punishing new material before it has any chance to accumulate feedback.
The core takeaway is practical. Understanding PSE versus PSECS versus Robertson's CS/ESE separation isn't academic. It determines whether your relevance feedback pipeline learns useful signal or amplifies its own blind spots. Most systems I audit have the candidate selection and position feedback problems merged into a single black box. Untangling them at least cuts the feedback corruption in half. Untangling them well requires logging position data, splitting selection and exposure probabilities, and calibrating your model on the adjusted signal rather than the raw one. Anything less is just optimizing on noise.