{"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-2601-15771","title":"Rethinking Drug-Drug Interaction Modeling as Generalizable Relation Learning","arxiv_id":"2601.15771","date":"2026-01-22","proceeding":null,"authors":["Dong Xu","Jiantao Wu","Qihua Pan","Sisi Yuan","Zexuan Zhu","Junkai Ji"],"abstract":"Drug-drug interaction (DDI) prediction is central to drug discovery and clinical development, particularly in the context of increasingly prevalent polypharmacy. Although existing computational methods achieve strong performance on standard benchmarks, they often fail to generalize to realistic deployment scenarios, where most candidate drug pairs involve previously unseen drugs and validated interactions are scarce. We demonstrate that proximity in the embedding spaces of prevailing molecule-centric DDI models does not reliably correspond to interaction labels, and that simply scaling up model capacity therefore fails to improve generalization. To address these limitations, we propose GenRel-DDI, a generalizable relation learning framework that reformulates DDI prediction as a relation-centric learning problem, in which interaction representations are learned independently of drug identities. This relation-level abstraction enables the capture of transferable interaction patterns that generalize to unseen drugs and novel drug pairs. Extensive experiments across multiple benchmark demonstrate that GenRel-DDI consistently and significantly outperforms state-of-the-art methods, with particularly large gains on strict entity-disjoint evaluations, highlighting the effectiveness and practical utility of relation learning for robust DDI prediction. The code is available at https://github.com/SZU-ADDG/GenRel-DDI.","url_abs":"https://arxiv.org/abs/2601.15771","url_pdf":"https://arxiv.org/pdf/2601.15771","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":{"syntology_url":"https://syntology.ai/paper/2601.15771","atlas_url":null,"mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2601.15771"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+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/SZU-ADDG/GenRel-DDI","reach":null}],"summary":{"ran":9,"ran_draft_wrong":4,"unverified":5},"by_repo_kind":{"found_in_text":{"samples":18,"ran":13,"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":18,"samples":[{"code_sha256_prefix":"724f1c94c9b74b64","entry":"BERT","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.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":"724f1c94c9b74b64"}},{"code_sha256_prefix":"3cdcc0a6be122ca6","entry":"BertEmbeddings","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3cdcc0a6be122ca6"}},{"code_sha256_prefix":"6cadb1be8862ec47","entry":"BertPooler","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6cadb1be8862ec47"}},{"code_sha256_prefix":"ec5c2b3eb6775ab3","entry":"BertPredictionHeadTransform","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ec5c2b3eb6775ab3"}},{"code_sha256_prefix":"82f368b9ee59c068","entry":"BidirectionalSelfFlashAttention","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.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":"82f368b9ee59c068"}},{"code_sha256_prefix":"4ffc821cea0a58ae","entry":"Block","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.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":"4ffc821cea0a58ae"}},{"code_sha256_prefix":"1fa2d1acb18e78b9","entry":"CrossAttentionBlock","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"invariant","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"1fa2d1acb18e78b9"}},{"code_sha256_prefix":"929a7d8a1c198a3d","entry":"FusionModule","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":"deterministic","behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"929a7d8a1c198a3d"}},{"code_sha256_prefix":"431e035c22bd50ae","entry":"SmilesTokenizer","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.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":"431e035c22bd50ae"}},{"code_sha256_prefix":"40016ed6d5d339b4","entry":"_set_smiles_special","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"40016ed6d5d339b4"}},{"code_sha256_prefix":"8c1c03859eece728","entry":"load_vocab","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"8c1c03859eece728"}},{"code_sha256_prefix":"ab15b585260d2f31","entry":"load_yaml","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ab15b585260d2f31"}},{"code_sha256_prefix":"3518462ef9c8d02c","entry":"pick_spec","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.py","link_basis":"first_harvest_node","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"3518462ef9c8d02c"}},{"code_sha256_prefix":"3fd5731ffbaa0c66","entry":"BertConfig","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.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":"3fd5731ffbaa0c66"}},{"code_sha256_prefix":"2aa2964a3f4be05c","entry":"BertLMPredictionHead","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.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":"2aa2964a3f4be05c"}},{"code_sha256_prefix":"d04659f2f8bffe41","entry":"DDIModel","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.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":"d04659f2f8bffe41"}},{"code_sha256_prefix":"e7d04ca90b0d4b03","entry":"LocalBertAsHF","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.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":"e7d04ca90b0d4b03"}},{"code_sha256_prefix":"0ad8ec54f6e93c0d","entry":"build_encoder","repo":"SZU-ADDG/GenRel-DDI","repo_kind":"found_in_text","path":"model.py","file_url":"https://github.com/SZU-ADDG/GenRel-DDI/blob/HEAD/model.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":"0ad8ec54f6e93c0d"}}]},"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_2026.jsonl"},"syntology_extracted_results":null}