Recommender systems
Slates, Page Layout, and Position Interactions
Model slates, rows, carousels, position bias, item interactions, page budgets, and presentation-aware evaluation.
By the end you can
- Explain how layout, position, and neighboring items affect recommendation outcomes
- Compare independent, greedy, and slate-aware ranking
- Identify exposure, creative, duplication, and UI-migration risks
- Design presentation-aware logging and evaluation
A recommender chooses a presented slate, not an abstract ranking
A page is not a list. Position, row identity, card design, screen size, scrolling, repetition, and neighboring items all influence attention and choice. Item-level scores therefore do not fully determine slate value or observed feedback. Building a page may require row-level objectives, deduplication across modules, business rules, and optimization that accounts for how the items interact on screen. And logging must preserve the page as it was actually shown. Otherwise none of it can be checked afterwards.
Attention on a page is scarcer than a ranked list makes it look, and the scarcity has been measured in production. Google replaced the myopic engagement score in YouTube's ranker with a long-term-value estimate and ran it on live traffic for three weeks. The system had O(10^9) users and O(10^8) corpus items. The change produced statistically significant aggregate engagement gains over the production myopic baseline. The 2019 SlateQ paper states the arithmetic of the surface being optimized: “Top 3 positions account for approximately 95% of engagement.”
Read that number back into the ranking problem. A model scores a corpus of O(10^8) items and emits a sorted table. In terms of what users experience, it is choosing three slots and disposing of the rest. The decision is the slate.
Score the items carefully but log the page loosely, and every later claim about what users chose rests on a screen nobody recorded.
Key idea
Position bias is treatment, not measurement error
Position bias is not merely a nuisance in metrics. It is part of the treatment delivered by the product — and a competition authority has priced that treatment.
Google placed its own comparison shopping service at or near the top of general search pages and demoted rivals. On 27 June 2017 the European Commission fined it EUR 2 424 495 000 for that, in Case AT.39740. Placement counted as conduct rather than as presentation because of the click figures the decision relies on. The Commission’s press release stated them in one sentence: “Even on a desktop, the ten highest-ranking generic search results on page 1 together generally receive approximately 95% of all clicks on generic search results (with the top result receiving about 35% of all the clicks).” The first result on page 2 receives about 1%. Moving the first result to rank three cuts its clicks by about 50%. Specific rival sites lost 85% of their traffic in the United Kingdom, up to 92% in Germany and 80% in France.
The Court of Justice dismissed Google's and Alphabet's appeal on 10 September 2024 and upheld the fine, in Case C-48/22 P. Nothing in that record is a claim about a metric being biased. It is a claim about what a page did to the traffic of the sites on it.
Correcting position bias in the metrics leaves it in the product: the user was served that arrangement and responded to it. An arrangement, not an estimator, is what cost EUR 2 424 495 000.
Example
The Netflix homepage trains the models that fill it
Different models power different rows of the Netflix homepage. A row is a decision unit with its own model, not a slice of one global ranking. Netflix set out how that page is built in a 2021 case study, and named the catch that comes with it. Each model is trained on user actions collected under the recommendations previously shown. So a feedback loop amplifies the presentation and position biases already sitting in the logged interaction data.
“This is due to presentation bias, where users are more likely to interact with items shown more prominently by the system,” the Netflix authors write.
The symptom they report turns up in the release process rather than in a paper: a notable mismatch between offline and online metrics. The offline number is computed on interactions the previous layout produced. The online number is produced by the layout that ships. The gap between them is the loop, arriving disguised as a measurement problem.
- Position: Items shown more prominently are more likely to be interacted with, which is a property of the slot rather than of the item in it.
- Container: Different models power different rows of the Netflix homepage, so what a row is for is decided before any item is scored for it.
- Within-slate interaction: One item changed the interpretation and attractiveness of nearby items.
- Page capacity: Only a limited number of cards could receive meaningful exposure, and an item never shown generates no action to learn from.
- Feedback loop: Each model is trained on user actions collected under the recommendations previously shown, which amplifies presentation and position bias and produces a notable mismatch between offline and online metrics.
Visual
A presentation-aware decision
Attention is scarce and a page is not a list. Candidate relevance ranks the items and estimates their value for the current context. The container decides what each row is for — continue, discovery, trending, sponsored, task-specific — before any item is scored for it. That is why different models power different rows of the Netflix homepage. Position allocation then hands out the slots people actually look at. Those slots are few. SlateQ measured approximately 95% of engagement in the top 3 positions; the Commission's decision put approximately 95% of generic clicks in the ten highest-ranking results on page 1. Cross-item interaction controls redundancy, complementarity, pacing and visual competition among the items that share a slate. Creative and explanation comes last. It is what keeps a team from reading a good thumbnail as a good item.
- 1
Candidate relevance
Estimate item value for the current context.
- 2
Container role
Define the purpose of each row, module, or page region.
- 3
Position allocation
Assign scarce high-attention slots under constraints.
- 4
Cross-item interaction
Control redundancy, complementarity, pacing, and visual competition.
- 5
Creative and explanation
Choose representation without confusing presentation response with item value.
Example
Presentation failures
Duplicate modules are visible on the page the day they ship. Layout migration is invisible and slower. A redesign quietly invalidates the historical interaction and calibration assumptions every model on the surface was fitted under.
Between those two sits the failure that hides in the denominator. “Impression” is an event a client can fire without anybody having looked at anything. The advertising industry stopped accepting that definition more than a decade ago. The Media Rating Council's viewable ad impression guidelines, issued in 2014 and updated in 2015, set the test for a viewable display impression: “Pixel Requirement: Greater than or equal to 50% of the pixels in the advertisement were on an in-focus browser tab on the viewable space of the browser page, and • Time Requirement: The time the pixel requirement is met was greater than or equal to one continuous second, post ad render.” The pixel test must be satisfied before the timer starts. Large display ads, of 242 500 pixels or larger, are held to 30% of pixels instead. A viewable video ad impression requires 2 continuous seconds of play.
A recommendation surface is not obliged to adopt those exact numbers. It is obliged to have numbers.
- Duplicate modules: Several candidate sources place the same item across the page.
- Position-confounded labels: Top-slot clicks become evidence that the item itself is better.
- Creative leakage: Artwork variant is unavailable at future serving or changes after logging.
- Scroll blindness: Items counted as impressions were never meaningfully visible — the accredited display test is 50% of pixels on an in-focus tab for one continuous second post-render, 30% of pixels at 242 500 pixels or larger, 2 continuous seconds for video.
- Layout migration: A UI redesign invalidates historical interaction and calibration assumptions.
Steps
Engineer a slate and exposure contract
Specify the layout unit first: rows, cards, slots, scroll behavior, and what visibility actually means on this page. Then assign module purposes, separating continue, discovery, trending, sponsored and task-specific roles. Then control cross-module duplication with priority and user-state rules. Then log presentation — position, container, creative, viewport, and interaction timing. The final step treats a redesign as what it is: a change of policy and a change of data distribution, arriving together.
Step four is where the contract is usually lost. There is a published production example of both the loss and the repair. Deezer's swipeable homepage carousel holds L = 12 playlist cards drawn from 862 curator-made playlists. Only L_init = 3 of them are visible before the user swipes. What the app can record is not what the user saw. “As a consequence, the card display information is ambiguous, and is technically hard to track with accuracy,” Deezer's engineers wrote in 2020.
The repair is to model the ambiguity instead of overwriting it. Their cascade-based update treats unswiped cards as unseen rather than as zero rewards. Policies using it beat their no-cascade variants at the 1% significance level, in 100-round simulations and in an industrial A/B test run on the live app in February 2020. They also released a public simulation dataset built on 974 960 fully anonymised Deezer users, each represented by a 97-dimensional feature vector. Deciding what an unswiped card means is a modelling decision with a measured price. It is not a logging detail.
1. Define the layout unit
Specify rows, cards, slots, scroll, and meaningful visibility.
2. Assign module purposes
Separate continue, discovery, trending, sponsored, and task-specific roles.
3. Control cross-module duplication
Deduplicate with priority and user-state rules.
4. Log presentation
Store position, container, creative, viewport, and interaction timing.
5. Re-evaluate after UI change
Treat layout redesign as a policy and data-distribution change.
Evaluate the page users actually experience
Use position-aware metrics, viewport exposure, row interaction, scroll depth, duplicate rate, slate diversity, and task outcomes. A page-level gain should also be checked for module cannibalization. Moving clicks from one row to another is not incremental product value.
The evidence that a click carries its rank is old, and it is direct. An eye-tracking study at Cornell, reported in 2005, watched students use Google while a proxy silently altered the ranking before the results reached the screen. Phase I recruited 34 undergraduates, 29 of them with usable gaze data. Phase II recruited 22 more, 16 usable, split across a 'normal' condition (6 subjects), a 'swapped' condition (5) and a 'reversed' condition (5). In the normal condition, users clicked the more relevant of the top two abstracts in 19 of the 20 cases where it was ranked first. Where it was ranked second, they did so in only 2 of the 7 cases. The same bias toward link one persisted when the top two results were swapped. Joachims and his co-authors name the effect in their introduction: “First, we show that there is a “trust bias” which leads to more clicks on links ranked highly by Google, even if those abstracts are less relevant than other abstracts the user viewed.”
Three years later, in 2008, Craswell and three co-authors put the competing explanations against each other. They tested four hypotheses about position bias against a logistic regression baseline. The data came from deliberately perturbing the ranking of a major search engine. Simple attention-decay and indiscriminate-rank-1-clicking models did not fit it. What did: “A ‘cascade’ model, where users view results from top to bottom and leave as soon as they see a worthwhile document, is our best explanation for position bias in early ranks.” A click at rank one and a click at rank ten are not the same measurement. The user reached rank ten only by declining everything above it.
Randomized position experiments are the clean way to separate presentation from item effects. They are not free. The standard identification device is the Swap(1,k) intervention, which randomly moves the rank-1 result into position k. A 2019 paper by Agarwal and colleagues prices it: “While this provides provably consistent propensity estimates for the PBM, it degrades retrieval performance and user experience [29] and is thus costly.” It is also statistically inefficient. Their alternative is to harvest intervention data from historic logs of several different ranking functions, and they evaluate the resulting extremum estimator on two live systems, arXiv Full-text Search and Google Drive Search. A team that has shipped more than one ranker has already run part of the experiment.
A click carries the rank it arrived at, so any comparison that ignores position is measuring the layout as much as the item.
Key idea
The presentation gate
Approve slate logic only when position, container, creative, exposure, and cross-item interactions are represented in both logging and evaluation. The material above makes that concrete. Exposure has a definition someone outside the team could audit, written in pixels and continuous seconds as the Media Rating Council writes it, rather than a raw impression count. The treatment of cards the user never reached is a stated modelling choice, as Deezer's cascade-based update is, not an accident of the client. The ranking function that produced each logged page is recorded, because that history is what makes position estimable without paying for Swap(1,k) interventions. And the layout version is part of the record. A redesign is then visible as a distribution change rather than as an unexplained metric step.
Sign off on slate logic only if a later regression could be traced to the container and the creative, not just to the items inside them.
Key takeaways
- The displayed page is the recommendation policy; the sorted score table is only an intermediate artifact. SlateQ puts approximately 95% of engagement in the top 3 positions of a system with O(10^8) corpus items.
- Position, row identity, card design, screen size, scrolling, repetition, and neighboring items influence attention and choice.
- Position bias is not merely a nuisance in metrics; it is part of the treatment delivered by the product. Placement itself is what cost Google EUR 2 424 495 000 at the European Commission on 27 June 2017, in Case AT.39740, upheld by the Court of Justice on 10 September 2024 in Case C-48/22 P.
- Rank moves clicks independently of relevance. In the 2005 Cornell eye-tracking study, users chose the more relevant of the top two abstracts in 19 of 20 cases when it was ranked first, and in 2 of 7 when it was ranked second.
- Presentation bias is self-reinforcing: at Netflix each model is trained on user actions collected under the recommendations previously shown, which amplifies the bias and produces a notable mismatch between offline and online metrics.
- A layout redesign changes the policy the product delivers and the distribution the logs were drawn from at the same time, so slate decisions and position-bias estimates have to be re-checked once it ships. The clean fix, Swap(1,k) randomisation, degrades retrieval performance and user experience — which is why logs from several rankers are worth keeping.