{"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/generative-subgraph-retrieval-for-knowledge","title":"Generative Subgraph Retrieval for Knowledge Graph-Grounded Dialog Generation","arxiv_id":"2410.09350","date":"2024-10-12","proceeding":null,"authors":["Jinyoung Park","Minseok Joo","Joo-Kyung Kim","Hyunwoo J. Kim"],"abstract":"Knowledge graph-grounded dialog generation requires retrieving a dialog-relevant subgraph from the given knowledge base graph and integrating it with the dialog history. Previous works typically represent the graph using an external encoder, such as graph neural networks, and retrieve relevant triplets based on the similarity between single-vector representations of triplets and the dialog history. However, these external encoders fail to leverage the rich knowledge of pretrained language models, and the retrieval process is also suboptimal due to the information bottleneck caused by the single-vector abstraction of the dialog history. In this work, we propose Dialog generation with Generative Subgraph Retrieval (DialogGSR), which retrieves relevant knowledge subgraphs by directly generating their token sequences on top of language models. For effective generative subgraph retrieval, we introduce two key methods: (i) structure-aware knowledge graph linearization with self-supervised graph-specific tokens and (ii) graph-constrained decoding utilizing graph structural proximity-based entity informativeness scores for valid and relevant generative retrieval. DialogGSR achieves state-of-the-art performance in knowledge graph-grounded dialog generation, as demonstrated on OpenDialKG and KOMODIS datasets.","url_abs":"https://arxiv.org/abs/2410.09350v1","url_pdf":"https://arxiv.org/pdf/2410.09350v1.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":"generative-subgraph-retrieval-for-knowledge","repo_url":"https://github.com/mlvlab/dialoggsr","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok"}}],"tasks":[{"task_slug":"informativeness","task_name":"Informativeness"},{"task_slug":"retrieval","task_name":"Retrieval"},{"task_slug":null,"task_name":"valid"}],"methods":[{"method_slug":"base","method_name":"BASE"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.09350","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.09350"}},"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/mlvlab/dialoggsr","reach":{"status":"ok"}},{"provenance":"deterministic:regex_extraction","url":"https://github.com/mlvlab/DialogGSR","reach":{"status":"ok"}}],"summary":{"ran":9,"unverified":2},"by_repo_kind":{"official":{"samples":11,"ran":9,"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":11,"samples":[{"code_sha256_prefix":"03ce54fece13db4c","entry":"CustomT5Stack","repo":"mlvlab/DialogGSR","repo_kind":"official","path":"models/modeling.py","file_url":"https://github.com/mlvlab/DialogGSR/blob/HEAD/models/modeling.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":"03ce54fece13db4c"}},{"code_sha256_prefix":"c45edcf208d27a66","entry":"bleu_corpus","repo":"mlvlab/dialoggsr","repo_kind":"official","path":"utils/metrics.py","file_url":"https://github.com/mlvlab/dialoggsr/blob/HEAD/utils/metrics.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":"c45edcf208d27a66"}},{"code_sha256_prefix":"0d94d3f53661b6a7","entry":"bleu_metric","repo":"mlvlab/dialoggsr","repo_kind":"official","path":"utils/metrics.py","file_url":"https://github.com/mlvlab/dialoggsr/blob/HEAD/utils/metrics.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":"0d94d3f53661b6a7"}},{"code_sha256_prefix":"cc9004ac5e7f0a1b","entry":"construct_paths","repo":"mlvlab/dialoggsr","repo_kind":"official","path":"preprocess/preprocess_path.py","file_url":"https://github.com/mlvlab/dialoggsr/blob/HEAD/preprocess/preprocess_path.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":"cc9004ac5e7f0a1b"}},{"code_sha256_prefix":"d2b920290dd11a30","entry":"is_whitespace","repo":"mlvlab/dialoggsr","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/mlvlab/dialoggsr/blob/HEAD/utils/utils.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":"d2b920290dd11a30"}},{"code_sha256_prefix":"3ac67481c2fa09b5","entry":"load_raw_dataset","repo":"mlvlab/dialoggsr","repo_kind":"official","path":"utils/utils.py","file_url":"https://github.com/mlvlab/dialoggsr/blob/HEAD/utils/utils.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":"3ac67481c2fa09b5"}},{"code_sha256_prefix":"a685f9a698083077","entry":"make_constraints","repo":"mlvlab/dialoggsr","repo_kind":"official","path":"preprocess/preprocess_path.py","file_url":"https://github.com/mlvlab/dialoggsr/blob/HEAD/preprocess/preprocess_path.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":"a685f9a698083077"}},{"code_sha256_prefix":"43704c82e23949b9","entry":"reverse","repo":"mlvlab/dialoggsr","repo_kind":"official","path":"preprocess/build_codebook.py","file_url":"https://github.com/mlvlab/dialoggsr/blob/HEAD/preprocess/build_codebook.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"43704c82e23949b9"}},{"code_sha256_prefix":"51b8af021c2c2a14","entry":"sequence_loss","repo":"mlvlab/dialoggsr","repo_kind":"official","path":"utils/metrics.py","file_url":"https://github.com/mlvlab/dialoggsr/blob/HEAD/utils/metrics.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":"51b8af021c2c2a14"}},{"code_sha256_prefix":"fc447991b7e6fc03","entry":"CustomT5ForConditionalGeneration","repo":"mlvlab/DialogGSR","repo_kind":"official","path":"models/modeling.py","file_url":"https://github.com/mlvlab/DialogGSR/blob/HEAD/models/modeling.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":"fc447991b7e6fc03"}},{"code_sha256_prefix":"4b93601454b984ea","entry":"KnowledgeGenerator","repo":"mlvlab/DialogGSR","repo_kind":"official","path":"models/modeling.py","file_url":"https://github.com/mlvlab/DialogGSR/blob/HEAD/models/modeling.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":"4b93601454b984ea"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}