{"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/cyclegt-unsupervised-graph-to-text-and-text","title":"CycleGT: Unsupervised Graph-to-Text and Text-to-Graph Generation via Cycle Training","arxiv_id":"2006.04702","date":"2020-06-08","proceeding":"ACL (WebNLG, INLG) 2020 12","authors":["Qipeng Guo","Zhijing Jin","Xipeng Qiu","Wei-Nan Zhang","David Wipf","Zheng Zhang"],"abstract":"Two important tasks at the intersection of knowledge graphs and natural language processing are graph-to-text (G2T) and text-to-graph (T2G) conversion. Due to the difficulty and high cost of data collection, the supervised data available in the two fields are usually on the magnitude of tens of thousands, for example, 18K in the WebNLG~2017 dataset after preprocessing, which is far fewer than the millions of data for other tasks such as machine translation. Consequently, deep learning models for G2T and T2G suffer largely from scarce training data. We present CycleGT, an unsupervised training method that can bootstrap from fully non-parallel graph and text data, and iteratively back translate between the two forms. Experiments on WebNLG datasets show that our unsupervised model trained on the same number of data achieves performance on par with several fully supervised models. Further experiments on the non-parallel GenWiki dataset verify that our method performs the best among unsupervised baselines. This validates our framework as an effective approach to overcome the data scarcity problem in the fields of G2T and T2G. Our code is available at https://github.com/QipengGuo/CycleGT.","url_abs":"https://arxiv.org/abs/2006.04702v3","url_pdf":"https://arxiv.org/pdf/2006.04702v3.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":"cyclegt-unsupervised-graph-to-text-and-text","repo_url":"https://github.com/QipengGuo/CycleGT","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"paper_slug":"cyclegt-unsupervised-graph-to-text-and-text","repo_url":"https://github.com/krantirk/CycleGT","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"tasks":[{"task_slug":"graph-generation","task_name":"Graph Generation"},{"task_slug":"knowledge-graphs","task_name":"Knowledge Graphs"},{"task_slug":"machine-translation","task_name":"Machine Translation"},{"task_slug":"translation","task_name":"Translation"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2006.04702","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2006.04702"}},"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/krantirk/CycleGT","reach":{"status":"ok","spdx":"BSD-3-Clause"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/QipengGuo/CycleGT","reach":{"status":"ok","spdx":"BSD-3-Clause"}}],"summary":{"unverified":7},"by_repo_kind":{"official":{"samples":6,"ran":0,"repositories":1},"listed":{"samples":1,"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":0,"samples":[{"code_sha256_prefix":"314b38325447aa3c","entry":"fn_u_dot_v","repo":"QipengGuo/CycleGT","repo_kind":"official","path":"g2t_model.py","file_url":"https://github.com/QipengGuo/CycleGT/blob/HEAD/g2t_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"314b38325447aa3c"}},{"code_sha256_prefix":"5c03dd3d31813206","entry":"len2mask","repo":"QipengGuo/CycleGT","repo_kind":"official","path":"g2t_model.py","file_url":"https://github.com/QipengGuo/CycleGT/blob/HEAD/g2t_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"5c03dd3d31813206"}},{"code_sha256_prefix":"8c6d439b6387a0ac","entry":"pad","repo":"QipengGuo/CycleGT","repo_kind":"official","path":"data.py","file_url":"https://github.com/QipengGuo/CycleGT/blob/HEAD/data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"8c6d439b6387a0ac"}},{"code_sha256_prefix":"60bbf647af9f6265","entry":"replace_ent","repo":"QipengGuo/CycleGT","repo_kind":"official","path":"g2t_model.py","file_url":"https://github.com/QipengGuo/CycleGT/blob/HEAD/g2t_model.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"60bbf647af9f6265"}},{"code_sha256_prefix":"6dbd77a491f089ee","entry":"scan_data","repo":"QipengGuo/CycleGT","repo_kind":"official","path":"data.py","file_url":"https://github.com/QipengGuo/CycleGT/blob/HEAD/data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"6dbd77a491f089ee"}},{"code_sha256_prefix":"c872d48a4b771716","entry":"scan_data","repo":"krantirk/CycleGT","repo_kind":"listed","path":"data.py","file_url":"https://github.com/krantirk/CycleGT/blob/HEAD/data.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"c872d48a4b771716"}},{"code_sha256_prefix":"dc15c58b53be8221","entry":"write_txt","repo":"QipengGuo/CycleGT","repo_kind":"official","path":"data.py","file_url":"https://github.com/QipengGuo/CycleGT/blob/HEAD/data.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"BSD-3-Clause","inline_ok":true,"mcp_get_code":{"code_sha256":"dc15c58b53be8221"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}