yufan/rec_inference_results · config analysis · GPT-5.6-sol judge

Research Insights for Generative Recommendation

  • Current HF baseline Hit@10 sits between 10.0% and 16.3% across the three domains, but the three splits fail in different ways, so the average hides more than it shows.
  • 23%–35% of every split falls into the two lowest predictability levels. On this five-level scale, those labels mean the judge found little direct history signal; they do not establish a model-independent ceiling.
  • Slate waste is the largest addressable bucket everywhere (35%–43%). The model has already worked out the right interest and still spends its 10 beams badly.
15,541 baseline test examples across three Amazon domains. Current Hit@10 values come from the HF baseline files; diagnosis buckets come from the GPT-judged analysis snapshot.
Cross-domain

Same rubric, three different failure mixes

Bar = 100% of the judged snapshot for that domain. Current HF Hit@10 is shown beside each domain.

What the five colours mean
Hit
Exact target inside the beam-10.
Research angle · Use predictability as an RL curriculum. Start with levels 4 and 5, where positive rewards are denser, then introduce level 3 and genuinely new items as training stabilises. Keep exact repeats separate so the easy stage does not simply teach copying.
Video Games · current HF baseline one target per example
PredictabilityExamples Recall@10NDCG@10
1/52760.0%0.0%
2/51,1220.6%0.3%
3/52,4864.4%2.1%
4/51,79216.4%8.5%
5/546644.2%26.7%
Most successful recommendations come from easy examples. Targets rated 4 or 5 account for 500 of the 616 hits. On these examples, Recall@10 is 22.1% and NDCG@10 is 12.3%. For targets rated 1 or 2, they fall to 0.5% and 0.2%.
How the judge defines predictability · one real Game case per score
1
Essentially unpredictable, no signal in history points to it.
HistoryDiablo III: Reaper of Souls TargetMayflash GameCube Controller Adapter for Wii U, PC USB and Switch, 4 Port
The RPG history gives no signal for a GameCube controller adapter or hardware purchase.
miss
2
Weak, indirect link; a stretch.
HistoryLEGO Jurassic World - PlayStation 3 TargetMortal Kombat: Komplete Edition - Playstation 3
The only connection is the PlayStation 3 platform; the history gives no fighting-game signal.
miss
3
Tied to a broad interest in history but many equally likely alternatives.
HistoryAssassin's Creed IV Black Flag - PlayStation 4 TargetUncharted 4: A Thief's End - PlayStation 4
Both fit a broad PS4 action-adventure interest, but many other games would be equally plausible.
rank 2
4
Same sub-genre or brand as recent items; strong natural continuation.
HistoryBattlefield: Bad Company - Playstation 3 TargetCall of Duty 4: Modern Warfare - Game of the Year Edition
This is a strong continuation within the same modern-military shooter sub-genre.
rank 2
5
History points almost directly at this item (next in series / obvious accessory / consumable refill).
HistoryWii Play TargetWii Play
The target is the exact same title and SID as the sole history item.
rank 1
Predictability comes from the target/history judge label. Ranks are recomputed from the current HF baseline at revision 84605b28. Recall@10 equals Hit@10 in this single-target task. Definitions are reproduced from the judge prompt.
Slate waste
Target was inferable, the CoT named the right interest, the beam held related items, but not the target.
Research angle · Evaluation fixes one CoT and decodes ten items, but training produces one item from each of 16 separately generated CoTs. On Video Games, the ten outputs cover only 3.0 Code-1 branches, and the largest branch takes 6.2 slots. Align training with inference by fixing one CoT and sampling several items under it. Score the set with the existing target reward plus a relevance-aware diversity reward for covering distinct Code-1 and Code-1+2 prefixes.
Video Games · beam-10 prefix repetition average per beam · all 6,142 examples
Semantic levelDifferent branches Slots in largest branch
Code 13.06.2
Code 1 + 28.12.2
Each value is averaged across the current HF baseline at revision 84605b28. The table shows concentration, not that concentration causes misses.
Low predictability
A miss where the judge found little or no signal for the target in the observed history (one of the two lowest levels on the five-level predictability scale).
Research angle · Low-predictability targets are 22.8% of Video Games but produce only 7 of 616 hits. Spending expensive RL rollouts on them is likely wasteful. Filter or down-weight them during training, while keeping the full test set for evaluation.
Wrong reasoning
Target was inferable, but the CoT never identified the interest it belongs to.
Research angle · Use a progressive process reward for target-interest alignment. Give full process credit when the reasoning identifies the target need, partial credit when it reaches a nearby but incomplete interest, and zero for generic or wrong reasoning. Keep exact item match as the strongest reward.
Video Games · reasoning alignment GPT-judged snapshot · predictability 3–5
cot_identified_target_interest · CoT → target
Target interestExamples Recall@10NDCG@10
Identified3,32113.6%7.4%
Missed1,4235.6%3.3%
cot_answer_consistency · CoT → emitted beam
ConsistencyExamplesShare
1/5 · Conclusion differs from beam260.5%
2/5 · Mostly inconsistent410.9%
3/5 · Partly aligned97520.6%
4/5 · Mostly consistent1,75136.9%
5/5 · Conclusion matches beam1,95141.1%
cot_failure_mode · 1,344 wrong-reasoning misses
Failure modeExamplesShare
Wrong interest92368.7%
Unsupported claim18914.1%
No decision15111.2%
Generic restatement775.7%
Answer mismatch40.3%
Correctness and faithfulness are different. Recall@10 is 13.6% when the CoT identifies the target interest and 5.6% when it does not (2.4×). 78.0% of CoTs score 4–5 for answer consistency, so the beam usually follows the reasoning. But 68.7% of wrong-reasoning misses select the wrong interest. Consistency should therefore be rewarded only after target alignment.
All three attributes and ranks come from the same judged snapshot. The current HF baseline has 123 changed Video Games beam rows, so beam-dependent labels must be re-judged before this panel can be updated to current-baseline predictions. Answer consistency measures whether the beam follows the CoT, not whether either one is correct.
Interest coverage gap
The CoT mentioned the target interest, but none of the ten beam items came from that interest.
Research angle · The CoT notices the target interest but often never chooses it. In Video Games, 52.3% end without a clear interest decision; only 14.5% are the clean case where the CoT's final decision and beam disagree. At the same time, 96.3% of beams cover too few interests. Make the CoT rank candidate interests, reserve beam slots for the selected ones, and reward the final slate for covering them.
Ideas

Research ideas worth testing across all three domains

1 · Use predictability as an RL curriculumA quarter to a third of the data gives the model almost no clue about the next item. Spending the same RL budget on every example is wasteful. Start training on predictable targets, add harder ones as the policy improves, and sample the weakest-signal cases less often. Keep the full test set unchanged.
2 · Correct intent turns a zero into a learning signalIn the judged snapshot, when the CoT identifies the target interest, Hit@10 is 2.4×–11.6× as high. More importantly, an exact miss need not receive zero: give a smaller graded process reward when the reasoning identifies the same interest or moves close to it, even if all ten SIDs miss. Generic or wrong interests still receive zero, and exact item match remains the strongest signal.
3 · Train the list that inference actually usesEvaluation fixes one CoT and decodes ten items, while training generates one item under each independently sampled CoT. The judged beams cover only 2.4–3.5 Code-1 branches, and the largest branch takes 5.5–7.3 slots. Fix one CoT during training, sample several items under it, and score the set with target and relevance-aware diversity rewards.
4 · Most misses never enter the target branchIn 72%–81% of misses, none of the ten items has the target's Code-1 prefix. This is a branch-coverage problem, not merely ranking within the right branch. Make the CoT rank candidate intents, reserve beam slots for the selected intents, and reward the final slate for covering them.
5 · Give useful near-misses partial creditAmong predictable misses, 79%–89% still contain a substitute, same-category item or complement. Hit@10 marks all of them as failures, and the current prefix reward only helps when that relation shares the target's SID branch. Add a graded semantic reward: exact target > substitute > related item > unrelated. Compute it from product metadata or SID/embedding similarity, while keeping exact match as the highest reward.
Research agenda

From evidence to testable research directions

The six experiments below answer two practical questions. First, can training use the same valid IDs, fixed-CoT candidate lists and intent branches that appear at evaluation? Second, can the reward give useful partial credit while keeping exact match as the main objective? Each experiment changes one thing and states what result would make it worth keeping.

What the current setup gets wrong or leaves unused
Observed pattern
Evidence
Experiment
Different output spaces
After </think>, Stage-3 rollouts can emit any token sequence and receive a 0.1 bonus if the three SID codes happen to form a real catalog item. Evaluation never faces this problem because decoding is constrained to legal SID paths.
Keep the CoT rollout unchanged, then decode one SID with constrained greedy search and remove the validity bonus. Treat this as a decoding experiment, not as a candidate-diversity experiment.
Pointwise reward, listwise metric
Each response is scored independently by the 0 / 0.25 / 0.5 / 1.0 SID-prefix ladder. GRPO centres those scalar scores within the 16-response group, but one candidate's reward never depends on the other candidates. Evaluation instead measures a ranked beam-10 with Hit@10 and NDCG@10.
Generate several items under one fixed CoT and assign reward from their relative quality, rank and set-level coverage.
Weak target signal
Roughly one quarter to one third of each split (23%–35%) falls into the two lowest levels on the five-level predictability scale. In Video Games, these 1,398 examples contribute only 7 of 616 current-baseline hits, so uniform sampling spends substantial rollout compute where exact or prefix reward is rarely observed.
Use predictability as a curriculum and rollout-budget signal, while keeping the evaluation split intact.
Correct intent before exact item
Hit@10 is 2.4×–11.6× as high when the CoT identifies the target interest. This does not prove causality, but it shows that an exact miss can still contain a useful intermediate decision.
Add a smaller graded process reward based on how closely the reasoning matches the target interest.
Useful near-misses
79%–89% of predictable misses still contain a substitute, same-category item or complement. The SID-prefix ladder only recognises the subset that shares the target's code branch.
Use a target-aware soft semantic score, optionally taught by an LLM and distilled into a cheap frozen reward model.
Concentrated beam
Beam-10 covers only 2.4–3.5 Code-1 branches, and the largest branch occupies 5.5–7.3 of the ten slots.
Sample K CoTs, run a B-item beam from each fixed CoT, score each beam as one list, and compare the K list scores with GRPO.
Missing target branch
The target Code-1 branch is absent in 72%–81% of misses, so within-branch ranking cannot recover the target.
Predict ranked intents and reserve slate capacity for the selected intent branches.
Training setup

Train on the same kind of outputs used at evaluation

At evaluation, the model must return legal SIDs, one CoT produces all ten candidates, and the ten candidates are judged as a ranked list. Training currently does none of those three things. The experiments below fix each difference separately.

A1

Use constrained greedy search for one SID after each CoT

Evaluation never returns an invalid item ID. Training should not need a reward bonus for avoiding an error that the decoder can prevent.
What happens now

After </think>, the training sampler can write any tokens. The reward code reads the first three SID tokens and adds 0.1 if they form a real catalog item. Evaluation is simpler: its prefix tree blocks every invalid SID before it can be generated.

Change

Sample the CoT exactly as in the current baseline. After </think>, use the catalog trie and repeatedly choose the highest-scoring legal next token until one complete SID is produced. Each CoT still produces exactly one answer. Once every answer is valid by construction, remove the 0.1 validity bonus.

What this means for training

The CoT remains a stochastic rollout, but the SID is selected by deterministic search rather than sampled from the policy. The greedy SID tokens are therefore not ordinary on-policy GRPO actions. If they are included in the loss, describe the update as search-guided or reward-weighted training rather than claiming that group normalization or importance sampling makes constrained greedy search unbiased.

Test
  1. Compare the current unconstrained answer decoder plus validity bonus against one constrained greedy SID per sampled CoT, with no validity bonus and a matched rollout-token budget. Keep every other reward term unchanged.
  2. Reuse the existing catalog prefix map, but add the legal Code-1 root set and test all boundary cases: malformed CoT ending, duplicated SID tokens, premature EOS and catalog items whose prefixes share tokens.
  3. Log the baseline invalid-answer rate, probability mass removed by the mask, reward variance within each 16-rollout group and zero-advantage group rate.
  4. Do not use candidate diversity as A1's success criterion. That question belongs to A2.
What would count as useful

If invalid outputs are common, constrained generation should remove wasted rollouts and increase useful reward variation per generated token without lowering Hit@10/NDCG@10. If invalid outputs are already rare, remove the unnecessary bonus but do not expect this change alone to improve recommendation quality.

A2

Generate several items from one CoT and score the list

GRPO compares rewards inside a group, but the current raw reward still judges every candidate alone. Evaluation judges ten candidates together.
What happens now

For every rollout, calculate_reward returns 0, 0.25, 0.5 or 1.0 from the candidate's shared SID prefix with the target, plus the validity bonus. GRPO subtracts the mean score of the 16 responses, so the final advantage is relative. But the raw reward for one candidate is unchanged whether the other 15 are duplicates, useful alternatives or completely unrelated.

New rollout shape

For one prompt, sample K CoTs and stop each one at </think>. For every fixed CoT c_m, run beam search with width B to produce one ranked list S_m. Compute one overall score R_m for that B-item list. The GRPO group therefore contains K CoTs and K list scores—not K × B candidate rollouts.

How GRPO uses the score

Normalize the K list scores for the same prompt: A_m = (R_m − mean(R_1…R_K)) / (std(R_1…R_K) + ε). Apply A_m once to the sampled tokens of CoT c_m. The B beam candidates are used only to evaluate that CoT; they do not receive separate GRPO advantages.

Why beam search is acceptable here

The stochastic GRPO actions are the K sampled CoTs. Beam search is a deterministic procedure that maps each fixed CoT to a ranked item list. Because beam tokens are not included in the policy loss, they do not need candidate-level leave-one-out rewards or on-policy log-probability correction.

Code changes
  1. In ray_trainer.py, generate K CoTs for each prompt and stop them at </think>. Keep the current prompt-level uid for GRPO grouping and give every CoT its own cot_uid.
  2. For each original prompt + frozen CoT, call the existing beam helper in vllm_rollout_spmd.py with beam width B. Return the ranked SID list and beam scores as metadata rather than as B training responses.
  3. Extend BatchRewardManager to compute one list reward from each beam and return exactly K scalar rewards. Keep only the sampled CoT tokens in the actor loss mask.
List reward

Use three terms on the same 0–1 scale: R(S_m) = α · ExactNDCG@B + β · SoftRel@B − γ · Redundancy@B, with α largest so exact target ranking remains the primary objective. Rank the B candidates in their beam order before computing every term.

What the three terms mean
  1. ExactNDCG@B. There is one ground-truth SID. If its first occurrence is at rank r, the score is 1 / log2(r + 1); if it is absent, the score is 0. Earlier exact hits receive more reward.
  2. SoftRel@B. Give each candidate a relevance score g_i ∈ [0,1]: exact match is 1, sensible alternatives receive partial credit, and unrelated items receive 0. Discount lower ranks and take the weighted average Σ_i g_i / log2(i+1) ÷ Σ_i 1 / log2(i+1). The denominator is fixed, so an all-bad list remains near 0.
  3. Redundancy@B. Among candidates with g_i ≥ τ, measure pairwise collisions at the full-SID, Code-1+2 and Code-1 levels, then average them: Σ_b n_b(n_b−1) / [n(n−1)]. A score of 0 means no collisions; 1 means all candidates collapse to the same item or branch. Use 0 when fewer than two candidates pass the threshold.
Optional LLM teacher

For a pilot, give one frozen LLM the interaction history, ground-truth target and the entire B-item beam in a single call. Ask it to assign anchored 0–1 scores for target-need satisfaction: exact target is fixed at 1, a genuine substitute can receive high partial credit, a merely related item receives less, and an unrelated item receives 0. Use those values to compute SoftRel@B. Do not use a purely relative ranking: when all candidates are bad, the least bad one still needs an absolute score near zero.

Test
  1. Use the online LLM only for a small controlled pilot. For a real run, collect teacher labels on training beams, then distil them into a frozen local reward model or a metadata/embedding scorer. This keeps cost and reward drift out of the RL loop.
  2. Compare the current K complete CoT-item rollouts with K sampled CoTs scored by their B-item beams. Keep K fixed and also report a token-matched baseline because beam search adds decoding cost.
  3. Ablate the list score in stages: ExactNDCG only; ExactNDCG plus SoftRel; and the full score with Redundancy. This shows which term creates the gain.
  4. Report reward variance and zero-advantage rate across the K CoTs, beam branch coverage, Hit@B and NDCG@B. Audit a sample of teacher scores for agreement and popularity bias.
What would count as success

CoTs that produce stronger beams should receive higher GRPO advantages, and the final beam should improve target-branch coverage or exact ranking metrics. If the K CoTs usually receive the same list score, this setup provides too little comparative signal.

A3

Choose the interests first, then spend beam slots on them

If none of the ten candidates enters the target branch, better ranking inside the existing branches cannot recover the target.
What the data says

In 72%–81% of misses, no beam item has the target's Code-1 prefix. The earlier 'interest coverage gap' analysis also shows that mentioning an interest is not the same as selecting it or assigning it a beam slot.

Change

Start from the original baseline rather than from A1 or A2. After the CoT, require the model to output a short ranked list of structured interests before it outputs an item SID. Train that ranking against the target category or SID prefix. During evaluation, allocate the existing ten slots across the selected interests. Do not add A2's fixed-CoT list reward; A3 asks only whether explicit interest selection improves branch coverage.

Test
  1. Use a 2×2 ablation: intent supervision off/on and standard beam versus intent-aware slot allocation. This separates a better policy from a better decoder.
  2. Measure target-intent Recall@M, target Code-1 and Code-1+2 coverage@10, final Hit@10/NDCG@10, and relevance of the extra branches.
  3. If target-branch coverage rises but the exact target still misses, inspect within-branch ranking rather than adding still more diversity.
What would count as success

The target branch should appear more often without filling the list with irrelevant branches. The expected sequence is simple: the model selects the right interest more often, the beam covers that branch more often, and exact ranking then improves.

Reward design

Give useful partial credit without replacing exact match

Exact match should remain the highest reward. The question is whether training can also learn from three weaker signals: how predictable the target is, whether the CoT chose the right interest, and whether a non-exact item is still a sensible recommendation.

R1

Allocate rollout compute using target predictability

Some targets are strongly supported by the user's history, while others have little observable evidence. Giving both the same number of rollouts may waste training compute.
What the data says

Across the three domains, 23%–35% of examples fall into the two lowest levels on a five-level predictability scale. These labels mean the judge found little or no evidence for the target in the observed history. In Video Games, those 1,398 examples produce only 7 of the current baseline's 616 hits.

Why try this

Early training should make faster progress when most sampled examples can produce different rewards across their rollouts. Harder examples can be added later, after the policy has learned enough to reach their target branches more often.

One model can do two jobs, but with two outputs

The predictability model and the candidate reward model may share an encoder, but they answer different questions and need separate heads. The predictability head sees (history, target) and estimates how much evidence the history contains for that target; it controls sampling weight or rollout budget. The reward head sees (history, target, candidate) and estimates whether that particular candidate is a sensible non-exact recommendation. A predictable target does not make an arbitrary candidate good, so the predictability score itself must not be reused as the item reward.

Test
  1. Label a training subset with the same predictability rubric. For scale, fit a lightweight difficulty model using available history/target features such as history length, SID-prefix concentration, repeat status and target-to-history relation. Do not rely on timestamps that are absent from the Phase-3 data.
  2. Compare four samplers at matched rollout-token budget: uniform, hard filtering, soft predictability weighting, and a staged curriculum that begins with scores from levels 4 and 5 and then adds level 3. Keep a small sample from levels 1 and 2 throughout rather than assuming those cases are universally impossible.
  3. Keep the evaluation split unchanged. Report Hit@10 and NDCG@10 for every predictability score, and separate exact repeats from genuinely new targets.
What would count as success

At the same rollout-token budget, training should produce more groups with useful reward differences and later improve level-3 and novel targets. If gains appear only on high-predictability exact repeats, the curriculum taught copying rather than broader preference.

R2

Reward progress toward the target interest

Even before the exact item is found, reasoning that moves toward the target interest is more useful than reasoning about an unrelated need.
What the data says

In the judged snapshots, CoTs that identify the target interest have 2.4×–11.6× as high Hit@10. On Video Games, the gap is 13.6% versus 5.6%. This is correlation, but it identifies a promising process signal for a controlled reward experiment.

Progressive reward

Let a frozen scorer compare the interest inferred by the reasoning with the interest behind the ground-truth item and output s_intent ∈ [0,1]. A clear match receives a score near 1, a related but incomplete interest receives partial credit, and a generic or wrong interest receives 0. Add it to the current item reward as R = min(1, R_item + λ_intent · s_intent), with λ_intent small enough that exact item match remains the strongest signal.

Test
  1. Compare the current SID-prefix reward, a binary target-interest reward, and the graded s_intent reward at matched compute.
  2. Create offline labels with examples of exact interest alignment, partially correct interests, generic restatements and clearly wrong interests. Distil those labels into a frozen local scorer rather than calling an LLM inside every rollout.
  3. Audit whether broad category words or copied target metadata receive undeserved credit. Semantic proximity should reflect the user's likely need, not surface word overlap.
What would count as success

The progressive reward should create useful differences between otherwise unsuccessful rollouts and eventually improve exact metrics, especially at predictability levels 3 and 4. If only the scorer's own alignment score improves while Hit@10 stays unchanged, better reasoning is not reaching candidate generation.

R3

Give sensible non-exact items a smaller reward

Exact match stays at the top. A reasonable alternative can receive less reward, and an unrelated item should still receive zero.
What the data says

Among predictable misses, 79%–89% contain a substitute, same-category item or complement according to the judge. The existing prefix reward recognises only candidates encoded near the target in the SID tree; it cannot tell whether a candidate outside that branch is a useful alternative or merely unrelated.

What 'makes sense' means

A candidate makes sense when, given the user's history, it is a defensible next recommendation and captures the same interest or need as the ground-truth target. A genuine substitute, product variant or natural same-series continuation can qualify. Sharing only a broad category, brand or popularity prior is not enough.

Reward

Let a frozen reward model output p_sense = P(makes_sense | history, target, candidate). Use the piecewise item reward 1 for an exact SID match; λ · p_sense for a non-exact candidate only when p_sense ≥ τ; and 0 otherwise, with 0 < λ < 1. Exact match bypasses the learned model and can never be outscored. This p_sense is also the candidate gain g_i used by A2's SoftRel@B.

Test
  1. Use one LLM teacher call to label several candidates jointly for each training example. Include exact positives, judged sensible non-exact candidates, unrelated negatives, and hard negatives that share a category or brand but do not satisfy the same need.
  2. Train a local reward model with a shared history/target encoder and a candidate scoring head. It may share the backbone with the R1 predictability model, but keep the two outputs and losses separate. Freeze and calibrate the reward model before RL.
  3. Compare the current prefix ladder, the three-level reward above, and max(prefix_reward, λ · p_sense). Sweep λ and τ on held-out training data rather than the test split.
  4. Audit precision among rewarded non-exact candidates. A high false-positive rate would let generic same-category items collect reward and displace exact targets.
What would count as success

The extra reward should create useful differences between non-exact candidates and improve final Hit@10/NDCG@10 while exact match remains dominant. If only the reward model's own score improves, lower λ, raise τ, or stop using that score as a training objective.

Run order

Measure first, then change one thing at a time

Begin with one logging-only run. Use those measurements to decide which experiment is worth the compute, and do not combine several reward and rollout changes before their individual effects are known.

  1. Check whether invalid output is actually a problem. Log malformed answers, invalid catalog SIDs, legal probability mass after </think>, and how much the 0.1 bonus varies inside each group. If invalid output is rare, A1 is cleanup rather than the main experiment.
  2. Show where reward differences come from. Log exact match, each SID-prefix level, intent reward and sensible-item reward separately. For each predictability score, report how many 16-rollout groups have no reward difference and therefore no GRPO advantage.
  3. Measure item diversity under one CoT. Log how many different CoTs appear in a group, how many items are generated under each CoT, how many Code-1 and Code-1+2 branches those items cover, and how many slots the largest branch occupies.
  4. Track the path from interest to final item. Record whether the structured interest is correct, how much probability the model puts on the target Code-1 branch, whether beam-10 enters that branch, and whether the exact target is then ranked inside it.
  5. Run every idea against the same baseline. Do not stack A1 and A2, or carry either one into A3, R1, R2 or R3. Use the same checkpoint and a matched rollout-token budget for every comparison. Combination experiments should happen only after the individual effects are measured.