Learning Better Reasoning for Generative Recommendation with Semantic IDs
Mengdan Zhu, Yufan Zhao, Sophie Di, Yao Zhao, Tao Di, Yulan Yan, Sridhar Iyer, Liang Zhao
cs.IR, cs.AI
2026-09-24
Evo-Rec keeps only reasoning traces that raise the true SID's likelihood, then trains GRPO on NDCG@10; on Amazon Games, Recall@5 rises from 0.0710 to 0.0847 over SIDReasoner.
Generative recommendation casts next-item prediction as autoregressive decoding. Semantic IDs (SIDs) turn each item into a short code sequence, so related items share prefixes and cold items are no longer stranded by interaction count. A recent line of work inserts an explicit reasoning trace before the SID is generated, hoping the model will summarize interests and guess preference shifts.
Reasoning is not free value. The same history can yield several fluent traces that point at different next items. Supervising all of them equally injects noise, and later RL can lock the bad patterns in. Prior reasoning-enhanced recommenders mostly teach the model to emit a rationale. They spend less effort asking which rationale actually helps the next-item prediction.
Evo-Rec has three stages on a Qwen3-1.7B backbone, with three SID tokens per item.
Stage 1 aligns SID tokens with language. Histories and targets are translated across SID and title views, mixed with SID–text interleaved examples and general-domain reasoning, so newly added item tokens mean something to the pretrained LM. This stage does not pick a chain of thought.
Stage 2 is Best-of-N Rejection Sampling SFT. A GPT-5.4 teacher samples N=5 traces per history. A frozen scorer measures Δ, the gain in ground-truth SID log-likelihood when the trace is present versus history alone. Only the highest positive-Δ trace is kept for fine-tuning. Random pick and "first positive Δ" are the controls.
Stage 3 runs GRPO on the reasoning policy. Each history samples 16 traces. Conditioned on a trace, trie-constrained beam search with beam 10 decodes only catalog-valid SIDs. The reward is NDCG@10 of the ground-truth SID in that beam: zero if it misses the top 10, discounted by rank if it hits. Exact-match reward treats rank 2 the same as a miss, so it is not used.
Evaluation uses Amazon Review Video Games, Office, and Industrial after 5-core filtering, an 80/10/10 temporal split, full-catalog ranking, and Recall@K / NDCG@K at K=5 and 10.
Evo-Rec beats discriminative, generative, and reasoning-enhanced baselines on every metric and dataset. Against the strongest baseline SIDReasoner on Games, R@5 moves from 0.0710 to 0.0847 (+19.3%) and N@10 from 0.0563 to 0.0746 (+32.5%); N@5 rises 41.1% relative. NDCG gains outrun Recall, which matches a Stage-3 objective that scores rank.
| Method | Games R@5 | Games N@10 | Office R@5 | Industrial R@5 |
| SASRec | 0.0501 | 0.0416 | 0.1019 | 0.0807 |
| SIDReasoner | 0.0710 | 0.0563 | 0.1373 | 0.1109 |
| Evo-Rec | 0.0847 | 0.0746 | 0.1476 | 0.1167 |
Ablations isolate the selection rule. At a fixed N=5, Best-of-N beats random selection by 27.1% N@10 and first-positive rejection by 37.1%; R@1 is 83.8% above random. 94.0% of candidates already have positive Δ, so a binary filter is close to a random draw. Raising N from 1 to 5 lifts N@10 from 0.0571 to 0.0746. Pure NDCG reward beats exact match, prefix match, and NDCG+Recall. Reasoning shortens during Stage 3 with no length penalty; the rank signal squeezes the extra words out. On Games, thinking-mode R@1 goes from 0.0103 after Stage 2 to 0.0443 after Stage 3.
If a recommender is going to think out loud, the traces should be filtered by downstream predictive utility and then trained against rank, not exact SID match. Catalog-constrained decoding keeps the reward on sellable items. Code is public. The teacher writes five traces per example, and each dataset gets its own model, so this is still a research-scale recipe. Amazon 5-core catalogs here have a few thousand SKUs; the numbers do not transfer to a hundred-million-item index on their own.
Baseline numbers are quoted from the SIDReasoner paper; only the evaluation protocol is matched. The teacher is GPT-5.4, so Stage 2 is expensive. No parameters are shared across domains. Gains were still rising at N=5. Histories are truncated at length 10, and the paper does not show how Δ behaves on longer sequences.