← Back
Behnaz Nojavanasghari  ·  May 2026

Winner Take Most
How Ranking Algorithms Quietly Hollow Out Your Marketplace

TL;DR

Ranking systems are implicit allocation mechanisms. Left unconstrained, they concentrate exposure in ways that silently hollow out the supply base they depend on, and your engagement metrics won't show it until the damage is done. In this post, I explain why it happens, what makes it difficult to address, and what a principled approach actually looks like.

Note: This post reflects general research ideas in ranking and marketplace design and does not refer to any specific company or system.

Last year I showed up to a tech event in Los Angeles. I walked in expecting engineers debating architectures. There was a DJ setup, mezcal sponsors, and a crowd unmistakably more stylish than the average tech happy hour. The event was not particularly impressive, but the DJ was. Something about his style was unique, the kind of thing you don't hear often.

I walked over and asked him: "how come I don't know you?" He laughed and then got a little serious. That question, apparently, hit something real. He was a new artist, and getting discovered on online platforms was exactly what he was struggling with. The algorithm wasn't surfacing him. It was surfacing what was already working, and what was already working kept getting more of everything.

That conversation stayed with me, partly because I spend my days thinking about the right way to design these systems, and partly because the power of search and recommendation reaches far beyond any platform. Some of the most consequential things that happened to me, professionally and otherwise, trace back to a search result, a recommendation, a piece of content that surfaced at the right moment. Most people have a version of this. Few have ever stopped to consider how many of those moments were quietly shaped by systems none of us designed. This post is about why winner-take-most outcomes emerge by default, why they're hard to fix, and what it would take to build something better.

1 · The Invisible Monopoly in Your Feed

When you browse Amazon, Yelp, or Netflix, you are navigating a digital economy whose primary currency is exposure, meaning the probability that a user's attention lands on any given item. These systems routinely suffer from a structural failure mode known as the long-tail effect, where a small number of "rich" items, the historically popular, the repeatedly clicked, the already highly ranked, monopolize the top positions, while new or niche items are buried far below the fold, where almost no organic discovery happens.

This exposure inequality does not merely disadvantage small providers. It threatens the long-run vitality of the entire platform. The feedback loop is self-reinforcing. High exposure generates more clicks, more clicks produce more behavioral data, more data improves relevance scores, and better scores produce even higher exposure. Top performers accumulate; the rest get progressively less. Below some viability threshold, providers exit. Their exit reduces supply diversity. Reduced diversity degrades future match quality. And by the time this shows up in your engagement metrics, the damage is already done.

A relevance-optimized ranking system can simultaneously maximize user satisfaction in every single interaction and systematically hollow out the market it depends on. These objectives are not in conflict in the short run. They are in serious conflict over multi-year timescales, and most of our measurement infrastructure is blind to it.

Traditional Information Retrieval optimizes for a single objective, returning the most relevant results as measured by metrics like NDCG. That model assumes a closed system where relevance is the only concern. Modern marketplaces are not closed systems. They are ecosystems where users, providers, and the platform interact continuously. In that context, ranking is not a neutral technical operation. It is a policy decision about how to allocate attention.

To measure the resulting inequality, we can use the Gini coefficient borrowed from economics, the standard measure of income inequality applied to the exposure distribution across providers. A Gini near 1 means one provider gets everything; near 0 means all providers get equal exposure. A Gini near 0.9 or above is not a nuanced fairness concern. It is a near-monopoly.

Figure 1 — What Does the Gini Coefficient Actually Measure?

Each bar is one provider’s share of total exposure. At Gini = 0 every provider gets exactly the same share, a perfectly level playing field. At Gini = 1 one provider absorbs everything and the rest get nothing. Drag the slider to move between those extremes and watch the distribution change.

Gini coefficient
0 = equal  ·  1 = one provider takes all
Top provider’s share
% of all exposure
Bottom half’s share
% going to bottom 10 providers
Move the slider to explore what different levels of concentration look like.

2 · The Knapsack Problem: Why Fair Ranking Is Structurally Hard

One useful way to frame this problem is as a market, with users on the demand side, providers on the supply side, and the platform as the allocation mechanism. The natural design response is progressive taxation, reducing the ranking signal of already-dominant items and redirecting visibility to providers who haven't had a fair chance. In practice, however, this immediately runs into a structural obstacle. Ranking is binary. A system cannot show 40% of an item. For each query, each item is either shown to the user or it is not. This discreteness transforms the fairness problem into a combinatorial one, specifically a variant of the knapsack problem.

In the knapsack formulation, each user's recommendation list of size \(k\) is the "knapsack." Each item has a relevance score (its value) and occupies exactly one slot (unit weight). The constraint is that exactly \(k\) items must be selected per user. Fair ranking adds a second set of constraints: each item must receive at least some minimum aggregate exposure \(e^*_i\) across all users. This is the fairness knapsack, and it is in general NP-hard to solve exactly.

A flat tax applied at the item level, which reduces item \(i\)'s ranking score by a fixed amount, is a blunt instrument. Because the final ranking is binary (show/no-show), a small change to the tax rate can cause sudden, large-scale reshuffling of which items appear in top-\(k\) lists. The result is a discontinuous Pareto frontier. A tiny increase in the redistribution parameter causes an unpredictable jump in accuracy loss. For production systems, this volatility is unacceptable.

The framework I find most precise for this problem is Tax-Rank (Chen et al., SIGIR 2024). It uses isoelastic utility functions, which define what a healthy exposure distribution actually looks like, and Optimal Transport to compute it efficiently. The result sidesteps both the NP-hardness and discontinuity problems that make simpler approaches fragile. Much of what follows draws on that framework, because it gives the sharpest mathematical expression of the design principles I want to work through here.

3 · Accuracy-Fairness Tradeoff in Redistribution

Two fundamentally different approaches to redistributing algorithmic exposure yield fundamentally different structural properties in how accuracy and redistribution trade off against each other.

A flat penalty subtracts a fixed amount from every item's ranking score, independent of how much exposure that item has already received. Because ranking produces a binary outcome (an item is either in the top-\(k\) results or it is not), a small change to the penalty can cause a sudden, large reorganization of which items appear. The result is a tradeoff curve with discrete breakpoints where a marginal increase in the redistribution parameter causes a disproportionate drop in accuracy. Between breakpoints the curve is flat; at breakpoints it falls sharply. Navigating this precisely in production is difficult.

A progressive approach, by contrast, penalizes the disparity in accumulated exposure between items rather than penalizing items directly. Because the penalty increases continuously as the gap widens, small changes to the redistribution parameter produce proportionally small changes to which items are promoted. The resulting tradeoff curve is smooth and differentiable throughout its range.

The standard way to visualize this is the Pareto frontier, the set of operating points where you cannot improve accuracy without sacrificing redistribution, and vice versa. A flat frontier with breakpoints forces you to jump between operating points; a smooth frontier lets you dial continuously. This smoothness is not aesthetic. It has direct operational consequences. When a platform wants to increase fairness by 5%, a smooth frontier guarantees that accuracy declines proportionally. A stepped frontier offers no such guarantee.

Figure 2 — Turning Up Fairness: How Quality Changes
30%
Flat tax — quality loss
Progressive tax — quality loss
Predictable — small change, small effect
Flat tax (sudden drops at breakpoints)
Progressive tax (smooth ramp)
Move the slider to explore what happens at each redistribution setting.

4 · Tuning the Fairness-Accuracy Tradeoff

The framework controls redistribution with a single parameter, t (the taxation rate). Think of it as a policy dial, ranging from pure relevance at one end to equal exposure at the other. Every setting in between is a different, defensible position on the question of how much a platform owes its long-tail providers.

The key insight is diminishing returns. When an item already receives a lot of exposure, giving it even more is not as valuable to the overall ecosystem as giving that exposure to an underexposed item. The parameter t controls how sharply this kicks in.

Each item's optimal exposure scales as exposure ∝ relevance1/t. That exponent is what each row is really saying.

SettingExponent (1/t)What it means
t = 01/0 → ∞Winner takes all. The most relevant item captures everything, identical to a standard greedy ranking.
t = 11/1 = 1 (linear)Exposure is directly proportional to relevance. Twice the relevance earns twice the exposure. Meritocratic, but no runaway dominance.
t = 21/2 = ½ (square root)An item with 4× the relevance gets √4 = 2× the exposure. Advantages are real but compressed.
t = 31/3 = ⅓ (cube root)An item with 8× the relevance gets 2× the exposure. Strong compression. Long-tail items benefit substantially.
t → ∞1/∞ = 0relevance0 = 1 for every item. Exposure is equal regardless of quality — purely egalitarian.

Figure 3 shows what each setting looks like as a utility curve. The x-axis is an item's current exposure; the y-axis is how much value the system assigns to giving it one more unit. At t=0 the line is flat, meaning the system treats all exposure equally. As t increases, the curve bends. Extra exposure to an already-dominant item becomes worth progressively less, which is what drives the system to spread attention more broadly.

Figure 3 — How t controls diminishing returns on exposure
t=0 (no redistribution)
t=0.5
t=1 (proportional)
t=2
t=3 (strong redistribution)
Each curve shows the marginal value of one more unit of exposure, as a function of how much exposure an item already has. Flat line (t=0): the system does not care about distribution. Steep curves (high t): giving more to an already-visible item is worth much less than giving it to a hidden one — so the optimizer naturally spreads exposure.

5 · The Price of Taxation

A central objection to redistribution interventions in production systems is the uncertainty of their cost. Decision-makers ask: "If we increase redistribution, what is the worst-case hit to engagement?" Until recently, no formal answer existed. The framework provides one through the concept of the Price of Taxation (POT).

The POT is defined as the maximum ratio of ranking quality under the unconstrained system to ranking quality under the redistribution-constrained system:

$$\text{POT}(t) = \frac{W^*_{\text{greedy}}}{W^*_{\text{fair}}(t)}$$

The framework proves that this ratio is bounded above by a closed-form expression involving only \(t\) and \(\lambda\), where \(\lambda\) is the ratio of the highest to lowest relevance score in the catalog. The relevance score (\(\gamma\)) is the platform's internal quality signal for each item, capturing signals like engagement rate, ratings, or conversion (\(\lambda = \gamma_{\max} / \gamma_{\min}\)):

$$\text{POT}(t) \leq \lambda^{\,t}$$

The bound has an intuitive reading. The more unequal the catalog (large \(\lambda\)), the higher the potential accuracy cost of enforcing fairness; the stronger the redistribution (large \(t\)), the more that inequality is amplified. A platform with a homogeneous catalog (\(\lambda \approx 1\)) pays almost nothing for fairness at any \(t\). A platform with extreme quality spread pays more, but the ceiling is now known in advance. This transforms a risky ethical choice into a manageable risk budget with a guaranteed worst-case ceiling.

These two quantities serve different purposes. The exact POT, the ratio W*greedy / W*fair(t), is only knowable after you have already run the full optimization, which is computationally expensive. The upper bound λt costs almost nothing to compute, requiring only the maximum and minimum relevance scores from your catalog with no optimization at all. In practice, use it as a pre-flight check. If λt is already within your acceptable risk budget, proceed to the full solve. If not, adjust t before spending any compute.

Before running anything, a platform can compute λ from its catalog, evaluate λt for candidate values of t, and present a guaranteed worst-case accuracy ceiling to stakeholders. "At t = 0.1, the maximum possible accuracy loss in ranking quality, measured by standard metrics like NDCG against the unconstrained baseline, is at most 26%. Here is the proof." That is a tractable conversation to have before a single ranking has been reordered. The redistribution parameter becomes a resource with a known price tag.

A concrete example makes this tangible. Take Netflix. Each title carries a relevance score γ, the platform's internal quality signal capturing engagement signals like completion rate, ratings, and repeat views. A flagship original like Stranger Things might have γmax = 10. An indie documentary just added to the catalog, with no viewing history yet, might have γmin = 0.5. That gives λ = 10 / 0.5 = 20.

Now scan a few candidate values of t before committing to anything:

tBound: λt = 20tWorst-case accuracy lossInterpretation
0.05200.05 ≈ 1.16≤ 14%Very mild. Safe to deploy without further analysis.
0.10200.10 ≈ 1.35≤ 26%Acceptable if your risk budget is under 30%.
0.50200.50 ≈ 4.5≤ 78%Bound is too wide to be useful. Run the full solve to get the actual cost.

The bound is deliberately conservative. In practice, for t = 0.1 on a real catalog, the actual accuracy loss is typically 2–5%, well below the 26% ceiling. The bound is not a prediction. It is a guarantee. Contrast this with a platform like a niche streaming service whose catalog is relatively uniform in quality, say γmax = 2, γmin = 1.5, giving λ ≈ 1.33. That platform gets POT ≤ 1.330.5 ≈ 1.15 even at strong redistribution settings, meaning it can afford to be far more aggressive on redistribution before the bound becomes a concern. A platform like Netflix or YouTube, with a much wider quality spread, pays a higher ceiling but gains more room to help long-tail content find its audience.

6 · Solving It in Two Stages

Even with a well-defined objective and a bounded cost, implementing progressive redistribution at scale faces one more obstacle: the exact optimization is NP-hard. Enumerating all possible top-\(k\) allocations grows factorially in the number of items. The key insight is that the hard combinatorial problem becomes tractable through a two-stage decomposition. First compute ideal exposure targets as a continuous problem, then find actual rankings that hit those targets. Each stage is well-understood and can be solved efficiently.

6.1   Stage 1: How much exposure should each item get?

Stage 1 produces a single target number \(e^*_i\) for each item, representing the fraction of all user lists it should appear in. The optimizer maximizes total ecosystem utility subject to two constraints: exposures must sum to \(k\) (the number of ranking slots), and no item can appear in more than 100% of lists.

$$\mathbf{e}^* = \arg\max_{\mathbf{e}} \sum_i U_i(e_i) \quad \text{s.t.} \quad \sum_i e_i = k,\quad 0 \le e_i \le 1$$

Because the utility function has diminishing returns (concave), this has exactly one solution with no local optima to get stuck in. When no item hits those boundaries, the solution comes out as a clean formula:

$$e^*_i \;\propto\; (\gamma_i \cdot \eta_i)^{1/t}$$

Higher quality still earns more exposure, but the exponent \(1/t\) compresses the gap. At \(t = 2\), an item with \(4\times\) the relevance gets only \(\sqrt{4} = 2\times\) the exposure. When items do bump against a boundary, a standard convex solver clips and redistributes the overflow until all constraints are satisfied.

6.2   Stage 2: Turn targets into actual rankings

Stage 1 says what each item deserves. Stage 2 figures out which users see it. The output is an assignment matrix where each entry \(X_{ui}\) is the probability that item \(i\) appears in user \(u\)'s list. Two constraints must hold simultaneously. Every user's list has exactly \(k\) items, and every item's total appearances across all users meets its target from Stage 1.

Satisfying both constraints at once while maximizing relevance is expensive if approached directly. The approach adds a small smoothing penalty that discourages extreme all-or-nothing assignments. This turns the problem into one with a known closed-form structure. The solution is a fixed matrix \(\mathbf{K} = e^{\mathbf{R}/\lambda}\), where \(\mathbf{R}\) is the relevance matrix (each entry \(R_{ui}\) holds the relevance of item \(i\) for user \(u\)), and \(\lambda\) controls the smoothing strength, determining how sharply the assignment favors high-relevance pairs.

Finding the assignment then reduces to two alternating operations repeated until convergence:

  1. Divide every row by its sum → each user's list sums to \(k\)
  2. Divide every column by its target → each item hits its exposure

Each pass satisfies one constraint while slightly disturbing the other. The disturbance shrinks each round. Because this is repeated division on a fixed matrix rather than a search over possible rankings, it stays fast even at millions of users. Cost grows with the size of the matrix, not the number of possible orderings.

Figure 4 — Optimal Transport: How Attention Flows Change Under Exposure-Aware Ranking
t = 0
t = 0: winner-takes-all. Arc width encodes attention volume — nearly all flow routes to top-tier items. Drag the slider to redistribute.

7 · Adjusting the Fairness Parameter Over Time

One of the most powerful aspects of this framework is that \(t\) does not need to be fixed. Just as a central bank adjusts interest rates in response to macroeconomic conditions, tightening when the economy overheats and loosening when growth stalls, a platform can dynamically adjust its redistribution parameter in response to market health signals.

During high-traffic periods, when demand is strong and the provider base is healthy, a higher \(t\) prevents monopolization and invests in long-tail diversity. During competitive or low-engagement periods, temporarily lowering \(t\) maximizes immediate relevance and incentivizes provider competition. Managing \(t\) dynamically, in response to leading indicators of supply health, is the long-run answer. This treats the marketplace as a living ecosystem, and the redistribution parameter as the primary lever for managing its health.

The simulation below makes this concrete. Each provider has a popularity weight. The top provider starts with a large share of attention, the bottom with almost none. Each month, any provider whose exposure falls below a minimum viability floor exits the market. The remaining providers are renumbered, their weights reset, and the cycle repeats. At t = 0, the feedback loop compounds rapidly: every exit concentrates exposure further on the survivors, pushing the next-weakest providers below the floor the following month. A higher redistribution parameter breaks this cycle by keeping the floor reachable for providers further down the ranking.

Figure 5 — Provider Survival Over Time
t=1.0
15%
A provider exits when receiving less than 15% of what equal distribution would give them
No redistribution — providers left
after 24 months
Fair ranking — providers left
after 24 months
Providers saved
by switching to fair ranking
No redistribution (t=0) — reference
Redistributed ranking (current t)
Each month, providers whose exposure falls below the exit threshold leave the market. The red line always shows what happens with no redistribution.
How each month is calculated. Each provider is assigned a popularity weight \(w_i = (N - i)^2\), where N is the number of active providers that month and i is their rank (0 = most popular, N−1 = least popular). So the top provider gets weight \(N^2\) and the bottom gets \(1^2 = 1\). At 60 providers that's a 3,600-to-1 ratio, reflecting how real marketplaces concentrate attention at the top. The squaring is what creates the steep drop-off; a higher power would make it steeper still.

Each month, exposure is then computed as:
\( e_i = \dfrac{w_i^{\,1/t}}{\displaystyle\sum_j w_j^{\,1/t}} \)
At \(t = 0\) the top provider captures nearly all exposure. As \(t\) increases, the exponent \(1/t\) compresses the differences, spreading exposure more evenly. Any provider whose \(e_i\) falls below the survival floor exits. The remaining providers are renumbered from 0, their weights reset, and the process repeats. The compounding effect is what drives the rapid collapse in the red line: every exit concentrates exposure further on the survivors, pushing the new bottom providers below the floor the following month.

If You're Building a Marketplace Today

Instrument supply health now. Provider count by tier, retention rate, exposure Gini, and exit rate by tier all belong on the same dashboard as user satisfaction. If you don't measure it, you won't see the problem coming. This is a one-sprint change with no architectural risk.

Compute your λ. Pull the max and min relevance scores from your catalog and compute the ratio. This single number tells you, before any optimization, what a redistribution intervention would cost at worst. It gives you a defensible ceiling to bring into any stakeholder conversation.

Run a long-horizon simulation. Build a simple provider exit model and project your current ranking policy forward 12 to 24 months. Look at what happens to your supply base. This is the instrument your A/B testing infrastructure cannot give you, and it doesn't need to be perfect to be useful.

Teams looking to experiment directly can turn to FairDiverse (Xu et al., SIGIR 2025), an open-source toolkit that implements Tax-Rank and several other fair re-ranking algorithms out of the box.

Closing Thoughts

Winner-take-most outcomes emerge by default from relevance-only ranking. The feedback loop is silent and slow. High exposure generates more data, more data improves scores, better scores generate more exposure. Below some viability threshold, providers exit, and by the time the damage shows up in your engagement metrics, the decisions that caused it are long past. The framework in this post gives a principled way to measure this inequality, bound the cost of correcting it before touching a single ranking, and solve it efficiently at scale.

Every ranking algorithm already encodes a value judgment about whose outcomes matter and how much. It just doesn't say so out loud. Making that explicit is a more accountable position than "we optimize for relevance," and it's a conversation the industry now has the tools to have precisely.

The frameworks solve the optimization problem. Several hard questions sit underneath it. If relevance scores are built from exposure history, can you ever truly measure provider merit, or only accumulated advantage? If the damage shows up 18 months after the decisions that caused it, what does it mean to measure marketplace health in real time? These are not edge cases. They are the questions that will define whether the next generation of marketplaces builds something more durable or repeats the same structural mistakes with better math.

By the way, last I heard from my DJ friend, he was doing better and had found his audience. No thanks to the algorithm. That's kind of the point.

References

Xu, C., Ye, X., Wang, W., Pang, L., Xu, J., & Chua, T-S. (2024). A Taxation Perspective for Fair Re-ranking. In Proceedings of the 47th International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR '24), July 14–18, 2024, Washington, DC, USA. ACM.

Xu, C., Deng, Z., Rus, C., Ye, X., Liu, Y., Xu, J., Dou, Z., Wen, J-R., & de Rijke, M. (2025). FairDiverse: A Comprehensive Toolkit for Fair and Diverse Information Retrieval Algorithms. In Proceedings of the 48th International ACM SIGIR Conference on Research and Development in Information Retrieval (SIGIR '25), July 2025, Padua, Italy. ACM.

~