{"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/reducing-disparate-exposure-in-ranking-a","title":"Reducing Disparate Exposure in Ranking: A Learning To Rank Approach","arxiv_id":"1805.08716","date":"2018-05-22","proceeding":null,"authors":["Meike Zehlike","Carlos Castillo"],"abstract":"Ranked search results have become the main mechanism by which we find content, products, places, and people online. Thus their ordering contributes not only to the satisfaction of the searcher, but also to career and business opportunities, educational placement, and even social success of those being ranked. Researchers have become increasingly concerned with systematic biases in data-driven ranking models, and various post-processing methods have been proposed to mitigate discrimination and inequality of opportunity. This approach, however, has the disadvantage that it still allows an unfair ranking model to be trained. In this paper we explore a new in-processing approach: DELTR, a learning-to-rank framework that addresses potential issues of discrimination and unequal opportunity in rankings at training time. We measure these problems in terms of discrepancies in the average group exposure and design a ranker that optimizes search results in terms of relevance and in terms of reducing such discrepancies. We perform an extensive experimental study showing that being \"colorblind\" can be among the best or the worst choices from the perspective of relevance and exposure, depending on how much and which kind of bias is present in the training set. We show that our in-processing method performs better in terms of relevance and exposure than a pre-processing and a post-processing method across all tested scenarios.","url_abs":"https://arxiv.org/abs/1805.08716v5","url_pdf":"https://arxiv.org/pdf/1805.08716v5.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":"links_only","authors_date_abstract":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license), from the Kaggle arXiv metadata snapshot of 2026-09-12"},"code_links":[{"paper_slug":"reducing-disparate-exposure-in-ranking-a","repo_url":"https://github.com/MilkaLichtblau/BA_Laura","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}},{"paper_slug":"reducing-disparate-exposure-in-ranking-a","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":"reducing-disparate-exposure-in-ranking-a","repo_url":"https://github.com/fair-search/fairsearch-deltr-for-elasticsearch","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"reducing-disparate-exposure-in-ranking-a","repo_url":"https://github.com/fair-search/fairsearch-deltr-java","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"reducing-disparate-exposure-in-ranking-a","repo_url":"https://github.com/fair-search/fairsearch-deltr-python","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"reducing-disparate-exposure-in-ranking-a","repo_url":"https://github.com/fair-search/fairsearchdeltr-elasticsearch-plugin","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"reducing-disparate-exposure-in-ranking-a","repo_url":"https://github.com/fair-search/fairsearchdeltr-java","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"NOASSERTION"}},{"paper_slug":"reducing-disparate-exposure-in-ranking-a","repo_url":"https://github.com/fair-search/fairsearchdeltr-python","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[],"methods":[],"datasets_introduced":[{"slug":"w3c-experts","name":"W3C Experts","full_name":""}],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=1805.08716","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1805.08716"}},"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/fair-search/fairsearch-deltr-for-elasticsearch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fair-search/fairsearch-deltr-java","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fair-search/fairsearchdeltr-java","reach":{"status":"ok","spdx":"NOASSERTION"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fair-search/fairsearch-deltr-python","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MilkaLichtblau/DELTR-Experiments","reach":{"status":"ok","spdx":"GPL-3.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/MilkaLichtblau/BA_Laura","reach":{"status":"ok"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fair-search/fairsearchdeltr-python","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/fair-search/fairsearchdeltr-elasticsearch-plugin","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_draft_wrong":1,"unverified":4},"by_repo_kind":{"listed":{"samples":5,"ran":1,"repositories":3}},"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":"526319b0136b57a6","entry":"prepare_data","repo":"fair-search/fairsearch-deltr-python","repo_kind":"listed","path":"fairsearchdeltr/deltr.py","file_url":"https://github.com/fair-search/fairsearch-deltr-python/blob/HEAD/fairsearchdeltr/deltr.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"526319b0136b57a6"}},{"code_sha256_prefix":"dc6b97d3fd7029d6","entry":"find_items_per_group_per_query","repo":"fair-search/fairsearchdeltr-python","repo_kind":"listed","path":"fairsearchdeltr/trainer.py","file_url":"https://github.com/fair-search/fairsearchdeltr-python/blob/HEAD/fairsearchdeltr/trainer.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"dc6b97d3fd7029d6"}},{"code_sha256_prefix":"8e623e96e250df87","entry":"normalized_exposure","repo":"fair-search/fairsearchdeltr-python","repo_kind":"listed","path":"fairsearchdeltr/trainer.py","file_url":"https://github.com/fair-search/fairsearchdeltr-python/blob/HEAD/fairsearchdeltr/trainer.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"8e623e96e250df87"}},{"code_sha256_prefix":"51ee7554594db825","entry":"normalized_topp_prot_deriv_per_group","repo":"fair-search/fairsearchdeltr-python","repo_kind":"listed","path":"fairsearchdeltr/trainer.py","file_url":"https://github.com/fair-search/fairsearchdeltr-python/blob/HEAD/fairsearchdeltr/trainer.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"51ee7554594db825"}},{"code_sha256_prefix":"20b09647f7a56e44","entry":"singleton","repo":"fair-search/fairsearch-deltr-for-elasticsearch","repo_kind":"listed","path":"utils.py","file_url":"https://github.com/fair-search/fairsearch-deltr-for-elasticsearch/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"20b09647f7a56e44"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}