{"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/dink-net-neural-clustering-on-large-graphs","title":"Dink-Net: Neural Clustering on Large Graphs","arxiv_id":"2305.18405","date":"2023-05-28","proceeding":null,"authors":["Yue Liu","Ke Liang","Jun Xia","Sihang Zhou","Xihong Yang","Xinwang Liu","Stan Z. Li"],"abstract":"Deep graph clustering, which aims to group the nodes of a graph into disjoint clusters with deep neural networks, has achieved promising progress in recent years. However, the existing methods fail to scale to the large graph with million nodes. To solve this problem, a scalable deep graph clustering method (Dink-Net) is proposed with the idea of dilation and shrink. Firstly, by discriminating nodes, whether being corrupted by augmentations, representations are learned in a self-supervised manner. Meanwhile, the cluster centres are initialized as learnable neural parameters. Subsequently, the clustering distribution is optimized by minimizing the proposed cluster dilation loss and cluster shrink loss in an adversarial manner. By these settings, we unify the two-step clustering, i.e., representation learning and clustering optimization, into an end-to-end framework, guiding the network to learn clustering-friendly features. Besides, Dink-Net scales well to large graphs since the designed loss functions adopt the mini-batch data to optimize the clustering distribution even without performance drops. Both experimental results and theoretical analyses demonstrate the superiority of our method. Compared to the runner-up, Dink-Net achieves 9.62% NMI improvement on the ogbn-papers100M dataset with 111 million nodes and 1.6 billion edges. The source code is released at https://github.com/yueliu1999/Dink-Net. Besides, a collection (papers, codes, and datasets) of deep graph clustering is shared at https://github.com/yueliu1999/Awesome-Deep-Graph-Clustering.","url_abs":"https://arxiv.org/abs/2305.18405v3","url_pdf":"https://arxiv.org/pdf/2305.18405v3.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":"dink-net-neural-clustering-on-large-graphs","repo_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"dink-net-neural-clustering-on-large-graphs","repo_url":"https://github.com/yueliu1999/dink-net","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"clustering","task_name":"Clustering"},{"task_slug":"graph-clustering","task_name":"Graph Clustering"},{"task_slug":"representation-learning","task_name":"Representation Learning"}],"methods":[{"method_slug":"fail","method_name":"fail"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2305.18405","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2305.18405"}},"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/yueliu1999/dink-net","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/yueliu1999/awesome-deep-graph-clustering","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"unverified":15},"by_repo_kind":{"official":{"samples":17,"ran":2,"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":0,"samples":[{"code_sha256_prefix":"8df2d7c9c5130d96","entry":"kmeans_plusplus_init","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/clustering/kmeans_gpu.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/clustering/kmeans_gpu.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"8df2d7c9c5130d96"}},{"code_sha256_prefix":"984c282b0889b5bf","entry":"random_init","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/clustering/kmeans_gpu.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/clustering/kmeans_gpu.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"984c282b0889b5bf"}},{"code_sha256_prefix":"3d3e7131c6169f81","entry":"add_edge","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/augmentation/augmentation.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/augmentation/augmentation.py","link_basis":"first_harvest_node","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":"3d3e7131c6169f81"}},{"code_sha256_prefix":"38b7ff211b7c6642","entry":"aug_feature_dropout","repo":"yueliu1999/dink-net","repo_kind":"official","path":"utils.py","file_url":"https://github.com/yueliu1999/dink-net/blob/HEAD/utils.py","link_basis":"first_harvest_node","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":"38b7ff211b7c6642"}},{"code_sha256_prefix":"a75ce8e51dcc5015","entry":"diffusion_adj","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/augmentation/augmentation.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/augmentation/augmentation.py","link_basis":"first_harvest_node","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":"a75ce8e51dcc5015"}},{"code_sha256_prefix":"bcfbed8a5de42869","entry":"drop_edge","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/augmentation/augmentation.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/augmentation/augmentation.py","link_basis":"first_harvest_node","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":"bcfbed8a5de42869"}},{"code_sha256_prefix":"8e20feda4d89a3d5","entry":"k_means","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/clustering/clustering.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/clustering/clustering.py","link_basis":"first_harvest_node","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":"8e20feda4d89a3d5"}},{"code_sha256_prefix":"0c7778c11aa56956","entry":"kmeans","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/clustering/kmeans_gpu.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/clustering/kmeans_gpu.py","link_basis":"first_harvest_node","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":"0c7778c11aa56956"}},{"code_sha256_prefix":"10814cdc168fabe2","entry":"load_data","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/utils/data_loader.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/utils/data_loader.py","link_basis":"first_harvest_node","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":"10814cdc168fabe2"}},{"code_sha256_prefix":"e1f5acb3d146b48c","entry":"load_graph_data","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/utils/data_loader.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/utils/data_loader.py","link_basis":"first_harvest_node","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":"e1f5acb3d146b48c"}},{"code_sha256_prefix":"16475ba069d5a2cd","entry":"normalize_adj","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/utils/data_processor.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/utils/data_processor.py","link_basis":"first_harvest_node","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":"16475ba069d5a2cd"}},{"code_sha256_prefix":"d6b766d2c2a9f3fb","entry":"numpy_to_torch","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/utils/data_processor.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/utils/data_processor.py","link_basis":"first_harvest_node","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":"d6b766d2c2a9f3fb"}},{"code_sha256_prefix":"7060a5d3da293868","entry":"setup_seed","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/rand/random_seed.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/rand/random_seed.py","link_basis":"first_harvest_node","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":"7060a5d3da293868"}},{"code_sha256_prefix":"3ca9fb001e7b5067","entry":"setup_seed","repo":"yueliu1999/dink-net","repo_kind":"official","path":"utils.py","file_url":"https://github.com/yueliu1999/dink-net/blob/HEAD/utils.py","link_basis":"first_harvest_node","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":"3ca9fb001e7b5067"}},{"code_sha256_prefix":"3f8ff21e08e80504","entry":"similarity_plot","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/visualization/visualization.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/visualization/visualization.py","link_basis":"first_harvest_node","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":"3f8ff21e08e80504"}},{"code_sha256_prefix":"443d6a37168cf414","entry":"t_sne","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/visualization/visualization.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/visualization/visualization.py","link_basis":"first_harvest_node","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":"443d6a37168cf414"}},{"code_sha256_prefix":"8a030011abbbef71","entry":"torch_to_numpy","repo":"yueliu1999/awesome-deep-graph-clustering","repo_kind":"official","path":"dgc/utils/data_processor.py","file_url":"https://github.com/yueliu1999/awesome-deep-graph-clustering/blob/HEAD/dgc/utils/data_processor.py","link_basis":"first_harvest_node","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":"8a030011abbbef71"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}