Generative single-pick reranker for conversational music recommendation,
from team FPMs_UMONS's entry to the RecSys Challenge 2026.
This is the generative arm of the paper's main table — the objective the
listwise scoring head is compared against. It is trained with enriched
candidates and an intent-emphasising system prompt (the "intent+mm" variant).
This is a pipeline component, not a standalone model — and a comparison arm
rather than the submitted system. It reorders a candidate pool produced by our
retriever, from a prompt rendered in one exact format and enriched with a
descriptor cache. There is no standalone usage recipe here on purpose: the
repository is what builds the prompt and runs it end to end.
Paper:Picking is Not Ranking, and Explanation Quality Has Many Dimensions:
Lessons for Conversational Music Recommendation. Maxime Manderlier, Fabian Lecron.
RecSys Challenge 2026.
Evaluation numbers are reported in the paper and the repository; they are not
duplicated here.
What it does
Given a conversation and a numbered list of candidate tracks, the model
generates the index of the single best candidate. It was trained with the
loss on the first generated position only, which matches the task (one
recommendation per turn) and the scoring (with a single ground truth, only the
correct track's rank affects nDCG@20).
At inference the generated pick is placed at rank 1 and the remaining positions
keep the retrieval pool's order. That is precisely why it picks about as well
as the listwise scoring head but ranks positions 2–20 much worse — the paper's
central finding.
What it expects
Unlike the scoring-head models, this is a standard causal LM — but it still
depends on the pipeline's exact prompt. Candidates are rendered one per line,
with the distilled {sound | themes} descriptors this variant was trained on:
12. Thunderstruck by AC/DC [rock, 80s] {sound: hard rock, metal | themes: rebellion, anger}
The descriptors are not optional. The system prompt weighs the current
request over the history and penalises candidates whose sound or themes
contradict an explicit rejection. The repository builds both, and the descriptor
cache ships as a
released artifact.
Training
Base Llama-3.2-3B-Instruct, frozen, LoRA rank 16 (alpha 32), merged.
Top-50 candidate pools from the four-channel RRF retrieval, enriched with the
distilled descriptors.
Cross-entropy on the first generated position only.
Context length 1024 for the retrieval query; 6144 for the reranking prompt.
Limitations
English, TalkPlayData-style conversations only.
bf16 greedy decoding is not bit-reproducible on GPU: re-running changes a
substantial share of picks where the model is undecided.
It only reorders position 1; positions 2–20 remain in retrieval order. If you
need a full ranking, use the listwise scoring head instead.
Licence and attribution
Built with Llama.
This model is a derivative of
meta-llama/Llama-3.2-3B-Instruct
and is therefore governed by the Llama 3.2 Community License, a copy of
which is included as LICENSE.txt, together with Meta's USE_POLICY.md.
Use of this model must comply with both.
Modifications: the transformer weights were adapted with LoRA (rank 16,
alpha 32) on the frozen base and merged.