{"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/reconstructing-graph-diffusion-history-from-a","title":"Reconstructing Graph Diffusion History from a Single Snapshot","arxiv_id":"2306.00488","date":"2023-06-01","proceeding":null,"authors":["Ruizhong Qiu","Dingsu Wang","Lei Ying","H. Vincent Poor","Yifang Zhang","Hanghang Tong"],"abstract":"Diffusion on graphs is ubiquitous with numerous high-impact applications. In these applications, complete diffusion histories play an essential role in terms of identifying dynamical patterns, reflecting on precaution actions, and forecasting intervention effects. Despite their importance, complete diffusion histories are rarely available and are highly challenging to reconstruct due to ill-posedness, explosive search space, and scarcity of training data. To date, few methods exist for diffusion history reconstruction. They are exclusively based on the maximum likelihood estimation (MLE) formulation and require to know true diffusion parameters. In this paper, we study an even harder problem, namely reconstructing Diffusion history from A single SnapsHot} (DASH), where we seek to reconstruct the history from only the final snapshot without knowing true diffusion parameters. We start with theoretical analyses that reveal a fundamental limitation of the MLE formulation. We prove: (a) estimation error of diffusion parameters is unavoidable due to NP-hardness of diffusion parameter estimation, and (b) the MLE formulation is sensitive to estimation error of diffusion parameters. To overcome the inherent limitation of the MLE formulation, we propose a novel barycenter formulation: finding the barycenter of the posterior distribution of histories, which is provably stable against the estimation error of diffusion parameters. We further develop an effective solver named DIffusion hiTting Times with Optimal proposal (DITTO) by reducing the problem to estimating posterior expected hitting times via the Metropolis--Hastings Markov chain Monte Carlo method (M--H MCMC) and employing an unsupervised graph neural network to learn an optimal proposal to accelerate the convergence of M--H MCMC. We conduct extensive experiments to demonstrate the efficacy of the proposed method.","url_abs":"https://arxiv.org/abs/2306.00488v4","url_pdf":"https://arxiv.org/pdf/2306.00488v4.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":"reconstructing-graph-diffusion-history-from-a","repo_url":"https://github.com/q-rz/kdd23-ditto","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"graph-neural-network","task_name":"Graph Neural Network"},{"task_slug":"parameter-estimation","task_name":"parameter estimation"}],"methods":[{"method_slug":"diffusion","method_name":"Diffusion"},{"method_slug":"graph-neural-network","method_name":"Graph Neural Network"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2306.00488","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2306.00488"}},"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/q-rz/kdd23-ditto","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":11},"by_repo_kind":{"official":{"samples":11,"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":"c43af06f30e8ef13","entry":"b_lik","repo":"q-rz/kdd23-ditto","repo_kind":"official","path":"gin.py","file_url":"https://github.com/q-rz/kdd23-ditto/blob/HEAD/gin.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":"c43af06f30e8ef13"}},{"code_sha256_prefix":"bcf689a4bc85dd62","entry":"cri_cluster","repo":"q-rz/kdd23-ditto","repo_kind":"official","path":"cri.py","file_url":"https://github.com/q-rz/kdd23-ditto/blob/HEAD/cri.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":"bcf689a4bc85dd62"}},{"code_sha256_prefix":"957e3671f3b0ad1d","entry":"cri_dist","repo":"q-rz/kdd23-ditto","repo_kind":"official","path":"cri.py","file_url":"https://github.com/q-rz/kdd23-ditto/blob/HEAD/cri.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":"957e3671f3b0ad1d"}},{"code_sha256_prefix":"4ee4262f7b351e21","entry":"data_calc_tI","repo":"q-rz/kdd23-ditto","repo_kind":"official","path":"inc/data.py","file_url":"https://github.com/q-rz/kdd23-ditto/blob/HEAD/inc/data.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":"4ee4262f7b351e21"}},{"code_sha256_prefix":"7b36029f6bcc1b2e","entry":"data_make_t","repo":"q-rz/kdd23-ditto","repo_kind":"official","path":"inc/data.py","file_url":"https://github.com/q-rz/kdd23-ditto/blob/HEAD/inc/data.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":"7b36029f6bcc1b2e"}},{"code_sha256_prefix":"c2d2719afe09d37b","entry":"data_simulate","repo":"q-rz/kdd23-ditto","repo_kind":"official","path":"inc/data.py","file_url":"https://github.com/q-rz/kdd23-ditto/blob/HEAD/inc/data.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":"c2d2719afe09d37b"}},{"code_sha256_prefix":"7eee67e75e94e7ad","entry":"file_require","repo":"q-rz/kdd23-ditto","repo_kind":"official","path":"inc/utils.py","file_url":"https://github.com/q-rz/kdd23-ditto/blob/HEAD/inc/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":"7eee67e75e94e7ad"}},{"code_sha256_prefix":"e436f8446c45f9e4","entry":"nx_layout","repo":"q-rz/kdd23-ditto","repo_kind":"official","path":"inc/utils.py","file_url":"https://github.com/q-rz/kdd23-ditto/blob/HEAD/inc/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":"e436f8446c45f9e4"}},{"code_sha256_prefix":"b561e23990a1990b","entry":"pcdsvc_greedy","repo":"q-rz/kdd23-ditto","repo_kind":"official","path":"dhrec.py","file_url":"https://github.com/q-rz/kdd23-ditto/blob/HEAD/dhrec.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":"b561e23990a1990b"}},{"code_sha256_prefix":"4ea3af4471316f50","entry":"q_loss","repo":"q-rz/kdd23-ditto","repo_kind":"official","path":"ditto.py","file_url":"https://github.com/q-rz/kdd23-ditto/blob/HEAD/ditto.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":"4ea3af4471316f50"}},{"code_sha256_prefix":"0148fb4f4b21f606","entry":"torch2np","repo":"q-rz/kdd23-ditto","repo_kind":"official","path":"inc/utils.py","file_url":"https://github.com/q-rz/kdd23-ditto/blob/HEAD/inc/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":"0148fb4f4b21f606"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}