{"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/arxiv-2510-23577","title":"TAMI: Taming Heterogeneity in Temporal Interactions for Temporal Graph Link Prediction","arxiv_id":"2510.23577","date":"2025-10-23","proceeding":"NeurIPS","authors":["Zhongyi Yu","Jianqiu Wu","Zhenghao Wu","Shuhan Zhong","Weifeng Su","Chul-Ho Lee","Weipeng Zhuo"],"abstract":"Temporal graph link prediction aims to predict future interactions between nodes in a graph based on their historical interactions, which are encoded in node embeddings. We observe that heterogeneity naturally appears in temporal interactions, e.g., a few node pairs can make most interaction events, and interaction events happen at varying intervals. This leads to the problems of ineffective temporal information encoding and forgetting of past interactions for a pair of nodes that interact intermittently for their link prediction. Existing methods, however, do not consider such heterogeneity in their learning process, and thus their learned temporal node embeddings are less effective, especially when predicting the links for infrequently interacting node pairs. To cope with the heterogeneity, we propose a novel framework called TAMI, which contains two effective components, namely log time encoding function (LTE) and link history aggregation (LHA). LTE better encodes the temporal information through transforming interaction intervals into more balanced ones, and LHA prevents the historical interactions for each target node pair from being forgotten. State-of-the-art temporal graph neural networks can be seamlessly and readily integrated into TAMI to improve their effectiveness. Experiment results on 13 classic datasets and three newest temporal graph benchmark (TGB) datasets show that TAMI consistently improves the link prediction performance of the underlying models in both transductive and inductive settings. Our code is available at https://github.com/Alleinx/TAMI_temporal_graph.","url_abs":"https://arxiv.org/abs/2510.23577","url_pdf":"https://arxiv.org/pdf/2510.23577","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2510.23577","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2510.23577"}},"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":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/Alleinx/TAMI_temporal_graph","reach":null}],"summary":{"ran":6,"unverified":6},"by_repo_kind":{"found_in_text":{"samples":12,"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":0,"samples":[{"code_sha256_prefix":"88d37089bbc34b6f","entry":"MemoryBank","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"88d37089bbc34b6f"}},{"code_sha256_prefix":"d6c83c1b7087b900","entry":"MergeLayer","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d6c83c1b7087b900"}},{"code_sha256_prefix":"0cc93092271eaaae","entry":"MessageAggregator","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0cc93092271eaaae"}},{"code_sha256_prefix":"4ba369cbf1877730","entry":"NeighborSampler","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4ba369cbf1877730"}},{"code_sha256_prefix":"3442575cfdaa6e8f","entry":"TimeEncoder","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3442575cfdaa6e8f"}},{"code_sha256_prefix":"cbda67021067d5e3","entry":"TimeProjectionEmbedding","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cbda67021067d5e3"}},{"code_sha256_prefix":"203d6e505cc1ee66","entry":"GRUMemoryUpdater","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.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":"203d6e505cc1ee66"}},{"code_sha256_prefix":"ddbf82031455bdde","entry":"GraphAttentionEmbedding","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.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":"ddbf82031455bdde"}},{"code_sha256_prefix":"011c68a3777418c4","entry":"MemoryModel","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.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":"011c68a3777418c4"}},{"code_sha256_prefix":"999f04049e7dd348","entry":"MemoryUpdater","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.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":"999f04049e7dd348"}},{"code_sha256_prefix":"7ff8165c5ece0ae5","entry":"MultiHeadAttention","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.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":"7ff8165c5ece0ae5"}},{"code_sha256_prefix":"0ca29927400143ed","entry":"RNNMemoryUpdater","repo":"Alleinx/TAMI_temporal_graph","repo_kind":"found_in_text","path":"models/MemoryModel.py","file_url":"https://github.com/Alleinx/TAMI_temporal_graph/blob/HEAD/models/MemoryModel.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":"0ca29927400143ed"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.LG","source":"arxiv_api"},"syntology_extracted_results":null}