The Other Half of Personalization

The Other Half of Personalization

The Other Half of Personalization

Everyone is trying to understand the user. The harder work is understanding the options they connect the user to. It's the half I work on at Velou, and I think it's where the frontier sits.

Everyone is trying to understand the user. The harder work is understanding the options they connect the user to. It's the half I work on at Velou, and I think it's where the frontier sits.

Everyone is trying to understand the user. The harder work is understanding the options they connect the user to. It's the half I work on at Velou, and I think it's where the frontier sits.

A perfect read on the customer still fails if you don’t understand what you’re showing them.

This is the part the industry keeps skipping. Personalization, recommendation, search, the new wave of agents that promise to act on your behalf: they all converge on one obsession. Understand the user. Model the person well enough that the system knows what they want before they finish typing it. Decades of research, a dozen conferences, and most of a venture category point at that single half of the problem.

It is real work, and it is half the problem.

At Velou, where we build personalization for ecommerce, I’ve worked both halves of this. The one I keep coming back to is the options half. You can build a flawless model of what a person wants and still hand them the wrong result, because the result wasn’t understood well enough to be matched against the want. Intent inference is the legible half. Understanding the options you connect people to is the half that decides whether the connection lands.

The machine has five parts, and one is neglected

Turning an intent into the right action has five parts.

The first is understanding the person. Infer what they actually want, not what they typed: the signal under the request, the context around it, the goal behind the click. This is the half everyone leads with, and it is well covered, so I will leave it mostly alone here.

The second is understanding the options. Build a representation of every available option deep enough that an intent can find it. Not a title and a price and three tags. A real account of what each individual option is.

The third is connecting them. Rank the options against the intent and commit to a decision.

The fourth is acting: showing the result, or, increasingly, taking the step it points to.

The fifth is learning. Measure what happened against what should have, and feed it back, so the system improves instead of merely staying live.

Everything that follows is about the second part. It is the one most teams underinvest in, and the one that sets the ceiling on how good the others can be.

fig. 1 - the five parts, and the neglected onefig. 1 - the five parts, and the neglected one [dark]fig. 1 - the five parts, and the neglected one [m]fig. 1 - the five parts, and the neglected one [m] [dark]

You can’t connect dots you don’t understand

Picture the cleanest version of the user-understanding dream. You know the shopper is a trail runner with a wide forefoot who has bought twice before, browses at night, and just searched “something for wet rock.” You have read the intent perfectly.

Now match it against a catalog where the product is a row that says: *Men’s Shoe. Black. $140. Category: Footwear.*

There is nothing to connect to. The intent is sharp and the option is a blur. “Wet rock” needs to find an outsole compound, a lug depth, a drainage story, and none of that exists in the data. So the system falls back to what it can compute: keyword proximity, recent popularity, whatever is in stock. It returns the nearest plausible item instead of the right one. The shopper feels it instantly. They asked a specific question and got a generic answer.

fig. 2 - intent sharp, option a blurfig. 2 - intent sharp, option a blur [dark]fig. 2 - intent sharp, option a blur [m]fig. 2 - intent sharp, option a blur [m] [dark]

What looks like a ranking failure is a representation failure. You cannot connect dots you don’t understand.

So understanding the options can’t be a preprocessing step you run once and forget. Everything else stands on it. A deeper read on the person buys you nothing if the options stay shallow, because the connection happens in the space *between* the two understandings, and that space is only as rich as the poorer side of it.

The unglamorous moat

The differentiating work at Velou was enriching the catalog, not the intent model.

Retailers do not arrive with clean data. They arrive with a feed: thin, inconsistent, written by a hundred different merchandisers across a hundred different brands, optimized for a printed tag and a warehouse system, never for being understood by a machine. A product a shopper would describe in a dozen specific ways shows up as a SKU, a marketing blurb, and a handful of fields that may or may not be filled in.

Enrichment turns that into a deep understanding of each individual product. Pulling the attributes that are implied but never stated. Reading the image when the text is silent. Inferring that this shoe is, in fact, waterproof, that its outsole grips wet stone, that it runs narrow, none of which the feed ever said. Doing it per product, millions of them, across a catalog that changes every week, at a scale where a human merchandiser tagging by hand is not an option.

fig. 3 - the same shoe, described twicefig. 3 - the same shoe, described twice [dark]fig. 3 - the same shoe, described twice [m]fig. 3 - the same shoe, described twice [m] [dark]

Two problems make this genuinely hard, and both are boring enough to get skipped.

The first is normalization. A single attribute, say waterproofing or fit or lug depth, is described differently by nearly every brand that sells one, and differently again across one brand’s own products, because different merchandisers wrote them. “Waterproof,” “water-resistant,” “weatherproof,” and “GTX” are four phrases for the same idea, sometimes in the same catalog. A shopper who types any of them, or none of them, has to reach all of it. Until all of those phrasings collapse onto one shared representation, the catalog is a thousand private languages, and the shopper’s query is written in just one of them.

The second is extraction. The most useful attributes are usually the ones that never got entered. The fit that runs narrow. The drainage the listing never mentions. The color the feed calls “anthracite” and shoppers search as “dark grey.” Getting those out of unstructured text and imagery, reliably, is the core of the job.

Deciding which attributes matter in the first place is expert work. For each retail sub-vertical we took on at Velou, we worked with people who had spent their careers in it and encoded what they knew into the ontology. The footwear taxonomy carries the judgment of someone who spent seventeen years on the floor at REI: what runs narrow really means, and why lug depth belongs in the schema at all. The models do the extraction at scale, but the experts decided what was worth extracting.

No team brags about this work. It doesn’t demo well. There’s no clever loss function to point at in a talk. It is data work, schema work, the slow accumulation of a representation that gets a little deeper every quarter. Which is exactly why it becomes a moat. The intent model can be matched by anyone with the same papers and the same talent. The catalog understanding, built up product by product and attribute by attribute over years, can’t be copied off a shelf. It has to be earned the same slow way.

The law

The rule that falls out of this has held everywhere I have watched it.

A connection is only as good as the weaker of the two understandings.

Underneath the law sits the piece everything else depends on: one shared ontology, the same set of attributes the person and the options are both written in. Without it there is nothing to line up, and two rich models in different languages can’t connect any better than two shallow ones.

Perfect intent inference against a shallow catalog returns the wrong result. A deep catalog with no read on the person returns the wrong result too. The system is bounded by whichever half you neglected, and it is usually the options, because understanding a person feels like product work and enriching a catalog feels like a data-cleaning ticket.

fig. 4 - bounded by the weaker halffig. 4 - bounded by the weaker half [dark]fig. 4 - bounded by the weaker half [m]fig. 4 - bounded by the weaker half [m] [dark]

So the highest-leverage question is rarely “how do I understand the user better.” It is “which of my two understandings is the weak one.” Most teams have an answer they don’t want to hear. They have poured their best people into the person and left the catalog to a nightly job and a vendor feed, and then they wonder why a system that supposedly understands the customer keeps surfacing the obvious, popular, generic result.

The mistake everyone makes first

The standard failure looks like success.

A team extracts attributes well. Every field is full. But the vocabulary was never collapsed, so “waterproof,” “water-resistant,” “weatherproof,” and “GTX” sit in the catalog as four different attributes instead of one. A query for waterproof shoes should match two hundred items. It matches the fifty that used the same word the shopper typed, and the other hundred and fifty sit in the catalog, perfectly described and unreachable.

The intent model is fine. The connection still fails, because the descriptions were never collapsed into one vocabulary. Fixing it means months of normalization work, and a better model doesn’t shorten them. Every catalog we take on at Velou arrives with some version of this problem, so I don’t trust a rich-looking catalog until I’ve picked one attribute, like waterproofing, and checked whether it was stored as one value or four.

fig. 5 - depth without normalizationfig. 5 - depth without normalization [dark]fig. 5 - depth without normalization [m]fig. 5 - depth without normalization [m] [dark]

The frontier is the world of options

This matters now, and not only in retail, because the action half of every system is getting more ambitious. We are no longer just ranking ten links. We are asking systems to choose, to book, to commit on someone’s behalf. Ask one to book the anniversary dinner and it stalls on the options half: which rooms are quiet, which tables can take a stroller, which kitchens will do gluten-free without a fuss. None of that is in the listing, which is a cuisine, a price band, and a star rating. The person half took one sentence; you told it the occasion. The same shape sits under booking the family trip, drafting the reply, picking the health plan. Every one of those systems rests on the same two understandings, and every one will be bounded by the weaker one.

The person half will keep getting attention because it is legible and it is where the industry already lives. The options half is where the headroom is. The next real gains in personalization will come less from reading the user more cleanly and more from understanding the universe of options as deeply as we have learned to understand the user. Option by option, attribute by attribute, in one shared language instead of a thousand private ones.

That is the neglected half, and it is the one I would bet on, not because understanding the person stopped mattering, but because everyone already believes that, and the other half is still unbuilt.

You can’t connect dots you don’t understand. Most of the industry has spent decades understanding one of them.

Read next → The Customer Has No Ontology