{"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/unsupervised-entity-alignment-for-temporal","title":"Unsupervised Entity Alignment for Temporal Knowledge Graphs","arxiv_id":"2302.00796","date":"2023-02-01","proceeding":null,"authors":["Xiaoze Liu","Junyang Wu","Tianyi Li","Lu Chen","Yunjun Gao"],"abstract":"Entity alignment (EA) is a fundamental data integration task that identifies equivalent entities between different knowledge graphs (KGs). Temporal Knowledge graphs (TKGs) extend traditional knowledge graphs by introducing timestamps, which have received increasing attention. State-of-the-art time-aware EA studies have suggested that the temporal information of TKGs facilitates the performance of EA. However, existing studies have not thoroughly exploited the advantages of temporal information in TKGs. Also, they perform EA by pre-aligning entity pairs, which can be labor-intensive and thus inefficient. In this paper, we present DualMatch which effectively fuses the relational and temporal information for EA. DualMatch transfers EA on TKGs into a weighted graph matching problem. More specifically, DualMatch is equipped with an unsupervised method, which achieves EA without necessitating seed alignment. DualMatch has two steps: (i) encoding temporal and relational information into embeddings separately using a novel label-free encoder, Dual-Encoder; and (ii) fusing both information and transforming it into alignment using a novel graph-matching-based decoder, GM-Decoder. DualMatch is able to perform EA on TKGs with or without supervision, due to its capability of effectively capturing temporal information. Extensive experiments on three real-world TKG datasets offer the insight that DualMatch outperforms the state-of-the-art methods in terms of H@1 by 2.4% - 10.7% and MRR by 1.7% - 7.6%, respectively.","url_abs":"https://arxiv.org/abs/2302.00796v2","url_pdf":"https://arxiv.org/pdf/2302.00796v2.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":"unsupervised-entity-alignment-for-temporal","repo_url":"https://github.com/zju-daily/dualmatch","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"data-integration","task_name":"Data Integration"},{"task_slug":"decoder","task_name":"Decoder"},{"task_slug":"entity-alignment","task_name":"Entity Alignment"},{"task_slug":"graph-matching","task_name":"Graph Matching"},{"task_slug":"knowledge-graphs","task_name":"Knowledge Graphs"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/entity-alignment-on-dicews-1k","task":"Entity Alignment","dataset":"DICEWS-1K","model":"DualMatch","rank_in_archive_order":1,"of":5,"metrics":{"Hit@1":"95.3"},"uses_additional_data":false},{"leaderboard":"/sota/entity-alignment-on-yago-wiki50k","task":"Entity Alignment","dataset":"YAGO-WIKI50K","model":"DualMatch","rank_in_archive_order":1,"of":5,"metrics":{"Hit@1":"98.1"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2302.00796","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2302.00796"}},"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/zju-daily/dualmatch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"unverified":12},"by_repo_kind":{"official":{"samples":12,"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":"7f5dae800e82ca67","entry":"cal_sims","repo":"zju-daily/dualmatch","repo_kind":"official","path":"seu_tkg.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/seu_tkg.py","link_basis":"harvester_set","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":"7f5dae800e82ca67"}},{"code_sha256_prefix":"42f155574fc2f921","entry":"construct_sparse_rel_matrix","repo":"zju-daily/dualmatch","repo_kind":"official","path":"seu_tkg.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/seu_tkg.py","link_basis":"harvester_set","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":"42f155574fc2f921"}},{"code_sha256_prefix":"30b6c3e4661be6f6","entry":"get_feature_matrix","repo":"zju-daily/dualmatch","repo_kind":"official","path":"utils2.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/utils2.py","link_basis":"harvester_set","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":"30b6c3e4661be6f6"}},{"code_sha256_prefix":"32267b06a34760c1","entry":"get_link","repo":"zju-daily/dualmatch","repo_kind":"official","path":"utils2.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/utils2.py","link_basis":"harvester_set","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":"32267b06a34760c1"}},{"code_sha256_prefix":"68824ba6e717496e","entry":"get_score","repo":"zju-daily/dualmatch","repo_kind":"official","path":"processing.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/processing.py","link_basis":"harvester_set","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":"68824ba6e717496e"}},{"code_sha256_prefix":"44ea70c31791249e","entry":"get_time","repo":"zju-daily/dualmatch","repo_kind":"official","path":"utils2.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/utils2.py","link_basis":"harvester_set","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":"44ea70c31791249e"}},{"code_sha256_prefix":"84598856fa1287c7","entry":"readobj","repo":"zju-daily/dualmatch","repo_kind":"official","path":"dto.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/dto.py","link_basis":"harvester_set","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":"84598856fa1287c7"}},{"code_sha256_prefix":"ff5e3f83e9e31d8d","entry":"sinkhorn","repo":"zju-daily/dualmatch","repo_kind":"official","path":"seu_tkg.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/seu_tkg.py","link_basis":"harvester_set","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":"ff5e3f83e9e31d8d"}},{"code_sha256_prefix":"c7588b10b2803a0f","entry":"to_json","repo":"zju-daily/dualmatch","repo_kind":"official","path":"dto.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/dto.py","link_basis":"harvester_set","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":"c7588b10b2803a0f"}},{"code_sha256_prefix":"c2134ade863a5542","entry":"view2","repo":"zju-daily/dualmatch","repo_kind":"official","path":"utils.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/utils.py","link_basis":"harvester_set","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":"c2134ade863a5542"}},{"code_sha256_prefix":"dfa7dc642bf2a74a","entry":"view3","repo":"zju-daily/dualmatch","repo_kind":"official","path":"utils.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/utils.py","link_basis":"harvester_set","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":"dfa7dc642bf2a74a"}},{"code_sha256_prefix":"86b4c5eb684f9131","entry":"view_back","repo":"zju-daily/dualmatch","repo_kind":"official","path":"utils.py","file_url":"https://github.com/zju-daily/dualmatch/blob/HEAD/utils.py","link_basis":"harvester_set","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":"86b4c5eb684f9131"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}