{"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/sebot-structural-entropy-guided-multi-view","title":"SeBot: Structural Entropy Guided Multi-View Contrastive Learning for Social Bot Detection","arxiv_id":"2405.11225","date":"2024-05-18","proceeding":null,"authors":["Yingguang Yang","Qi Wu","Buyun He","Hao Peng","Renyu Yang","Zhifeng Hao","Yong Liao"],"abstract":"Recent advancements in social bot detection have been driven by the adoption of Graph Neural Networks. The social graph, constructed from social network interactions, contains benign and bot accounts that influence each other. However, previous graph-based detection methods that follow the transductive message-passing paradigm may not fully utilize hidden graph information and are vulnerable to adversarial bot behavior. The indiscriminate message passing between nodes from different categories and communities results in excessively homogeneous node representations, ultimately reducing the effectiveness of social bot detectors. In this paper, we propose SEBot, a novel multi-view graph-based contrastive learning-enabled social bot detector. In particular, we use structural entropy as an uncertainty metric to optimize the entire graph's structure and subgraph-level granularity, revealing the implicitly existing hierarchical community structure. And we design an encoder to enable message passing beyond the homophily assumption, enhancing robustness to adversarial behaviors of social bots. Finally, we employ multi-view contrastive learning to maximize mutual information between different views and enhance the detection performance through multi-task learning. Experimental results demonstrate that our approach significantly improves the performance of social bot detection compared with SOTA methods.","url_abs":"https://arxiv.org/abs/2405.11225v1","url_pdf":"https://arxiv.org/pdf/2405.11225v1.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":"sebot-structural-entropy-guided-multi-view","repo_url":"https://github.com/846468230/sebot","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"Apache-2.0"}}],"tasks":[{"task_slug":"contrastive-learning","task_name":"Contrastive Learning"},{"task_slug":"multi-task-learning","task_name":"Multi-Task Learning"}],"methods":[{"method_slug":"contrastive-learning","method_name":"Contrastive Learning"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/2405.11225","atlas_url":"https://app.syntology.ai/?focus=2405.11225","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.11225"}},"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":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/846468230/sebot","reach":{"status":"ok","spdx":"Apache-2.0"}}],"summary":{"ran_honours":1,"ran_fixture":1,"ran":8,"ran_draft_wrong":3},"by_repo_kind":{"official":{"samples":13,"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":0,"samples":[{"code_sha256_prefix":"b16d0d091d08f27f","entry":"child_tree_deepth","repo":"846468230/sebot","repo_kind":"official","path":"SEPG/utils.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/SEPG/utils.py","link_basis":"plan_row","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"b16d0d091d08f27f"}},{"code_sha256_prefix":"721b31dc7e862365","entry":"cut_volume","repo":"846468230/sebot","repo_kind":"official","path":"SEPG/utils.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/SEPG/utils.py","link_basis":"plan_row","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"721b31dc7e862365"}},{"code_sha256_prefix":"fc042c73717f4575","entry":"edge_dropping","repo":"846468230/sebot","repo_kind":"official","path":"main_mgtab.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/main_mgtab.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"fc042c73717f4575"}},{"code_sha256_prefix":"cedc2ce0919049da","entry":"edge_mask","repo":"846468230/sebot","repo_kind":"official","path":"main_mgtab.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/main_mgtab.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cedc2ce0919049da"}},{"code_sha256_prefix":"7816de9206821783","entry":"extract_tree","repo":"846468230/sebot","repo_kind":"official","path":"SEPG/data.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/SEPG/data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"7816de9206821783"}},{"code_sha256_prefix":"e025810519395dbd","entry":"feature_mask","repo":"846468230/sebot","repo_kind":"official","path":"main_twibot20.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/main_twibot20.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"e025810519395dbd"}},{"code_sha256_prefix":"3626d54c9c119c8f","entry":"get_layer_graph","repo":"846468230/sebot","repo_kind":"official","path":"SEPG/data.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/SEPG/data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"3626d54c9c119c8f"}},{"code_sha256_prefix":"21dda7ecf92b5b2c","entry":"graph_parse","repo":"846468230/sebot","repo_kind":"official","path":"SEPG/utils.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/SEPG/utils.py","link_basis":"plan_row","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"21dda7ecf92b5b2c"}},{"code_sha256_prefix":"2f01cf160b34a636","entry":"integrate_label","repo":"846468230/sebot","repo_kind":"official","path":"SEPG/data.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/SEPG/data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"2f01cf160b34a636"}},{"code_sha256_prefix":"96b35c8a743ef57b","entry":"relatioal_edge_adding","repo":"846468230/sebot","repo_kind":"official","path":"main_mgtab.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/main_mgtab.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"96b35c8a743ef57b"}},{"code_sha256_prefix":"be48e44dbf661266","entry":"relational_undirected","repo":"846468230/sebot","repo_kind":"official","path":"main_twibot20.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/main_twibot20.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"be48e44dbf661266"}},{"code_sha256_prefix":"cb653477a7fefad1","entry":"trans_to_adj","repo":"846468230/sebot","repo_kind":"official","path":"SEPG/trans_graph.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/SEPG/trans_graph.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"cb653477a7fefad1"}},{"code_sha256_prefix":"1bc1bd0cbe71477b","entry":"update_node","repo":"846468230/sebot","repo_kind":"official","path":"SEPG/trans_graph.py","file_url":"https://github.com/846468230/sebot/blob/HEAD/SEPG/trans_graph.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"Apache-2.0","inline_ok":true,"mcp_get_code":{"code_sha256":"1bc1bd0cbe71477b"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}