  Prior studies have demonstrated the effectiveness of Deep Learning (DL) in
automated software vulnerability detection. Graph Neural Networks (GNNs) have
proven effective in learning the graph representations of source code and are
commonly adopted by existing DL-based vulnerability detection methods. However,
the existing methods are still limited by the fact that GNNs are essentially
difficult to handle the connections between long-distance nodes in a code
structure graph. Besides, they do not well exploit the multiple types of edges
in a code structure graph (such as edges representing data flow and control
flow). Consequently, despite achieving state-of-the-art performance, the
existing GNN-based methods tend to fail to capture global information (i.e.,
long-range dependencies among nodes) of code graphs. To mitigate these issues,
in this paper, we propose a novel vulnerability detection framework with grAph
siMplification and enhanced graph rePresentation LEarning, named AMPLE. AMPLE
mainly contains two parts: 1) graph simplification, which aims at reducing the
distances between nodes by shrinking the node sizes of code structure graphs;
2) enhanced graph representation learning, which involves one edge-aware graph
convolutional network module for fusing heterogeneous edge information into
node representations and one kernel-scaled representation module for well
capturing the relations between distant graph nodes. Experiments on three
public benchmark datasets show that AMPLE outperforms the state-of-the-art
methods by 0.39%-35.32% and 7.64%-199.81% with respect to the accuracy and F1
score metrics, respectively. The results demonstrate the effectiveness of AMPLE
in learning global information of code graphs for vulnerability detection.
