{"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/computationally-efficient-optimization-of-1","title":"Computationally Efficient Optimization of Plackett-Luce Ranking Models for Relevance and Fairness","arxiv_id":"2105.00855","date":"2021-05-03","proceeding":null,"authors":["Harrie Oosterhuis"],"abstract":"Recent work has proposed stochastic Plackett-Luce (PL) ranking models as a robust choice for optimizing relevance and fairness metrics. Unlike their deterministic counterparts that require heuristic optimization algorithms, PL models are fully differentiable. Theoretically, they can be used to optimize ranking metrics via stochastic gradient descent. However, in practice, the computation of the gradient is infeasible because it requires one to iterate over all possible permutations of items. Consequently, actual applications rely on approximating the gradient via sampling techniques. In this paper, we introduce a novel algorithm: PL-Rank, that estimates the gradient of a PL ranking model w.r.t. both relevance and fairness metrics. Unlike existing approaches that are based on policy gradients, PL-Rank makes use of the specific structure of PL models and ranking metrics. Our experimental analysis shows that PL-Rank has a greater sample-efficiency and is computationally less costly than existing policy gradients, resulting in faster convergence at higher performance. PL-Rank further enables the industry to apply PL models for more relevant and fairer real-world ranking systems.","url_abs":"https://arxiv.org/abs/2105.00855v2","url_pdf":"https://arxiv.org/pdf/2105.00855v2.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":[{"paper_slug":"computationally-efficient-optimization-of-1","repo_url":"https://github.com/HarrieO/2021-SIGIR-plackett-luce","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"tf","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"fairness","task_name":"Fairness"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2105.00855","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2105.00855"}},"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":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/HarrieO/2021-SIGIR-plackett-luce","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":8},"by_repo_kind":{"official":{"samples":8,"ran":0,"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":0,"samples":[{"code_sha256_prefix":"ed08820c5234d6b5","entry":"cutoff_ranking","repo":"HarrieO/2021-SIGIR-plackett-luce","repo_kind":"official","path":"utils/ranking.py","file_url":"https://github.com/HarrieO/2021-SIGIR-plackett-luce/blob/HEAD/utils/ranking.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ed08820c5234d6b5"}},{"code_sha256_prefix":"d6eadb338b7f321e","entry":"get_dataset_from_json_info","repo":"HarrieO/2021-SIGIR-plackett-luce","repo_kind":"official","path":"utils/dataset.py","file_url":"https://github.com/HarrieO/2021-SIGIR-plackett-luce/blob/HEAD/utils/dataset.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d6eadb338b7f321e"}},{"code_sha256_prefix":"3c841c9debacfb6e","entry":"init_model","repo":"HarrieO/2021-SIGIR-plackett-luce","repo_kind":"official","path":"utils/nnmodel.py","file_url":"https://github.com/HarrieO/2021-SIGIR-plackett-luce/blob/HEAD/utils/nnmodel.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3c841c9debacfb6e"}},{"code_sha256_prefix":"f078e0bc377b4be5","entry":"metrics_based_on_samples","repo":"HarrieO/2021-SIGIR-plackett-luce","repo_kind":"official","path":"utils/plackettluce.py","file_url":"https://github.com/HarrieO/2021-SIGIR-plackett-luce/blob/HEAD/utils/plackettluce.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"f078e0bc377b4be5"}},{"code_sha256_prefix":"690317103b07f615","entry":"multiple_cutoff_rankings","repo":"HarrieO/2021-SIGIR-plackett-luce","repo_kind":"official","path":"utils/ranking.py","file_url":"https://github.com/HarrieO/2021-SIGIR-plackett-luce/blob/HEAD/utils/ranking.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"690317103b07f615"}},{"code_sha256_prefix":"6d78cc79dd180c09","entry":"pairwise","repo":"HarrieO/2021-SIGIR-plackett-luce","repo_kind":"official","path":"algorithms/pairwise.py","file_url":"https://github.com/HarrieO/2021-SIGIR-plackett-luce/blob/HEAD/algorithms/pairwise.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6d78cc79dd180c09"}},{"code_sha256_prefix":"79dd69bae0762626","entry":"rank_and_invert","repo":"HarrieO/2021-SIGIR-plackett-luce","repo_kind":"official","path":"utils/ranking.py","file_url":"https://github.com/HarrieO/2021-SIGIR-plackett-luce/blob/HEAD/utils/ranking.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"79dd69bae0762626"}},{"code_sha256_prefix":"0f95a4019ff1e0e9","entry":"sample_rankings","repo":"HarrieO/2021-SIGIR-plackett-luce","repo_kind":"official","path":"utils/plackettluce.py","file_url":"https://github.com/HarrieO/2021-SIGIR-plackett-luce/blob/HEAD/utils/plackettluce.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0f95a4019ff1e0e9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}