{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/2506-08616","title":"Generalizing while preserving monotonicity in comparison-based preference learning models","arxiv_id":"2506.08616","date":"2025-06-10","proceeding":null,"authors":["Julien Fageot","Peva Blanchard","Gilles Bareilles","Lê-Nguyên Hoang"],"abstract":"If you tell a learning model that you prefer an alternative $a$ over another alternative $b$, then you probably expect the model to be monotone, that is, the valuation of $a$ increases, and that of $b$ decreases. Yet, perhaps surprisingly, many widely deployed comparison-based preference learning models, including large language models, fail to have this guarantee. Until now, the only comparison-based preference learning algorithms that were proved to be monotone are the Generalized Bradley-Terry models. Yet, these models are unable to generalize to uncompared data. In this paper, we advance the understanding of the set of models with generalization ability that are monotone. Namely, we propose a new class of Linear Generalized Bradley-Terry models with Diffusion Priors, and identify sufficient conditions on alternatives' embeddings that guarantee monotonicity. Our experiments show that this monotonicity is far from being a general guarantee, and that our new class of generalizing models improves accuracy, especially when the dataset is limited.","url_abs":"https://arxiv.org/abs/2506.08616v1","url_pdf":"https://arxiv.org/pdf/2506.08616v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[],"tasks":[],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2506.08616","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2506.08616"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"deterministic:regex_extraction","url":"https://github.com/pevab/gbtlab2","reach":null}],"summary":{"ran_fixture":2,"ran_honours":4,"ran_violates":4},"by_repo_kind":{"found_in_text":{"samples":10,"ran":10,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":10,"samples":[{"code_sha256_prefix":"ebbd26c93cceb5eb","entry":"choose_pairs","repo":"pevab/gbtlab2","repo_kind":"found_in_text","path":"python/Functions.py","file_url":"https://github.com/pevab/gbtlab2/blob/HEAD/python/Functions.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ebbd26c93cceb5eb"}},{"code_sha256_prefix":"e948b767b8fb0677","entry":"generate_data_gbt","repo":"pevab/gbtlab2","repo_kind":"found_in_text","path":"python/Functions.py","file_url":"https://github.com/pevab/gbtlab2/blob/HEAD/python/Functions.py","link_basis":"first_harvest_node","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e948b767b8fb0677"}},{"code_sha256_prefix":"eb8dfe8aa5f76c73","entry":"generate_gaussian","repo":"pevab/gbtlab2","repo_kind":"found_in_text","path":"python/Functions.py","file_url":"https://github.com/pevab/gbtlab2/blob/HEAD/python/Functions.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"eb8dfe8aa5f76c73"}},{"code_sha256_prefix":"17a299ce31ab0bed","entry":"generate_knary","repo":"pevab/gbtlab2","repo_kind":"found_in_text","path":"python/Functions.py","file_url":"https://github.com/pevab/gbtlab2/blob/HEAD/python/Functions.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"17a299ce31ab0bed"}},{"code_sha256_prefix":"6667f1e937cd6382","entry":"generate_poisson","repo":"pevab/gbtlab2","repo_kind":"found_in_text","path":"python/Functions.py","file_url":"https://github.com/pevab/gbtlab2/blob/HEAD/python/Functions.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6667f1e937cd6382"}},{"code_sha256_prefix":"d78c373daf8ea9d9","entry":"generate_truncated_exp","repo":"pevab/gbtlab2","repo_kind":"found_in_text","path":"python/Functions.py","file_url":"https://github.com/pevab/gbtlab2/blob/HEAD/python/Functions.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d78c373daf8ea9d9"}},{"code_sha256_prefix":"5c27bae8049909a4","entry":"phi_gau","repo":"pevab/gbtlab2","repo_kind":"found_in_text","path":"python/Functions.py","file_url":"https://github.com/pevab/gbtlab2/blob/HEAD/python/Functions.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"5c27bae8049909a4"}},{"code_sha256_prefix":"763a99d507b42df6","entry":"phi_kna","repo":"pevab/gbtlab2","repo_kind":"found_in_text","path":"python/Functions.py","file_url":"https://github.com/pevab/gbtlab2/blob/HEAD/python/Functions.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"763a99d507b42df6"}},{"code_sha256_prefix":"6169a72f4b6b9b6a","entry":"phi_poi","repo":"pevab/gbtlab2","repo_kind":"found_in_text","path":"python/Functions.py","file_url":"https://github.com/pevab/gbtlab2/blob/HEAD/python/Functions.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6169a72f4b6b9b6a"}},{"code_sha256_prefix":"582b02609bbe43f1","entry":"phi_uni","repo":"pevab/gbtlab2","repo_kind":"found_in_text","path":"python/Functions.py","file_url":"https://github.com/pevab/gbtlab2/blob/HEAD/python/Functions.py","link_basis":"first_harvest_node","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"582b02609bbe43f1"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}