{"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/personalized-federated-learning-with-feature","title":"Personalized Federated Learning with Feature Alignment and Classifier Collaboration","arxiv_id":"2306.11867","date":"2023-06-20","proceeding":null,"authors":["Jian Xu","Xinyi Tong","Shao-Lun Huang"],"abstract":"Data heterogeneity is one of the most challenging issues in federated learning, which motivates a variety of approaches to learn personalized models for participating clients. One such approach in deep neural networks based tasks is employing a shared feature representation and learning a customized classifier head for each client. However, previous works do not utilize the global knowledge during local representation learning and also neglect the fine-grained collaboration between local classifier heads, which limit the model generalization ability. In this work, we conduct explicit local-global feature alignment by leveraging global semantic knowledge for learning a better representation. Moreover, we quantify the benefit of classifier combination for each client as a function of the combining weights and derive an optimization problem for estimating optimal weights. Finally, extensive evaluation results on benchmark datasets with various heterogeneous data scenarios demonstrate the effectiveness of our proposed method. Code is available at https://github.com/JianXu95/FedPAC","url_abs":"https://arxiv.org/abs/2306.11867v1","url_pdf":"https://arxiv.org/pdf/2306.11867v1.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":"personalized-federated-learning-with-feature","repo_url":"https://github.com/jianxu95/fedpac","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":null},{"paper_slug":"personalized-federated-learning-with-feature","repo_url":"https://github.com/KarhouTam/FL-bench","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"GPL-3.0"}},{"paper_slug":"personalized-federated-learning-with-feature","repo_url":"https://github.com/bdemo/pfedbred_public","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":null},{"paper_slug":"personalized-federated-learning-with-feature","repo_url":"https://github.com/TsingZ0/PFL-Non-IID","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":null}],"tasks":[{"task_slug":"federated-learning","task_name":"Federated Learning"},{"task_slug":"personalized-federated-learning","task_name":"Personalized Federated Learning"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2306.11867","atlas_url":"https://app.syntology.ai/?focus=2306.11867","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.11867"}},"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/bdemo/pfedbred_public","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/TsingZ0/PFL-Non-IID","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/KarhouTam/FL-bench","reach":{"status":"ok","spdx":"GPL-3.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/jianxu95/fedpac","reach":null}],"summary":{"ran":7,"ran_draft_wrong":4,"ran_honours":1,"unverified":4},"by_repo_kind":{"official":{"samples":2,"ran":2,"repositories":1},"listed":{"samples":14,"ran":10,"repositories":2}},"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":10,"samples":[{"code_sha256_prefix":"3d7abb4a25cdc3d6","entry":"CoV","repo":"TsingZ0/PFL-Non-IID","repo_kind":"listed","path":"system/flcore/servers/servergpfl.py","file_url":"https://github.com/TsingZ0/PFL-Non-IID/blob/HEAD/system/flcore/servers/servergpfl.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3d7abb4a25cdc3d6"}},{"code_sha256_prefix":"f4e4dd636edb7a83","entry":"GCE","repo":"TsingZ0/PFL-Non-IID","repo_kind":"listed","path":"system/flcore/servers/servergpfl.py","file_url":"https://github.com/TsingZ0/PFL-Non-IID/blob/HEAD/system/flcore/servers/servergpfl.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"f4e4dd636edb7a83"}},{"code_sha256_prefix":"2a9ddc0dd4e3eb52","entry":"LocalUpdate_FedPAC","repo":"jianxu95/fedpac","repo_kind":"official","path":"methods/fedpac.py","file_url":"https://github.com/jianxu95/fedpac/blob/HEAD/methods/fedpac.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2a9ddc0dd4e3eb52"}},{"code_sha256_prefix":"3f19a8a64245b86d","entry":"SGD_lrs","repo":"bdemo/pfedbred_public","repo_kind":"listed","path":"Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","file_url":"https://github.com/bdemo/pfedbred_public/blob/HEAD/Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3f19a8a64245b86d"}},{"code_sha256_prefix":"9b0f0a1490e44f65","entry":"get_loss","repo":"bdemo/pfedbred_public","repo_kind":"listed","path":"Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","file_url":"https://github.com/bdemo/pfedbred_public/blob/HEAD/Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"9b0f0a1490e44f65"}},{"code_sha256_prefix":"af4dae2e3838a37b","entry":"get_optimizer","repo":"bdemo/pfedbred_public","repo_kind":"listed","path":"Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","file_url":"https://github.com/bdemo/pfedbred_public/blob/HEAD/Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"af4dae2e3838a37b"}},{"code_sha256_prefix":"8d5aa33ca2074482","entry":"get_protos","repo":"jianxu95/fedpac","repo_kind":"official","path":"methods/fedpac.py","file_url":"https://github.com/jianxu95/fedpac/blob/HEAD/methods/fedpac.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":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8d5aa33ca2074482"}},{"code_sha256_prefix":"05ae25b2ba9129de","entry":"kl_Optimizer","repo":"bdemo/pfedbred_public","repo_kind":"listed","path":"Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","file_url":"https://github.com/bdemo/pfedbred_public/blob/HEAD/Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"05ae25b2ba9129de"}},{"code_sha256_prefix":"23b46954f2e378be","entry":"lpFedBreD_ns_lg","repo":"bdemo/pfedbred_public","repo_kind":"listed","path":"Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","file_url":"https://github.com/bdemo/pfedbred_public/blob/HEAD/Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"23b46954f2e378be"}},{"code_sha256_prefix":"7572a34779528911","entry":"ns_iter_Optimizer","repo":"bdemo/pfedbred_public","repo_kind":"listed","path":"Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","file_url":"https://github.com/bdemo/pfedbred_public/blob/HEAD/Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7572a34779528911"}},{"code_sha256_prefix":"54f545b907254f8e","entry":"read_client_data","repo":"TsingZ0/PFL-Non-IID","repo_kind":"listed","path":"system/flcore/servers/servergpfl.py","file_url":"https://github.com/TsingZ0/PFL-Non-IID/blob/HEAD/system/flcore/servers/servergpfl.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"54f545b907254f8e"}},{"code_sha256_prefix":"863a33ba4360cc7f","entry":"read_data","repo":"TsingZ0/PFL-Non-IID","repo_kind":"listed","path":"system/flcore/servers/servergpfl.py","file_url":"https://github.com/TsingZ0/PFL-Non-IID/blob/HEAD/system/flcore/servers/servergpfl.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"863a33ba4360cc7f"}},{"code_sha256_prefix":"20ebf8e1ec9753ab","entry":"GPFL","repo":"TsingZ0/PFL-Non-IID","repo_kind":"listed","path":"system/flcore/servers/servergpfl.py","file_url":"https://github.com/TsingZ0/PFL-Non-IID/blob/HEAD/system/flcore/servers/servergpfl.py","link_basis":"first_harvest_node","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":"20ebf8e1ec9753ab"}},{"code_sha256_prefix":"88dc6530e6a80133","entry":"Server","repo":"TsingZ0/PFL-Non-IID","repo_kind":"listed","path":"system/flcore/servers/servergpfl.py","file_url":"https://github.com/TsingZ0/PFL-Non-IID/blob/HEAD/system/flcore/servers/servergpfl.py","link_basis":"first_harvest_node","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":"88dc6530e6a80133"}},{"code_sha256_prefix":"1fc5a7086ab14b31","entry":"lbase","repo":"bdemo/pfedbred_public","repo_kind":"listed","path":"Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","file_url":"https://github.com/bdemo/pfedbred_public/blob/HEAD/Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1fc5a7086ab14b31"}},{"code_sha256_prefix":"da41de3f29c80bf9","entry":"ns_Optimizer","repo":"bdemo/pfedbred_public","repo_kind":"listed","path":"Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","file_url":"https://github.com/bdemo/pfedbred_public/blob/HEAD/Algorithms/pFedBreD/pFedBreD_ns/pFedBreD_ns_lg/localpFedBreD_ns_lg.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"da41de3f29c80bf9"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}