{"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/artificial-text-detection-via-examining-the","title":"Artificial Text Detection via Examining the Topology of Attention Maps","arxiv_id":"2109.04825","date":"2021-09-10","proceeding":"EMNLP 2021 11","authors":["Laida Kushnareva","Daniil Cherniavskii","Vladislav Mikhailov","Ekaterina Artemova","Serguei Barannikov","Alexander Bernstein","Irina Piontkovskaya","Dmitri Piontkovski","Evgeny Burnaev"],"abstract":"The impressive capabilities of recent generative models to create texts that are challenging to distinguish from the human-written ones can be misused for generating fake news, product reviews, and even abusive content. Despite the prominent performance of existing methods for artificial text detection, they still lack interpretability and robustness towards unseen models. To this end, we propose three novel types of interpretable topological features for this task based on Topological Data Analysis (TDA) which is currently understudied in the field of NLP. We empirically show that the features derived from the BERT model outperform count- and neural-based baselines up to 10\\% on three common datasets, and tend to be the most robust towards unseen GPT-style generation models as opposed to existing methods. The probing analysis of the features reveals their sensitivity to the surface and syntactic properties. The results demonstrate that TDA is a promising line with respect to NLP tasks, specifically the ones that incorporate surface and structural information.","url_abs":"https://arxiv.org/abs/2109.04825v2","url_pdf":"https://arxiv.org/pdf/2109.04825v2.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":"artificial-text-detection-via-examining-the","repo_url":"https://github.com/danchern97/tda4atd","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":1,"framework":"none","reach":null},{"paper_slug":"artificial-text-detection-via-examining-the","repo_url":"https://github.com/upunaprosk/la-tda","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"text-detection","task_name":"Text Detection"},{"task_slug":"topological-data-analysis","task_name":"Topological Data Analysis"}],"methods":[{"method_slug":"adam","method_name":"Adam"},{"method_slug":"attention","method_name":"Attention"},{"method_slug":"attention-dropout","method_name":"Attention Dropout"},{"method_slug":"bert","method_name":"BERT"},{"method_slug":"dense-connections","method_name":"Dense Connections"},{"method_slug":"dropout","method_name":"Dropout"},{"method_slug":"layer-normalization","method_name":"Layer Normalization"},{"method_slug":"linear-layer","method_name":"Linear Layer"},{"method_slug":"linear-warmup-with-linear-decay","method_name":"Linear Warmup With Linear Decay"},{"method_slug":"multi-head-attention","method_name":"Multi-Head Attention"},{"method_slug":"residual-connection","method_name":"Residual Connection"},{"method_slug":"softmax","method_name":"Softmax"},{"method_slug":"weight-decay","method_name":"Weight Decay"},{"method_slug":"wordpiece","method_name":"WordPiece"}],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2109.04825","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2109.04825"}},"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/danchern97/tda4atd","reach":null},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/upunaprosk/la-tda","reach":{"status":"ok"}}],"summary":{"ran_honours":8,"ran_draft_wrong":1},"by_repo_kind":{"official":{"samples":9,"ran":9,"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":9,"samples":[{"code_sha256_prefix":"6486319f6396dcb2","entry":"barcode_entropy","repo":"danchern97/tda4atd","repo_kind":"official","path":"ripser_count.py","file_url":"https://github.com/danchern97/tda4atd/blob/HEAD/ripser_count.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"6486319f6396dcb2"}},{"code_sha256_prefix":"72a17f917c17d964","entry":"barcode_mean","repo":"danchern97/tda4atd","repo_kind":"official","path":"ripser_count.py","file_url":"https://github.com/danchern97/tda4atd/blob/HEAD/ripser_count.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"72a17f917c17d964"}},{"code_sha256_prefix":"a85cfca2bcaa9f99","entry":"barcode_number","repo":"danchern97/tda4atd","repo_kind":"official","path":"ripser_count.py","file_url":"https://github.com/danchern97/tda4atd/blob/HEAD/ripser_count.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a85cfca2bcaa9f99"}},{"code_sha256_prefix":"ece9f4884ba61658","entry":"barcode_number_of_barcodes","repo":"danchern97/tda4atd","repo_kind":"official","path":"ripser_count.py","file_url":"https://github.com/danchern97/tda4atd/blob/HEAD/ripser_count.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ece9f4884ba61658"}},{"code_sha256_prefix":"2a3d5f88ec1f40b6","entry":"barcode_pop_inf","repo":"danchern97/tda4atd","repo_kind":"official","path":"ripser_count.py","file_url":"https://github.com/danchern97/tda4atd/blob/HEAD/ripser_count.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":"2a3d5f88ec1f40b6"}},{"code_sha256_prefix":"ec2164194aa5ef9a","entry":"barcode_std","repo":"danchern97/tda4atd","repo_kind":"official","path":"ripser_count.py","file_url":"https://github.com/danchern97/tda4atd/blob/HEAD/ripser_count.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ec2164194aa5ef9a"}},{"code_sha256_prefix":"100138690422e928","entry":"barcode_sum","repo":"danchern97/tda4atd","repo_kind":"official","path":"ripser_count.py","file_url":"https://github.com/danchern97/tda4atd/blob/HEAD/ripser_count.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"100138690422e928"}},{"code_sha256_prefix":"b1c33d05c2c4d881","entry":"barcode_time","repo":"danchern97/tda4atd","repo_kind":"official","path":"ripser_count.py","file_url":"https://github.com/danchern97/tda4atd/blob/HEAD/ripser_count.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b1c33d05c2c4d881"}},{"code_sha256_prefix":"45f088ee843c2b8d","entry":"count_ripser_features","repo":"danchern97/tda4atd","repo_kind":"official","path":"ripser_count.py","file_url":"https://github.com/danchern97/tda4atd/blob/HEAD/ripser_count.py","link_basis":"first_harvest_node","language":"python","status":"ran_honours","verification_level":1,"contract_check":"HONOURS","metamorphic_tier":"well_formed","behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"45f088ee843c2b8d"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}