GARG-AML: finding smurfing using Graph-Aided Risk Guarding for Anti-Money Laundering
Bruno Deprez, Bart Baesens, Tim Verdonck, Wouter Verbeke
This is the source code for an experiment to detect smurfing patterns in transaction networks. It provides an implementation of GARG-AML, which constructs a score based on the adjancy matrix of the second-order neighbourhood.
GARG-AML is based on insights derived from the definition of a pure smurfing pattern. With smurfing, multiple intermediate money mules (or smurfs) are used to get a large amount of money from one account to another, often using many small transactions. A representation of this is given in the figure below.
Translating this figure into a adjacency matrix for the second order neighbourhood, gives us the following: $$\begin{array}{r} A \ E \ B \ C \ D \end{array} \begin{pmatrix} 0 & 0 & 1 &1 &1\ 0 & 0 & 1 &1 &1\ 1 & 1 & 0 &0 &0 \ 1 & 1 & 0 &0 &0 \ 1 & 1 & 0 &0 &0 \ \end{pmatrix}$$
We can clearly distinguish four blocks in the adjacency matrix. For a typical smurfing pattern, the on-diagonal blocks only contain
The experiments are evaluated on synthetic data which is made publically available.
The repository does not provide any data, due to size constraints. The data can be found online using the following link:
TBD when code is finished
We have provided a requirements.txt
file:
pip install -r requirements.txt
Please use the above in a newly created virtual environment to avoid clashing dependencies.
Please cite our paper and/or code as follows: Use the BibTeX citation
@misc{deprez2024gargaml,
title={GARG-AML: finding smurfing using Graph-Aided Risk Guarding for Anti-Money Laundering},
author={Bruno Deprez and Bart Baesens and Tim Verdonck and Wouter Verbeke},
year={nd}
}