A Survey of Source Code Representations for Machine Learning-Based Cybersecurity Tasks
Not on the map. Why?
Abstract (arXiv)
Machine learning techniques for cybersecurity-related software engineering tasks are becoming increasingly popular. The representation of source code is a key portion of the technique that can impact the way the model is able to learn the features of the source code. With an increasing number of these techniques being developed, it is valuable to see the current state of the field to better understand what exists and what is not there yet. This article presents a study of these existing machine learning based approaches and demonstrates what type of representations were used for different cybersecurity tasks and programming languages. Additionally, we study what types of models are used with different representations. We have found that graph-based representations are the most popular category of representation, and tokenizers and Abstract Syntax Trees (ASTs) are the two most popular representations overall (e.g., AST and tokenizers are the representations with the highest count of papers, whereas graph-based representations is the category with the highest count of papers). We also found that the most popular cybersecurity task is vulnerability detection, and the language that is covered by the most techniques is C. Finally, we found that sequence-based models are the most popular category of models, and Support Vector Machines are the most popular model overall.
Key facts. Cited by 5 papers in the map (data through 14 Oct 2026). Builds on 60 of its 213 references that are in the map. First posted on arXiv 15 Mar 2024.
Builds on
60 of 213 references.
References · 60
- 2013Efficient Estimation of Word Representations in Vector Spacecited by 4,375
- 2014Distributed Representations of Sentences and Documentscited by 678
- 2021Recent Advances in Natural Language Processing via Large Pre-Trained Language Models: A Surveycited by 463
- 2019Devign: Effective Vulnerability Identification by Learning Comprehensive Program Semantics via Graph Neural Networkscited by 272
- 2018code2vec: Learning Distributed Representations of Codecited by 250
- 2017graph2vec: Learning Distributed Representations of Graphscited by 230
- 2018Automated Vulnerability Detection in Source Code Using Deep Representation Learningcited by 114
- 2023DiverseVul: A New Vulnerable Source Code Dataset for Deep Learning Based Vulnerability Detectioncited by 102
- 2018SySeVR: A Framework for Using Deep Learning to Detect Software Vulnerabilitiescited by 92
- 2020Fast WordPiece Tokenizationcited by 87
- 2020Every Document Owns Its Structure: Inductive Text Classification via Graph Neural Networkscited by 77
- 2021Vulnerability Detection with Fine-grained Interpretationscited by 56
38 more
- 2022VulBERTa: Simplified Source Code Pre-Training for Vulnerability Detectioncited by 51
- 2022Transformer-Based Language Models for Software Vulnerability Detectioncited by 39
- 2020word2vec, node2vec, graph2vec, X2vec: Towards a Theory of Vector Embeddings of Structured Datacited by 38
- 2020A Survey on Deep Learning for Software Engineeringcited by 38
- 2020VulDeeLocator: A Deep Learning-based Fine-grained Vulnerability Detectorcited by 37
- 2021Neural Transfer Learning for Repairing Security Vulnerabilities in C Codecited by 36
- 2022LineVD: Statement-level Vulnerability Detection using Graph Neural Networkscited by 35
- 2018Automated software vulnerability detection with machine learningcited by 34
- 2021Combining Graph Neural Networks with Expert Knowledge for Smart Contract Vulnerability Detectioncited by 34
- 2020Exploring Software Naturalness through Neural Language Modelscited by 32
- 2021ReGVD: Revisiting Graph Neural Networks for Vulnerability Detectioncited by 32
- 2016MaMaDroid: Detecting Android Malware by Building Markov Chains of Behavioral Modelscited by 30
- 2021Smart Contract Vulnerability Detection: From Pure Neural Network to Interpretable Graph Feature and Expert Pattern Fusioncited by 24
- 2021VELVET: a noVel Ensemble Learning approach to automatically locate VulnErable sTatementscited by 20
- 2021SPI: Automated Identification of Security Patches via Commitscited by 19
- 2019A Literature Study of Embeddings on Source Codecited by 18
- 2021Automated Software Vulnerability Assessment with Concept Driftcited by 15
- 2021PatchRNN: A Deep Learning-Based System for Security Patch Identificationcited by 13
- 2022Cross-Language Binary-Source Code Matching with Intermediate Representationscited by 13
- 2021Security Vulnerability Detection Using Deep Learning Natural Language Processingcited by 12
- 2017Context-aware, Adaptive and Scalable Android Malware Detection through Online Learning (extended version)cited by 11
- 2020SeqTrans: Automatic Vulnerability Fix via Sequence to Sequence Learningcited by 11
- 2021DeepCVA: Automated Commit-level Vulnerability Assessment with Deep Multi-task Learningcited by 11
- 2021GraphCode2Vec: Generic Code Embedding via Lexical and Program Dependence Analysescited by 11
- 2017End-to-End Prediction of Buffer Overruns from Raw Source Code via Neural Memory Networkscited by 10
- 2018Overcoming the vanishing gradient problem in plain recurrent networkscited by 10
- 2018Improving Vulnerability Inspection Efficiency Using Active Learningcited by 10
- 2021On using distributed representations of source code for the detection of C security vulnerabilitiescited by 10
- 2020Learning to map source code to software vulnerability using code-as-a-graphcited by 9
- 2016Adaptive and Scalable Android Malware Detection through Online Learningcited by 8
- 2017A Multi-view Context-aware Approach to Android Malware Detection and Malicious Code Localizationcited by 8
- 2022Practical Automated Detection of Malicious npm Packagescited by 8
- 2021Eth2Vec: Learning Contract-Wide Code Representations for Vulnerability Detection on Ethereum Smart Contractscited by 7
- 2021Shallow or Deep? An Empirical Study on Detecting Vulnerabilities using Deep Learningcited by 7
- 2021VulSPG: Vulnerability detection based on slice property graph representation learningcited by 7
- 2022Machine Learning for Software Engineering: A Tertiary Studycited by 7
- 2020Learning to Catch Security Patchescited by 6
- 2022Less is More: Supporting Developers in Vulnerability Detection during Code Reviewcited by 6
50 most cited of 60 All 60 (JSON)
Built on by
Citing papers per year: 2024: 1; 2025: 4.
5 papers.
- 2025Trace Gadgets: Minimizing Code Context for Machine Learning-Based Vulnerability Predictioncited by 5
- 2025MLCPD: A Unified Multi-Language Code Parsing Dataset with Universal AST Schemacited by 2
- 2024A Systematic Literature Review on the Use of Machine Learning in Software Engineeringcited by 0
- 2025Exposing and Defending Membership Leakage in Vulnerability Prediction Modelscited by 0
- 2025From Lab to Reality: A Practical Evaluation of Deep Learning Models and LLMs for Vulnerability Detectioncited by 0
- 2025From Lab to Reality: A Practical Evaluation of Deep Learning Models and LLMs for Vulnerability Detection11 Dec 2025
- 2025Exposing and Defending Membership Leakage in Vulnerability Prediction Models9 Dec 2025
- 2025MLCPD: A Unified Multi-Language Code Parsing Dataset with Universal AST Schema18 Oct 2025
- 2025Trace Gadgets: Minimizing Code Context for Machine Learning-Based Vulnerability Prediction18 Apr 2025
- 2024A Systematic Literature Review on the Use of Machine Learning in Software Engineering19 Jun 2024