{"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-2508-17690","title":"Text Meets Topology: Rethinking Out-of-distribution Detection in Text-Rich Networks","arxiv_id":"2508.17690","date":"2025-08-25","proceeding":"EMNLP","authors":["Danny Wang","Ruihong Qiu","Guangdong Bai","Zi Huang"],"abstract":"Out-of-distribution (OOD) detection remains challenging in text-rich networks, where textual features intertwine with topological structures. Existing methods primarily address label shifts or rudimentary domain-based splits, overlooking the intricate textual-structural diversity. For example, in social networks, where users represent nodes with textual features (name, bio) while edges indicate friendship status, OOD may stem from the distinct language patterns between bot and normal users. To address this gap, we introduce the TextTopoOOD framework for evaluating detection across diverse OOD scenarios: (1) attribute-level shifts via text augmentations and embedding perturbations; (2) structural shifts through edge rewiring and semantic connections; (3) thematically-guided label shifts; and (4) domain-based divisions. Furthermore, we propose TNT-OOD to model the complex interplay between Text aNd Topology using: 1) a novel cross-attention module to fuse local structure into node-level text representations, and 2) a HyperNetwork to generate node-specific transformation parameters. This aligns topological and semantic features of ID nodes, enhancing ID/OOD distinction across structural and textual shifts. Experiments on 11 datasets across four OOD scenarios demonstrate the nuanced challenge of TextTopoOOD for evaluating OOD detection in text-rich networks.","url_abs":"https://arxiv.org/abs/2508.17690","url_pdf":"https://arxiv.org/pdf/2508.17690","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=2508.17690","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2508.17690"}},"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/DannyW618/TNT","reach":{"status":"ok"}}],"summary":{"unverified":8},"by_repo_kind":{"found_in_text":{"samples":8,"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":8,"samples":[{"code_sha256_prefix":"e940ef080c4bb84e","entry":"apply_character_edit","repo":"DannyW618/TNT","repo_kind":"found_in_text","path":"tntood/ood_generation.py","file_url":"https://github.com/DannyW618/TNT/blob/HEAD/tntood/ood_generation.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":"e940ef080c4bb84e"}},{"code_sha256_prefix":"c3d39c7db2d44b4b","entry":"get_ood_metrics","repo":"DannyW618/TNT","repo_kind":"found_in_text","path":"tntood/metrics.py","file_url":"https://github.com/DannyW618/TNT/blob/HEAD/tntood/metrics.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":"c3d39c7db2d44b4b"}},{"code_sha256_prefix":"04a582f495d8b918","entry":"get_word_replacements","repo":"DannyW618/TNT","repo_kind":"found_in_text","path":"tntood/ood_generation.py","file_url":"https://github.com/DannyW618/TNT/blob/HEAD/tntood/ood_generation.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":"04a582f495d8b918"}},{"code_sha256_prefix":"a670a144dfa39747","entry":"get_wordnet_pos","repo":"DannyW618/TNT","repo_kind":"found_in_text","path":"tntood/ood_generation.py","file_url":"https://github.com/DannyW618/TNT/blob/HEAD/tntood/ood_generation.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":"a670a144dfa39747"}},{"code_sha256_prefix":"f6eb3ceb15cd6657","entry":"load_dataset","repo":"DannyW618/TNT","repo_kind":"found_in_text","path":"tntood/data_processing.py","file_url":"https://github.com/DannyW618/TNT/blob/HEAD/tntood/data_processing.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":"f6eb3ceb15cd6657"}},{"code_sha256_prefix":"d447f32a5765e313","entry":"save_config","repo":"DannyW618/TNT","repo_kind":"found_in_text","path":"tntood/experiment_utils.py","file_url":"https://github.com/DannyW618/TNT/blob/HEAD/tntood/experiment_utils.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":"d447f32a5765e313"}},{"code_sha256_prefix":"4baf964701b18410","entry":"save_json","repo":"DannyW618/TNT","repo_kind":"found_in_text","path":"tntood/experiment_utils.py","file_url":"https://github.com/DannyW618/TNT/blob/HEAD/tntood/experiment_utils.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":"4baf964701b18410"}},{"code_sha256_prefix":"3c896b36e888f0d1","entry":"save_results","repo":"DannyW618/TNT","repo_kind":"found_in_text","path":"tntood/experiment_utils.py","file_url":"https://github.com/DannyW618/TNT/blob/HEAD/tntood/experiment_utils.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":"3c896b36e888f0d1"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CL","source":"arxiv_api"},"syntology_extracted_results":null}