{"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/dgr-a-general-graph-desmoothing-framework-for","title":"DGR: A General Graph Desmoothing Framework for Recommendation via Global and Local Perspectives","arxiv_id":"2403.04287","date":"2024-03-07","proceeding":null,"authors":["Leilei Ding","Dazhong Shen","Chao Wang","Tianfu Wang","Le Zhang","Yanyong Zhang"],"abstract":"Graph Convolutional Networks (GCNs) have become pivotal in recommendation systems for learning user and item embeddings by leveraging the user-item interaction graph's node information and topology. However, these models often face the famous over-smoothing issue, leading to indistinct user and item embeddings and reduced personalization. Traditional desmoothing methods in GCN-based systems are model-specific, lacking a universal solution. This paper introduces a novel, model-agnostic approach named \\textbf{D}esmoothing Framework for \\textbf{G}CN-based \\textbf{R}ecommendation Systems (\\textbf{DGR}). It effectively addresses over-smoothing on general GCN-based recommendation models by considering both global and local perspectives. Specifically, we first introduce vector perturbations during each message passing layer to penalize the tendency of node embeddings approximating overly to be similar with the guidance of the global topological structure. Meanwhile, we further develop a tailored-design loss term for the readout embeddings to preserve the local collaborative relations between users and their neighboring items. In particular, items that exhibit a high correlation with neighboring items are also incorporated to enhance the local topological information. To validate our approach, we conduct extensive experiments on 5 benchmark datasets based on 5 well-known GCN-based recommendation models, demonstrating the effectiveness and generalization of our proposed framework.","url_abs":"https://arxiv.org/abs/2403.04287v2","url_pdf":"https://arxiv.org/pdf/2403.04287v2.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":[],"tasks":[{"task_slug":"recommendation-systems","task_name":"Recommendation Systems"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2403.04287","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2403.04287"}},"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/me-sonandme/DGR","reach":{"status":"ok"}}],"summary":{"unverified":9},"by_repo_kind":{"found_in_text":{"samples":9,"ran":0,"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":9,"samples":[{"code_sha256_prefix":"73cee5051148c668","entry":"InfoNCE","repo":"me-sonandme/DGR","repo_kind":"found_in_text","path":"util/loss_tf.py","file_url":"https://github.com/me-sonandme/DGR/blob/HEAD/util/loss_tf.py","link_basis":"harvester_set","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":"73cee5051148c668"}},{"code_sha256_prefix":"9325c22d0eb06da3","entry":"bpr_loss","repo":"me-sonandme/DGR","repo_kind":"found_in_text","path":"util/loss_tf.py","file_url":"https://github.com/me-sonandme/DGR/blob/HEAD/util/loss_tf.py","link_basis":"harvester_set","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":"9325c22d0eb06da3"}},{"code_sha256_prefix":"cde07004ee483dbc","entry":"bpr_loss","repo":"me-sonandme/DGR","repo_kind":"found_in_text","path":"util/loss_torch.py","file_url":"https://github.com/me-sonandme/DGR/blob/HEAD/util/loss_torch.py","link_basis":"harvester_set","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":"cde07004ee483dbc"}},{"code_sha256_prefix":"e1222a969e6ed9c0","entry":"common","repo":"me-sonandme/DGR","repo_kind":"found_in_text","path":"util/algorithm.py","file_url":"https://github.com/me-sonandme/DGR/blob/HEAD/util/algorithm.py","link_basis":"harvester_set","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":"e1222a969e6ed9c0"}},{"code_sha256_prefix":"cddf7c0cf4dae27e","entry":"l1","repo":"me-sonandme/DGR","repo_kind":"found_in_text","path":"util/algorithm.py","file_url":"https://github.com/me-sonandme/DGR/blob/HEAD/util/algorithm.py","link_basis":"harvester_set","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":"cddf7c0cf4dae27e"}},{"code_sha256_prefix":"04b615bf51851196","entry":"l2","repo":"me-sonandme/DGR","repo_kind":"found_in_text","path":"util/algorithm.py","file_url":"https://github.com/me-sonandme/DGR/blob/HEAD/util/algorithm.py","link_basis":"harvester_set","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":"04b615bf51851196"}},{"code_sha256_prefix":"c75b86662f8dec6b","entry":"l2_reg_loss","repo":"me-sonandme/DGR","repo_kind":"found_in_text","path":"util/loss_torch.py","file_url":"https://github.com/me-sonandme/DGR/blob/HEAD/util/loss_torch.py","link_basis":"harvester_set","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":"c75b86662f8dec6b"}},{"code_sha256_prefix":"517a13a2d3646e6f","entry":"ssm_loss","repo":"me-sonandme/DGR","repo_kind":"found_in_text","path":"util/loss_tf.py","file_url":"https://github.com/me-sonandme/DGR/blob/HEAD/util/loss_tf.py","link_basis":"harvester_set","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":"517a13a2d3646e6f"}},{"code_sha256_prefix":"029e212249aae32c","entry":"triplet_loss","repo":"me-sonandme/DGR","repo_kind":"found_in_text","path":"util/loss_torch.py","file_url":"https://github.com/me-sonandme/DGR/blob/HEAD/util/loss_torch.py","link_basis":"harvester_set","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":"029e212249aae32c"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}