{"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/neuro-symbolic-entity-alignment-via","title":"Neuro-Symbolic Entity Alignment via Variational Inference","arxiv_id":"2410.04153","date":"2024-10-05","proceeding":null,"authors":["Shengyuan Chen","Qinggang Zhang","Junnan Dong","Wen Hua","Jiannong Cao","Xiao Huang"],"abstract":"Entity alignment (EA) aims to merge two knowledge graphs (KGs) by identifying equivalent entity pairs. Existing methods can be categorized into symbolic and neural models. Symbolic models, while precise, struggle with substructure heterogeneity and sparsity, whereas neural models, although effective, generally lack interpretability and cannot handle uncertainty. We propose NeuSymEA, a probabilistic neuro-symbolic framework that combines the strengths of both methods. NeuSymEA models the joint probability of all possible pairs' truth scores in a Markov random field, regulated by a set of rules, and optimizes it with the variational EM algorithm. In the E-step, a neural model parameterizes the truth score distributions and infers missing alignments. In the M-step, the rule weights are updated based on the observed and inferred alignments. To facilitate interpretability, we further design a path-ranking-based explainer upon this framework that generates supporting rules for the inferred alignments. Experiments on benchmarks demonstrate that NeuSymEA not only significantly outperforms baselines in terms of effectiveness and robustness, but also provides interpretable results.","url_abs":"https://arxiv.org/abs/2410.04153v1","url_pdf":"https://arxiv.org/pdf/2410.04153v1.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":[],"tasks":[{"task_slug":"entity-alignment","task_name":"Entity Alignment"},{"task_slug":"knowledge-graphs","task_name":"Knowledge Graphs"},{"task_slug":"variational-inference","task_name":"Variational Inference"}],"methods":[{"method_slug":"set","method_name":"SET"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.04153","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.04153"}},"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/chensyCN/NeuSymEA-NeurIPS25","reach":null}],"summary":{"ran":4,"ran_honours":2,"unverified":8},"by_repo_kind":{"found_in_text":{"samples":14,"ran":6,"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":14,"samples":[{"code_sha256_prefix":"5570898359053197","entry":"Entity","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"5570898359053197"}},{"code_sha256_prefix":"0fe57e65d70d4a69","entry":"KG","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"0fe57e65d70d4a69"}},{"code_sha256_prefix":"6e99717ac027416b","entry":"KGsUtil","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6e99717ac027416b"}},{"code_sha256_prefix":"a783c5ddc8b67ecd","entry":"Relation","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"a783c5ddc8b67ecd"}},{"code_sha256_prefix":"46461814966ab1de","entry":"get_counterpart_id_and_prob","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"46461814966ab1de"}},{"code_sha256_prefix":"544853fa1569dc27","entry":"get_rel_align_prob","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"544853fa1569dc27"}},{"code_sha256_prefix":"af2bccbf5bc291c9","entry":"Config","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"af2bccbf5bc291c9"}},{"code_sha256_prefix":"28d330ea9a414c46","entry":"KGs","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"28d330ea9a414c46"}},{"code_sha256_prefix":"6db34267b8388a9e","entry":"one_iteration_one_way_batch","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"6db34267b8388a9e"}},{"code_sha256_prefix":"c2981dc987a9f17c","entry":"register_ent_equality","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"c2981dc987a9f17c"}},{"code_sha256_prefix":"014abf1b73ce2c1b","entry":"register_ongoing_prob_product","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"014abf1b73ce2c1b"}},{"code_sha256_prefix":"dab4ffc030652bf7","entry":"register_rel_align_prob_norm","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"dab4ffc030652bf7"}},{"code_sha256_prefix":"409c647076a79551","entry":"set_counterpart_id_and_prob","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"409c647076a79551"}},{"code_sha256_prefix":"50562464450dae6b","entry":"update_ent_align_prob","repo":"chensyCN/NeuSymEA-NeurIPS25","repo_kind":"found_in_text","path":"objects/KGs.py","file_url":"https://github.com/chensyCN/NeuSymEA-NeurIPS25/blob/HEAD/objects/KGs.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"GPL-3.0","inline_ok":false,"mcp_get_code":{"code_sha256":"50562464450dae6b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}