{"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/group-meritocratic-fairness-in-linear","title":"Group Meritocratic Fairness in Linear Contextual Bandits","arxiv_id":"2206.03150","date":"2022-06-07","proceeding":null,"authors":["Riccardo Grazzi","Arya Akhavan","John Isak Texas Falk","Leonardo Cella","Massimiliano Pontil"],"abstract":"We study the linear contextual bandit problem where an agent has to select one candidate from a pool and each candidate belongs to a sensitive group. In this setting, candidates' rewards may not be directly comparable between groups, for example when the agent is an employer hiring candidates from different ethnic groups and some groups have a lower reward due to discriminatory bias and/or social injustice. We propose a notion of fairness that states that the agent's policy is fair when it selects a candidate with highest relative rank, which measures how good the reward is when compared to candidates from the same group. This is a very strong notion of fairness, since the relative rank is not directly observed by the agent and depends on the underlying reward model and on the distribution of rewards. Thus we study the problem of learning a policy which approximates a fair policy under the condition that the contexts are independent between groups and the distribution of rewards of each group is absolutely continuous. In particular, we design a greedy policy which at each round constructs a ridge regression estimate from the observed context-reward pairs, and then computes an estimate of the relative rank of each candidate using the empirical cumulative distribution function. We prove that, despite its simplicity and the lack of an initial exploration phase, the greedy policy achieves, up to log factors and with high probability, a fair pseudo-regret of order $\\sqrt{dT}$ after $T$ rounds, where $d$ is the dimension of the context vectors. The policy also satisfies demographic parity at each round when averaged over all possible information available before the selection. Finally, we use simulated settings and experiments on the US census data to show that our policy achieves sub-linear fair pseudo-regret also in practice.","url_abs":"https://arxiv.org/abs/2206.03150v3","url_pdf":"https://arxiv.org/pdf/2206.03150v3.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":"group-meritocratic-fairness-in-linear","repo_url":"https://github.com/csml-iit-ucl/gmfbandits","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"fairness","task_name":"Fairness"},{"task_slug":"multi-armed-bandits","task_name":"Multi-Armed Bandits"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2206.03150","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2206.03150"}},"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/CSML-IIT-UCL/GMFbandits","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/csml-iit-ucl/gmfbandits","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":2,"unverified":3},"by_repo_kind":{"official":{"samples":5,"ran":2,"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":"afdd569661e07781","entry":"OnlineRidge","repo":"csml-iit-ucl/gmfbandits","repo_kind":"official","path":"policies.py","file_url":"https://github.com/csml-iit-ucl/gmfbandits/blob/HEAD/policies.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"afdd569661e07781"}},{"code_sha256_prefix":"1b94aed24631e967","entry":"RidgePolicy","repo":"csml-iit-ucl/gmfbandits","repo_kind":"official","path":"policies.py","file_url":"https://github.com/csml-iit-ucl/gmfbandits/blob/HEAD/policies.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"1b94aed24631e967"}},{"code_sha256_prefix":"e645f159dc76091a","entry":"Greedy","repo":"csml-iit-ucl/gmfbandits","repo_kind":"official","path":"policies.py","file_url":"https://github.com/csml-iit-ucl/gmfbandits/blob/HEAD/policies.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":"e645f159dc76091a"}},{"code_sha256_prefix":"a0a343914e243cc8","entry":"Policy","repo":"csml-iit-ucl/gmfbandits","repo_kind":"official","path":"policies.py","file_url":"https://github.com/csml-iit-ucl/gmfbandits/blob/HEAD/policies.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":"a0a343914e243cc8"}},{"code_sha256_prefix":"f8a9bb2f5203aa48","entry":"test_policy","repo":"csml-iit-ucl/gmfbandits","repo_kind":"official","path":"policies.py","file_url":"https://github.com/csml-iit-ucl/gmfbandits/blob/HEAD/policies.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":"f8a9bb2f5203aa48"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}