{"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/fair-a-fair-top-k-ranking-algorithm","title":"FA*IR: A Fair Top-k Ranking Algorithm","arxiv_id":"1706.06368","date":"2017-06-20","proceeding":null,"authors":["Meike Zehlike","Francesco Bonchi","Carlos Castillo","Sara Hajian","Mohamed Megahed","Ricardo Baeza-Yates"],"abstract":"In this work, we define and solve the Fair Top-k Ranking problem, in which we want to determine a subset of k candidates from a large pool of n >> k candidates, maximizing utility (i.e., select the \"best\" candidates) subject to group fairness criteria. Our ranked group fairness definition extends group fairness using the standard notion of protected groups and is based on ensuring that the proportion of protected candidates in every prefix of the top-k ranking remains statistically above or indistinguishable from a given minimum. Utility is operationalized in two ways: (i) every candidate included in the top-$k$ should be more qualified than every candidate not included; and (ii) for every pair of candidates in the top-k, the more qualified candidate should be ranked above. An efficient algorithm is presented for producing the Fair Top-k Ranking, and tested experimentally on existing datasets as well as new datasets released with this paper, showing that our approach yields small distortions with respect to rankings that maximize utility without considering fairness criteria. To the best of our knowledge, this is the first algorithm grounded in statistical tests that can mitigate biases in the representation of an under-represented group along a ranked list.","url_abs":"https://arxiv.org/abs/1706.06368v3","url_pdf":"https://arxiv.org/pdf/1706.06368v3.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":"fair-a-fair-top-k-ranking-algorithm","repo_url":"https://github.com/MilkaLichtblau/FA-IR_Ranking","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"fair-a-fair-top-k-ranking-algorithm","repo_url":"https://github.com/MilkaLichtblau/DELTR-Experiments","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"GPL-3.0"}},{"paper_slug":"fair-a-fair-top-k-ranking-algorithm","repo_url":"https://github.com/cshvienna/hyper_fair","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"unanswered"}},{"paper_slug":"fair-a-fair-top-k-ranking-algorithm","repo_url":"https://github.com/fair-search/fairsearch-fair-python","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null}],"tasks":[{"task_slug":"fairness","task_name":"Fairness"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1706.06368","atlas_url":"https://app.syntology.ai/?focus=1706.06368","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1706.06368"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/fair-search/fairsearch-fair-python","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MilkaLichtblau/FA-IR_Ranking","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/cshvienna/hyper_fair","reach":{"status":"unanswered"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MilkaLichtblau/DELTR-Experiments","reach":{"status":"ok","spdx":"GPL-3.0"}}],"summary":{"ran_draft_wrong":1},"by_repo_kind":{"listed":{"samples":1,"ran":1,"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":1,"samples":[{"code_sha256_prefix":"ba1ca1cdf7ff33d0","entry":"check_ranking","repo":"fair-search/fairsearch-fair-python","repo_kind":"listed","path":"fairsearchcore/fair.py","file_url":"https://github.com/fair-search/fairsearch-fair-python/blob/HEAD/fairsearchcore/fair.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"NOASSERTION","inline_ok":false,"mcp_get_code":{"code_sha256":"ba1ca1cdf7ff33d0"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}