Found in the Middle: Permutation Self-Consistency Improves Listwise Ranking in Large Language Models
Raphael Tang, Xinyu Zhang, Xueguang Ma, Jimmy Lin, Ferhan Ture
TL;DR
This work tackles positional bias in LLM-driven listwise ranking by introducing permutation self-consistency (PSC): it generates multiple rankings by randomly shuffling the input list, then aggregates them with a central ranking that minimizes Kendall tau distance to the samples. The authors prove consistency of the central ranking under noisy observations and validate PSC across sorting and passage reranking tasks on multiple models, showing meaningful gains over conventional inference. Empirically, PSC yields robust improvements, particularly for smaller models, and consistently outperforms alternative aggregation methods like reciprocal rank fusion. The method is parallelizable and practical, offering a principled, order-invariant decoding strategy for improving listwise ranking in black-box LLMs.
Abstract
Large language models (LLMs) exhibit positional bias in how they use context, which especially complicates listwise ranking. To address this, we propose permutation self-consistency, a form of self-consistency over ranking list outputs of black-box LLMs. Our key idea is to marginalize out different list orders in the prompt to produce an order-independent ranking with less positional bias. First, given some input prompt, we repeatedly shuffle the list in the prompt and pass it through the LLM while holding the instructions the same. Next, we aggregate the resulting sample of rankings by computing the central ranking closest in distance to all of them, marginalizing out prompt order biases in the process. Theoretically, we prove the robustness of our method, showing convergence to the true ranking in the presence of random perturbations. Empirically, on five list-ranking datasets in sorting and passage reranking, our approach improves scores from conventional inference by up to 7-18% for GPT-3.5 and 8-16% for LLaMA v2 (70B), surpassing the previous state of the art in passage reranking. Our code is at https://github.com/castorini/perm-sc.
