{"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/iterative-deep-graph-learning-for-graph-1","title":"Iterative Deep Graph Learning for Graph Neural Networks: Better and Robust Node Embeddings","arxiv_id":"2006.13009","date":"2020-06-21","proceeding":"NeurIPS 2020 12","authors":["Yu Chen","Lingfei Wu","Mohammed J. Zaki"],"abstract":"In this paper, we propose an end-to-end graph learning framework, namely Iterative Deep Graph Learning (IDGL), for jointly and iteratively learning graph structure and graph embedding. The key rationale of IDGL is to learn a better graph structure based on better node embeddings, and vice versa (i.e., better node embeddings based on a better graph structure). Our iterative method dynamically stops when the learned graph structure approaches close enough to the graph optimized for the downstream prediction task. In addition, we cast the graph learning problem as a similarity metric learning problem and leverage adaptive graph regularization for controlling the quality of the learned graph. Finally, combining the anchor-based approximation technique, we further propose a scalable version of IDGL, namely IDGL-Anch, which significantly reduces the time and space complexity of IDGL without compromising the performance. Our extensive experiments on nine benchmarks show that our proposed IDGL models can consistently outperform or match the state-of-the-art baselines. Furthermore, IDGL can be more robust to adversarial graphs and cope with both transductive and inductive learning.","url_abs":"https://arxiv.org/abs/2006.13009v2","url_pdf":"https://arxiv.org/pdf/2006.13009v2.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":"iterative-deep-graph-learning-for-graph-1","repo_url":"https://github.com/hugochan/IDGL","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}},{"paper_slug":"iterative-deep-graph-learning-for-graph-1","repo_url":"https://github.com/opengsl/opengsl","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"graph-embedding","task_name":"Graph Embedding"},{"task_slug":"graph-learning","task_name":"Graph Learning"},{"task_slug":"inductive-learning","task_name":"Inductive Learning"},{"task_slug":"metric-learning","task_name":"Metric Learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2006.13009","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.13009"}},"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/hugochan/IDGL","reach":{"status":"ok","spdx":"Apache-2.0"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/opengsl/opengsl","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":1,"ran_honours":1,"ran_violates":1,"unverified":11},"by_repo_kind":{"official":{"samples":14,"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":"4e393b15daa9461c","entry":"SquaredFrobeniusNorm","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/model_handler.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/model_handler.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4e393b15daa9461c"}},{"code_sha256_prefix":"4cf9dcdd60711db4","entry":"accuracy","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/model.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/model.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"4cf9dcdd60711db4"}},{"code_sha256_prefix":"698d3807a0c41ec9","entry":"compute_normalized_laplacian","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/layers/graphlearn.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/layers/graphlearn.py","link_basis":"plan_row","language":"python","status":"ran_violates","verification_level":1,"contract_check":"VIOLATES","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"698d3807a0c41ec9"}},{"code_sha256_prefix":"e264fe290089eb78","entry":"batch_diff","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/model_handler.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/model_handler.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":"e264fe290089eb78"}},{"code_sha256_prefix":"844daf63f8277a07","entry":"batch_sample_anchors","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/layers/anchor.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/layers/anchor.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":"844daf63f8277a07"}},{"code_sha256_prefix":"837b6503909c3bcc","entry":"batch_select_from_tensor","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/layers/anchor.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/layers/anchor.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":"837b6503909c3bcc"}},{"code_sha256_prefix":"29922ecc7c935e89","entry":"diff","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/model_handler.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/model_handler.py","link_basis":"plan_row","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":"29922ecc7c935e89"}},{"code_sha256_prefix":"90744bd46d234211","entry":"dropout","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/layers/common.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/layers/common.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":"90744bd46d234211"}},{"code_sha256_prefix":"80476f95d3822c09","entry":"get_binarized_kneighbors_graph","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/layers/graphlearn.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/layers/graphlearn.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":"80476f95d3822c09"}},{"code_sha256_prefix":"38ffdcfda0ea6889","entry":"normalize_text","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/utils/eval_utils.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/utils/eval_utils.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":"38ffdcfda0ea6889"}},{"code_sha256_prefix":"7533b3dc9f5bbfd6","entry":"prepare_datasets","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/utils/data_utils.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/utils/data_utils.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":"7533b3dc9f5bbfd6"}},{"code_sha256_prefix":"784e90120e8129cf","entry":"sample_anchors","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/layers/anchor.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/layers/anchor.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":"784e90120e8129cf"}},{"code_sha256_prefix":"11a56e75a1cddbe8","entry":"train_batch","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/model.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/model.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":"11a56e75a1cddbe8"}},{"code_sha256_prefix":"81d592687b5f5dd5","entry":"vectorize_input","repo":"hugochan/IDGL","repo_kind":"official","path":"src/core/utils/data_utils.py","file_url":"https://github.com/hugochan/IDGL/blob/HEAD/src/core/utils/data_utils.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":"81d592687b5f5dd5"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}