A recommendation ranking model is the scoring model in a recommender serving path. In the Machine Learning Model Shapes map, it is a ranker: for one user request, it receives candidate items that earlier retrieval systems found, builds one feature row per (request, candidate) pair, and returns prediction scores that a feed, search, or related-item surface can use to order a response.

The serving vocabulary is: request, candidate set, candidate row, ranker output, response, and logged opportunity. Embedding-table training and GPU tensor exchange start after this serving path is clear.

One Request Path

This diagram follows one Home feed request from client input to ranked response. Retrieval produces the candidate set. Ranking spends more features and model compute on that bounded set.

The serving path has these objects:

ObjectWhat it containsProduced by
Requestuser id, surface, device, country, session, privacy state, and current contextclient and serving front end
Candidate setcandidate item ids and lightweight recordsretrieval systems
Candidate rowone request joined with one candidate’s featuresfeature assembly layer
Ranker outputone or more scores for one candidate rowranking model
Responseordered items after policy, freshness, diversity, and layout constraintsfeed composer

If retrieval returns 1,000 candidate Pins, the ranker usually scores 1,000 candidate rows as one batch. The model output is still per candidate:

request = {user_id: 42, surface: home, device: mobile}
candidates = [pin_77, pin_91, pin_123]
 
ranker outputs:
  pin_77  -> p(save)=0.18, p(hide)=0.02
  pin_91  -> p(save)=0.07, p(hide)=0.01
  pin_123 -> p(save)=0.11, p(hide)=0.04

The feed composer then combines model scores with product constraints. It may diversify creators, enforce policy eligibility, account for freshness, or choose a layout. The ranker scores candidates; it does not by itself decide the entire response.

Candidate Row Shape

One candidate row contains facts about the request, the candidate, and the current context. Some facts are ids that later become embedding lookups; others are measured or precomputed values.

Feature familyExample valuesHow the ranker sees it
Request factsuser_42, Home feed, mobile, countryids, flags, or normalized values
Candidate factspin_77, creator id, topic ids, ageids plus numeric features
Context factsboard_789, query text, recent savesids, sequences, or text-derived features
Upstream signalsretrieval source, quality score, policy flagsnumeric values or categorical ids

Categorical Feature Embeddings in Recommender Systems explains one id-to-vector lookup. Multiple Embedding Tables in Recommender Rankers explains how a full candidate row fans out across several table families before the ranker has an assembled input tensor.

Retrieval Boundary

Retrieval is the upstream candidate-generation stage. Its job is recall under latency: find a bounded set of plausible items from a much larger inventory. Retrieval may use graph expansion, inverted indexes, approximate nearest-neighbor vector search, freshness pools, followed-entity expansion, or other low-latency sources.

Ranking is the downstream scoring stage. It receives candidate ids and candidate-side features from retrieval, joins them with request context, and computes prediction scores. The Pinterest scalability article concerns training a ranking model, so serving-time vector search belongs to retrieval unless a system deliberately reuses ranker representations inside a retrieval index.

Logged Opportunities

A logged opportunity is the serving record that later becomes a training example. The log needs enough context to reconstruct what the ranker scored and what happened afterward.

served candidate row:
  request_id: req_abc
  user_id: user_42
  candidate_id: pin_77
  context_board_id: board_789
  retrieval_source: related_board
  model_version: frm_2026_06_28
  position: 4
 
later labels:
  shown: true
  clicked: false
  saved: true
  hidden: false

Shown items can receive impression, click, save, hide, dwell, skip, or conversion labels. Retrieved-but-not-shown candidates can be used as sampled negatives only when the training pipeline knows how they were sampled. The logging policy defines the training data; it is not a cosmetic detail.

Where Training Begins

The serving path stops at candidate rows, scores, and logs. The training path follows the same row into lookup tables, model size, and distributed training:

Next questionNote
How does board_id=789 become a vector?Categorical Feature Embeddings in Recommender Systems
How does one row gather from several tables?Multiple Embedding Tables in Recommender Rankers
Why can lookup tables dominate model size?Embedding-Heavy Models
Why do GPUs need to exchange rows during training?Distributed Training for Embedding-Heavy Recommenders
What does near-linear training scalability mean?Training Scalability for Distributed ML

Sources

See also