Imagine asking for a restaurant recommendation. The system suggests a taco restaurant. You do not dislike the whole suggestion—you simply do not want tacos today. A normal recommender gives you two poor choices: accept the result or start over. Our work gives you a third choice: say “not tacos” and continue the conversation.

The idea in one sentence

The recommender shows a few words explaining each suggestion; you reject the word that is wrong, and the next suggestion moves away from it without forgetting everything else you like.

Follow one real example

This example comes directly from the experiments. The simulated user is looking for Kekou Gelato House, but the system does not know that target. It must discover the user’s current intention from a sequence of corrections.

StartPlaya Cabana

taco · mexican · chip

“Not taco.”
Round 2Banh Mi Boys

pork · fry · sandwich

“Not pork.”
Round 3Japanese cheesecake

cake · cheese · japanese

“Not cake.”
FoundKekou Gelato House

gelato · tea · milk

✓ Accepted

Why does “not taco, not pork, not cake” lead to gelato? Those three corrections alone are not enough. The recommender also remembers what this person liked in the past. The corrections remove the wrong directions; the person’s history supplies the positive direction toward desserts.

That is the complete story behind the three papers. Each paper fixes one part of this conversation.

Paper 1: let people correct the explanation

The first system recommends an item and attaches a short explanation made from review words. A beer might be described as smoky, dark, bready; a song might be pop, bass, concert. These words are not decorative labels. They are buttons the user can disagree with.

If the user rejects smoky, the model lowers recommendations connected to smokiness while keeping other evidence about the person’s taste. This is more useful than a thumbs-down because it tells the system what was wrong.

The first deep critiquing architecture. The model first produces a recommendation and several explanation words. A rejected word is then fed back into the model to change the next recommendation.
The first paper’s central mechanism. Left: the model combines what it knows about the user (purple) and the item (green), then predicts a score and explanation words (blue). Right: the striped words are rejected by the user and fed back into the model before it recommends again.
What changed?
Before

The system could explain a recommendation, but the explanation was mostly something to read.

After

The same explanation became an editing interface: reject one phrase and update the list.

Paper 2: keep the conversation useful after several corrections

The first design worked, but repeated corrections created a new problem. Suppose the system represents a user with five preference signals:

fruit
smoky
sweet
caramel
citrus

A simple implementation sets smoky to zero. Do this repeatedly and the whole preference description becomes weaker and weaker. Later corrections have less information to work with.

The second paper introduces Energy Redistribution. When one phrase is rejected, its weight is not merely discarded. The system redistributes attention among the remaining preferences. In plain language: “smoky” becomes less important, while the surviving evidence—perhaps “fruit,” “sweet,” and “caramel”—continues to carry a strong signal.

Bar chart comparing Energy Redistribution with simply setting rejected phrases to zero. The redistribution method preserves a stable preference signal through four rounds, while the zero-out method steadily loses information.
Why redistribution matters. The horizontal axis counts consecutive corrections. The forward-hatched bars remain nearly level: the system preserves a useful description of the user. The backward-hatched Zero-Out bars shrink with every round.

This paper also replaces slow item-by-item scoring with a variational autoencoder, which produces the entire recommendation list in one pass. The practical result is a faster system that remains useful through a multi-turn conversation.

Paper 3: move the right items in the list

The final question is surprisingly simple: what should the algorithm optimize after the user says “not taco”?

An earlier approach tried to create the largest possible score gap between taco and non-taco restaurants. But the user does not care whether an invisible score changes from 0.8 to -20. They care whether taco restaurants move down and better alternatives move up.

The third paper optimizes that ordering directly:

Before “not taco”
  1. 1 Taco restaurant
  2. 2 Sandwich shop
  3. 3 Dessert café
→
After “not taco”
  1. 1 Sandwich shop ↑
  2. 2 Dessert café ↑
  3. 3 Taco restaurant ↓

The scientific rule is a pair of ranking constraints:

The ranking rule
new rank score(rejected-feature item) < old scorenew rank score(other item) > old score

The full formulation adds a safety margin and slack variables for cases where every requested ordering cannot be satisfied simultaneously. The key point is concrete: optimize the movement people can see, not an unnecessarily large hidden score change.

In experiments on Yelp and BeerAdvocate, this ranking-focused method found target items more often, needed slightly fewer conversation rounds, and ran faster than the earlier score-gap method. In some settings, its retrieval success was three times that of the nearest comparison method.

The two complete conversations from the paper

Two four-step conversational recommendation examples. A restaurant sequence rejects taco, pork, and cake before finding a gelato shop. A beer sequence rejects orange, sour, and cherry before finding a sweet non-fruity IPA.
Table 6 from the ranking paper. The top half is the restaurant journey explained above. In the bottom half, a second user rejects beers described by “orange,” “sour,” and “cherry.” The system then retrieves Snapperhead IPA, described as “gold, sweet, yeast.”

Three papers, three understandable improvements

2019 · RecSysLet the user say what is wrong

Show explanation words and allow any one of them to become a correction.

2020 · SIGIRRemember useful preferences

Redistribute the rejected phrase’s weight so repeated corrections do not drain the signal.

2020 · RecSysChange the visible ranking

Directly move mismatched items down and better alternatives up.

Together, these papers change recommendation from a one-shot guess into a repairable conversation. The system may begin with the wrong restaurant, beer, or album. What matters is that the user can explain the mistake in a few words—and that the next result meaningfully responds.

Read the research