Books Deep-Read · ML System Design Interview · Chapter 7

Event Recommendation: the goods expire, so cold start is the steady state

Machine Learning System Design Interview · Ch 7 · Ali Aminian & Alex Xu · 2023

中文 →

What is this chapter about?

A ticketing app shows you a screen: "this weekend, near you" — a comedy night, a hike, a street market. This chapter is about how that screen gets ordered. What makes it different from recommending films is blunt: these "goods" will not exist in a few days.

A strange thing first

Recommending films is like suggesting books in a library that never closes. The books stay on the shelves, and the record of who borrowed what only gets thicker. The thicker it gets, the better the machine knows which book to hand to whom.

Events are not like that. They are a morning market: today's stall goes up today and comes down tonight. When a show first goes on sale, nobody has been to it; by the time enough people have proven it popular, it has already started — or already finished. So the sentence recommendation systems live on — "people with taste like yours went too" — cannot even be spoken here.

Why the old world was hard

The usual method is to look at other people: what did people similar to you also watch, also buy. That method has a precondition — the item must live long enough to be tried by many. Videos, products and songs qualify. Events do not.

The result: a system that only knows how to look at other people knows nothing about the vast majority of events currently on sale. All it can push is the small handful that already caught fire. A newly listed event never gets in front of anyone — and new listings are exactly what the platform adds every single day.

The mechanism: no history, so look at the thing itself

If you cannot accumulate "who went", you switch to a different basis: ask, item by item, about this person, this thing, and this moment. How far from home? Can you walk, or must you drive? Saturday afternoon or Wednesday midnight? Do you normally go out at that hour? How much does it cost? How many of your friends have already signed up? Do you follow the organiser?

That long list of questions is a questionnaire. The system takes a few million past events — their questionnaires and what actually happened — and trains a judge to look at a fresh questionnaire and estimate the chance that this person signs up. It does not know this event; it knows the shape of the form. Exactly like you and the new place on the corner: you have never been, but "800 metres away, serves the food you usually order, three of your friends booked a table" already tells you what you need.

Worth noting: the most useful line on that form is usually not how well the content matches, but whether friends are going. Attending an event is a social act to begin with.

How to look at this approach

What to remember: this chapter moves the effort from "pick a cleverer model" to "design the questionnaire well". If the form has no line for "how many friends are going", no judge, however sharp, can recover it. And because the market restocks every day, the judge has to go back to school every day too.

What it costs

"All your friends are going" is the strongest signal and also the strongest bias: it makes the crowded more crowded, and leaves niche events, the ones nobody has heard of yet, even harder to surface.

One line to remember

Event recommendation is hard not because guessing is hard, but because the goods expire. With no history to learn from, all you have left is the specifics of this person, this thing, here and now — which is why the real protagonist of this chapter is not the model, it's how the questionnaire is written.

Want the mechanisms, the notation and the diagrams? → switch to the deep read