{"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/graph-trees-with-attention","title":"TREE-G: Decision Trees Contesting Graph Neural Networks","arxiv_id":"2207.02760","date":"2022-07-06","proceeding":null,"authors":["Maya Bechler-Speicher","Amir Globerson","Ran Gilad-Bachrach"],"abstract":"When dealing with tabular data, models based on decision trees are a popular choice due to their high accuracy on these data types, their ease of application, and explainability properties. However, when it comes to graph-structured data, it is not clear how to apply them effectively, in a way that incorporates the topological information with the tabular data available on the vertices of the graph. To address this challenge, we introduce TREE-G. TREE-G modifies standard decision trees, by introducing a novel split function that is specialized for graph data. Not only does this split function incorporate the node features and the topological information, but it also uses a novel pointer mechanism that allows split nodes to use information computed in previous splits. Therefore, the split function adapts to the predictive task and the graph at hand. We analyze the theoretical properties of TREE-G and demonstrate its benefits empirically on multiple graph and vertex prediction benchmarks. In these experiments, TREE-G consistently outperforms other tree-based models and often outperforms other graph-learning algorithms such as Graph Neural Networks (GNNs) and Graph Kernels, sometimes by large margins. Moreover, TREE-Gs models and their predictions can be explained and visualized","url_abs":"https://arxiv.org/abs/2207.02760v5","url_pdf":"https://arxiv.org/pdf/2207.02760v5.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":"graph-trees-with-attention","repo_url":"https://github.com/mayabechlerspeicher/tree-g","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"graph-classification","task_name":"Graph Classification"},{"task_slug":"graph-learning","task_name":"Graph Learning"},{"task_slug":"graph-regression","task_name":"Graph Regression"},{"task_slug":"node-classification","task_name":"Node Classification"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[{"leaderboard":"/sota/graph-classification-on-dd","task":"Graph Classification","dataset":"D&D","model":"TREE-G","rank_in_archive_order":39,"of":53,"metrics":{"Accuracy":"76.2%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-enzymes","task":"Graph Classification","dataset":"ENZYMES","model":"TREE-G","rank_in_archive_order":30,"of":54,"metrics":{"Accuracy":"59.6"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-hiv-dataset","task":"Graph Classification","dataset":"HIV dataset","model":"TREE-G","rank_in_archive_order":4,"of":5,"metrics":{"Accuracy":"83.5"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-imdb-b","task":"Graph Classification","dataset":"IMDb-B","model":"TREE-G","rank_in_archive_order":37,"of":51,"metrics":{"Accuracy":"73%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-imdb-m","task":"Graph Classification","dataset":"IMDb-M","model":"TREE-G","rank_in_archive_order":3,"of":36,"metrics":{"Accuracy":"56.4%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-mutag","task":"Graph Classification","dataset":"MUTAG","model":"TREE-G","rank_in_archive_order":16,"of":74,"metrics":{"Accuracy":"91.1%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-mutagenicity","task":"Graph Classification","dataset":"Mutagenicity","model":"TREE-G","rank_in_archive_order":1,"of":5,"metrics":{"Accuracy":"83"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-nci1","task":"Graph Classification","dataset":"NCI1","model":"TREE-G","rank_in_archive_order":50,"of":69,"metrics":{"Accuracy":"75.9%"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-proteins","task":"Graph Classification","dataset":"PROTEINS","model":"TREE-G","rank_in_archive_order":63,"of":103,"metrics":{"Accuracy":"75.6"},"uses_additional_data":false},{"leaderboard":"/sota/graph-classification-on-ptc","task":"Graph Classification","dataset":"PTC","model":"TREE-G","rank_in_archive_order":36,"of":37,"metrics":{"Accuracy":"59.1%"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-citeseer","task":"Node Classification","dataset":"Citeseer","model":"TREE-G","rank_in_archive_order":28,"of":71,"metrics":{"Accuracy":"74.5"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-cora-fixed-20-node-per","task":"Node Classification","dataset":"Cora: fixed 20 node per class","model":"TREE-G","rank_in_archive_order":5,"of":9,"metrics":{"Accuracy":"83.5"},"uses_additional_data":false},{"leaderboard":"/sota/node-classification-on-pubmed","task":"Node Classification","dataset":"Pubmed","model":"TREE-G","rank_in_archive_order":57,"of":70,"metrics":{"Accuracy":"78.0"},"uses_additional_data":false}],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2207.02760","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2207.02760"}},"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/mayabechlerspeicher/tree-g","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"unverified":10},"by_repo_kind":{"official":{"samples":10,"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":"21640f228c42e71d","entry":"acc","repo":"mayabechlerspeicher/tree-g","repo_kind":"official","path":"eval_utils/metrics.py","file_url":"https://github.com/mayabechlerspeicher/tree-g/blob/HEAD/eval_utils/metrics.py","link_basis":"harvester_set","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":"21640f228c42e71d"}},{"code_sha256_prefix":"f6edee7478a3f851","entry":"auc_pytorch","repo":"mayabechlerspeicher/tree-g","repo_kind":"official","path":"eval_utils/metrics.py","file_url":"https://github.com/mayabechlerspeicher/tree-g/blob/HEAD/eval_utils/metrics.py","link_basis":"harvester_set","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":"f6edee7478a3f851"}},{"code_sha256_prefix":"c5fb1e62e9b6b32b","entry":"balance_data","repo":"mayabechlerspeicher/tree-g","repo_kind":"official","path":"utils.py","file_url":"https://github.com/mayabechlerspeicher/tree-g/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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c5fb1e62e9b6b32b"}},{"code_sha256_prefix":"cfdf94fad1b8a3fe","entry":"create_logger","repo":"mayabechlerspeicher/tree-g","repo_kind":"official","path":"eval_utils/general.py","file_url":"https://github.com/mayabechlerspeicher/tree-g/blob/HEAD/eval_utils/general.py","link_basis":"harvester_set","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":"cfdf94fad1b8a3fe"}},{"code_sha256_prefix":"b35b5897fe219832","entry":"get_balanced_data_for_class","repo":"mayabechlerspeicher/tree-g","repo_kind":"official","path":"utils.py","file_url":"https://github.com/mayabechlerspeicher/tree-g/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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"b35b5897fe219832"}},{"code_sha256_prefix":"d9b7c68d3b67de6f","entry":"intersect","repo":"mayabechlerspeicher/tree-g","repo_kind":"official","path":"treeg/node_treeg/tree_node_learner_node_level.py","file_url":"https://github.com/mayabechlerspeicher/tree-g/blob/HEAD/treeg/node_treeg/tree_node_learner_node_level.py","link_basis":"harvester_set","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":"d9b7c68d3b67de6f"}},{"code_sha256_prefix":"f753e3699554e87a","entry":"load_json","repo":"mayabechlerspeicher/tree-g","repo_kind":"official","path":"eval_utils/general.py","file_url":"https://github.com/mayabechlerspeicher/tree-g/blob/HEAD/eval_utils/general.py","link_basis":"harvester_set","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":"f753e3699554e87a"}},{"code_sha256_prefix":"17a866b6340f7ad0","entry":"load_pickle","repo":"mayabechlerspeicher/tree-g","repo_kind":"official","path":"eval_utils/general.py","file_url":"https://github.com/mayabechlerspeicher/tree-g/blob/HEAD/eval_utils/general.py","link_basis":"harvester_set","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":"17a866b6340f7ad0"}},{"code_sha256_prefix":"dfeb71444a0b6511","entry":"load_pickle_from_path","repo":"mayabechlerspeicher/tree-g","repo_kind":"official","path":"utils.py","file_url":"https://github.com/mayabechlerspeicher/tree-g/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":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"dfeb71444a0b6511"}},{"code_sha256_prefix":"69b43268d8037d42","entry":"round_acc","repo":"mayabechlerspeicher/tree-g","repo_kind":"official","path":"eval_utils/metrics.py","file_url":"https://github.com/mayabechlerspeicher/tree-g/blob/HEAD/eval_utils/metrics.py","link_basis":"harvester_set","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":"69b43268d8037d42"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}