{"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/fairvfl-a-fair-vertical-federated-learning","title":"FairVFL: A Fair Vertical Federated Learning Framework with Contrastive Adversarial Learning","arxiv_id":"2206.03200","date":"2022-06-07","proceeding":null,"authors":["Tao Qi","Fangzhao Wu","Chuhan Wu","Lingjuan Lyu","Tong Xu","Zhongliang Yang","Yongfeng Huang","Xing Xie"],"abstract":"Vertical federated learning (VFL) is a privacy-preserving machine learning paradigm that can learn models from features distributed on different platforms in a privacy-preserving way. Since in real-world applications the data may contain bias on fairness-sensitive features (e.g., gender), VFL models may inherit bias from training data and become unfair for some user groups. However, existing fair machine learning methods usually rely on the centralized storage of fairness-sensitive features to achieve model fairness, which are usually inapplicable in federated scenarios. In this paper, we propose a fair vertical federated learning framework (FairVFL), which can improve the fairness of VFL models. The core idea of FairVFL is to learn unified and fair representations of samples based on the decentralized feature fields in a privacy-preserving way. Specifically, each platform with fairness-insensitive features first learns local data representations from local features. Then, these local representations are uploaded to a server and aggregated into a unified representation for the target task. In order to learn a fair unified representation, we send it to each platform storing fairness-sensitive features and apply adversarial learning to remove bias from the unified representation inherited from the biased data. Moreover, for protecting user privacy, we further propose a contrastive adversarial learning method to remove private information from the unified representation in server before sending it to the platforms keeping fairness-sensitive features. Experiments on three real-world datasets validate that our method can effectively improve model fairness with user privacy well-protected.","url_abs":"https://arxiv.org/abs/2206.03200v2","url_pdf":"https://arxiv.org/pdf/2206.03200v2.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":"fairvfl-a-fair-vertical-federated-learning","repo_url":"https://github.com/taoqi98/fairvfl","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"fairness","task_name":"Fairness"},{"task_slug":"federated-learning","task_name":"Federated Learning"},{"task_slug":"privacy-preserving","task_name":"Privacy Preserving"},{"task_slug":"vertical-federated-learning","task_name":"Vertical Federated Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2206.03200","atlas_url":"https://app.syntology.ai/?focus=2206.03200","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2206.03200"}},"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/taoqi98/fairvfl","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":3,"unverified":8},"by_repo_kind":{"official":{"samples":11,"ran":3,"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":"056528ae1a7e37bf","entry":"ZipImages","repo":"taoqi98/fairvfl","repo_kind":"official","path":"CelebA/raw_data_process.py","file_url":"https://github.com/taoqi98/fairvfl/blob/HEAD/CelebA/raw_data_process.py","link_basis":"harvester_set","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":"056528ae1a7e37bf"}},{"code_sha256_prefix":"66e15f4aa7e87d58","entry":"evaluate_performance","repo":"taoqi98/fairvfl","repo_kind":"official","path":"Adult/evaluation.py","file_url":"https://github.com/taoqi98/fairvfl/blob/HEAD/Adult/evaluation.py","link_basis":"harvester_set","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":"66e15f4aa7e87d58"}},{"code_sha256_prefix":"37a129fb2fcab303","entry":"load_data","repo":"taoqi98/fairvfl","repo_kind":"official","path":"CelebA/preprocessing.py","file_url":"https://github.com/taoqi98/fairvfl/blob/HEAD/CelebA/preprocessing.py","link_basis":"harvester_set","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":"37a129fb2fcab303"}},{"code_sha256_prefix":"3c2a7d667723ed8b","entry":"get_behavior_classifier","repo":"taoqi98/fairvfl","repo_kind":"official","path":"CelebA/models.py","file_url":"https://github.com/taoqi98/fairvfl/blob/HEAD/CelebA/models.py","link_basis":"harvester_set","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":"3c2a7d667723ed8b"}},{"code_sha256_prefix":"183905474d688b9a","entry":"get_contrastive_scorer","repo":"taoqi98/fairvfl","repo_kind":"official","path":"Adult/models.py","file_url":"https://github.com/taoqi98/fairvfl/blob/HEAD/Adult/models.py","link_basis":"harvester_set","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":"183905474d688b9a"}},{"code_sha256_prefix":"330bd3d3891e8e89","entry":"get_data_flow","repo":"taoqi98/fairvfl","repo_kind":"official","path":"CelebA/models.py","file_url":"https://github.com/taoqi98/fairvfl/blob/HEAD/CelebA/models.py","link_basis":"harvester_set","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":"330bd3d3891e8e89"}},{"code_sha256_prefix":"d393197c1300c3a2","entry":"get_mapper","repo":"taoqi98/fairvfl","repo_kind":"official","path":"Adult/models.py","file_url":"https://github.com/taoqi98/fairvfl/blob/HEAD/Adult/models.py","link_basis":"harvester_set","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":"d393197c1300c3a2"}},{"code_sha256_prefix":"b2ea0d61d0a4abc8","entry":"get_mapper_discrimator","repo":"taoqi98/fairvfl","repo_kind":"official","path":"Adult/models.py","file_url":"https://github.com/taoqi98/fairvfl/blob/HEAD/Adult/models.py","link_basis":"harvester_set","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":"b2ea0d61d0a4abc8"}},{"code_sha256_prefix":"ad05a74e231521c8","entry":"get_user_info_classifier","repo":"taoqi98/fairvfl","repo_kind":"official","path":"CelebA/models.py","file_url":"https://github.com/taoqi98/fairvfl/blob/HEAD/CelebA/models.py","link_basis":"harvester_set","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":"ad05a74e231521c8"}},{"code_sha256_prefix":"579466b24ba469d9","entry":"load_data","repo":"taoqi98/fairvfl","repo_kind":"official","path":"Adult/preprocessing.py","file_url":"https://github.com/taoqi98/fairvfl/blob/HEAD/Adult/preprocessing.py","link_basis":"harvester_set","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":"579466b24ba469d9"}},{"code_sha256_prefix":"abbf0d8c243d107c","entry":"load_data","repo":"taoqi98/fairvfl","repo_kind":"official","path":"CelebA/raw_data_process.py","file_url":"https://github.com/taoqi98/fairvfl/blob/HEAD/CelebA/raw_data_process.py","link_basis":"harvester_set","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":"abbf0d8c243d107c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}