The “personalized ranking formula” is a recurring topic in recommendation systems, but the term itself is often imprecise — we tend to lump together three fundamentally different problems.
More precisely, personalized ranking in a recommendation system typically involves at least three layers:
- Layer 1: Personalized scoring (fine ranking), which answers “what is the value of showing this item to this user?”
- Layer 2: Personalized mixed ranking (blending), which answers “when multiple business lines compete for the same impression slot, who should get it?”
- Layer 3: Global reranking, which answers “the user sees an entire list — how should we assemble it?”
For many modern recommendation systems, Layer 1 is already strong enough.
User embeddings, item embeddings, multi-task learning, cross features — all of these aim at the same target: getting the model to accurately predict how valuable a (user, item) pair is. In that sense, most production rankers are already personalized; that personalization just isn’t written as “one set of weights per user” — it’s been absorbed implicitly into the model parameters.
Yet real systems exhibit something that looks contradictory at first glance: even with a strong Layer 1, production still runs Layer 2 blending, traffic control, quota management, plus Layer 3 reranking, and additionally bolts on score calibration, pacing, shading, and listwise reranking.
The intuitive explanation is: “Layer 1 isn’t accurate enough, so Layer 2 and Layer 3 are patches.” That isn’t entirely wrong, but it’s only half the story.
The deeper reason is that Layer 1, Layer 2, and Layer 3 are not optimizing the same thing.
- Layer 1 optimizes per-item value prediction
- Layer 2 optimizes constrained traffic allocation across business lines
- Layer 3 optimizes overall list composition
For this reason, the truly interesting question about “personalized ranking formulas” is not “why are different users’ weights different” but rather: once Layer 1 can already reasonably learn a user’s per-item preferences, why does the platform still need Layer 2 mixed ranking and Layer 3 global reranking? What is each layer compensating for, and what is each layer optimizing?
This article is about exactly that three-layer question.