Beliebte Suchanfragen

Cloud Native

DevOps

IT-Security

Agile Methoden

Java

|
//

Fraud-Analyse mit Data-Science-Techniken

5.9.2017 | 9 Minuten Lesezeit

Was ist Fraud und was macht es für Data Science interessant?

Im Zusammenhang mit Data Science beschreibt das englische Wort „Fraud“ in der Regel Betrug im Online-, Kreditkarten- oder Versicherungsgeschäft. Betrugsversuche bei Geschäftsabschlüssen gibt es seitdem Menschen miteinander Handel treiben. Aber gerade durch die starke Zunahme von Online-Transaktionen hat sich für Betrüger ein neues breites Feld aufgetan. Fraud ist inzwischen zu einem weit verbreiteten Problem im E-Commerce geworden, und Firmen investieren viele Ressourcen, um ihn zu erkennen und zu verhindern.

Traditionelle Herangehensweisen zur Fraud-Prävention basieren auf durch Experten festgelegten Regeln; erfüllt eine Transaktion eine oder mehrere dieser Regeln, wird sie geflaggt. Ein Nachteil dieses Systems ist, dass es unflexibel ist und nur langsam auf neue Betrugsmaschen reagiert.
Die moderne Alternative ist, die großen Datenmengen, die bei Online-Transaktionen anfallen, zu sammeln und für die Fraud-Erkennung zu nutzen. In solchen Anwendungsfällen sind Data-Science- und Machine-Learning-Techniken, wie Deep Neural Networks, die offensichtliche Lösung!

Hier zeige ich ein Beispiel dafür, wie Data-Science-Techniken genutzt werden können, um Fraud in Finanztransaktionen zu erkennen. Ich werde dabei einen Einblick in Fraud-Analyse-Methoden geben, der für Laien verständlich sein soll.

Synthetisierte Finanz-Datensätze für Fraud-Erkennung

Ein synthetisierter Finanz-Datensatz für Fraud-Erkennung ist bei Kaggle frei verfügbar. Er wurde anhand mehrerer echter Datensätze synthetisiert, um Standarddaten aus finanziellen Transaktionen möglichst realistisch darzustellen; wir bekommen dabei Informationen über 6.362.620 Transaktion in einem 30-tägigen Zeitraum (siehe Kaggle für Details und weitere Informationen).

Indem wir uns ein paar der wichtigsten Variablen (auch Feature genannt) ansehen, bekommen wir bereits ein Gefühl für die Daten. Die beiden nachstehenden Abbildungen zeigen zum Beispiel, dass es bei betrügerischen Transaktionen tendenziell um größere Summen Geld geht. Wenn wir uns zusätzlich die Art der Transaktion angucken, stellen wir außerdem fest, dass Fraud nur in Transfers und Cash-Out-Transaktionen vorkommt. Diese Information können wir nutzen, wenn wir die Daten für Machine-Learning-Modelle vorbereiten.

Betrügerische Transaktionen involvieren tendenziell größere Summen Geld. Diese Abbildung zeigt die Verteilung der transferierten Geld-Summen (log + 1) in Fraud (Class = 1) und regulären (Class = 0) Transaktionen.

Fraud kommt nur in Transfers und Cash-Out-Transaktionen vor. Diese Abbildung zeigt die Verteilung der transferierten Geld-Summen (log + 1) in verschiedenen Transaktionsarten bei Fraud (Class = 1) und regulären (Class = 0) Transaktionen.

Dimensionalitätsreduktion

Für die Vorbereitung von Machine-Learning-Analysen sind Dimensionalitätsreduktion-Techniken hilfreiche Werkzeuge, um verborgene Muster in hoch-dimensionalen Datensätzen sichtbar zu machen. Darüber hinaus können wir sie nutzen, um die Anzahl an Features für das Machine Learning zu reduzieren ohne dabei essentielle Strukturen in den Daten zu verlieren. Ähnliche Herangehensweisen nutzen Clustering-Algorithmen, wie zum Beispiel k-Means Clustering.

Die am häufigsten verwendete Technik zur Dimensionalitätsreduktion ist die sogenannte „Principal Component Analyse“ (PCA). PCA erlaubt es uns, lineare Beziehungen zwischen Features in unseren Daten zu erkennen. Die erste Dimension, auch erste Principal Component (PC) genannt, spiegelt die größte Variation in unseren Daten wider, gefolgt von der zweiten PC mit der zweitgrößten Variation und so weiter. Wenn wir die ersten beiden Dimensionen in einem Streudiagramm gegeneinander auftragen, sehen wir Muster in unseren Daten: je unterschiedlicher zwei Proben in unserem Datensatz, desto größer ihr Abstand in der Abbildung. Allerdings ist PCA nicht in der Lage, komplexere Mustere in Daten zu finden. Für nicht-lineare Beziehungen zwischen Features können wir t-Distributed Stochastic Neighbor Embedding (t-SNE) verwenden. Im Gegensatz zu PCA zeigt t-SNE nicht nur die Unterschiedlichkeit von Proben, sondern zieht auch ihre Ähnlichkeit in Betracht, indem ähnliche Proben im Streudiagramm näher beieinander liegen. Dieser Unterschied mag nicht besonders gravierend klingen, aber wenn wir die beiden nachstehenden Abbildungen vergleichen, sehen wir, dass es deutlich einfacher ist, Cluster von Fraud-Fällen mit t-SNE zu finden als mit PCA. Beide Techniken können im Zusammenhang mit Machine Learning verwendet werden.

In dieser Beispielanalyse nutze ich Dimensionalitätsreduktion und Visualisierung zur Überprüfung der gelabelten Trainingsdaten. Da wir davon ausgehen können, dass nicht alle Fraud-Fälle auch als solche identifiziert wurden (und daher falsche Label zugewiesen bekommen haben), kann es sinnvoll sein, sich Proben, die nicht als Fraud gekennzeichnet wurden, aber in Clustern mit Fraud-Proben liegen, noch einmal genauer anzuschauen.

Techniken zur Dimensionalitätsreduktion in Fraud-Analyse. Die Abbildungen zeigen die ersten beiden Dimensionen aus PCA (links) und t-SNE (rechts) für Fraud (Class = 1) und reguläre (Class = 0).

Welche Machine-Learning-Algorithmen sind für Fraud-Analysen sinnvoll?

Machine Learning ist ein weites Feld. Es umfasst eine Vielzahl von Algorithmen und Techniken, die für Klassifikation, Regression, Clustering oder Anomalie-Erkennung eingesetzt werden. Es werden zwei Hauptgruppen von Algorithmen, für „überwachtes“ (supervised) und „unüberwachtes“ Lernen (unsupervised learning), unterschieden.

  • Supervised Learning wird benutzt, um entweder die Werte einer gesuchten Antwortvariablen vorherzusagen (Regression), oder um Proben einer von mehreren vorgegebenen Klassen zuzuordnen (Klassifikation). Überwachte Algorithmen lernen unbekannte Proben anhand der Daten von Proben mit bekannten Antwortvariablen/Klassen vorherzusagen.

Bei unserem Fraud-Beispiel handelt es sich streng genommen um ein Klassifikationsproblem: Jede Probe (entspricht jeweils einer Transaktion) hat ein entsprechendes Label, dass sie als Fraud (Class = 1) or regulär (Class = 0) klassifiziert. Es gibt allerdings zwei Hauptprobleme mit Supervised Learning und Fraud-Analyse:

  1. Daten Labelling: Fraud ist in vielen Fällen schwer zu erkennen. Manche Betrugsversuche werden offensichtlich sein – diese sind mit Regel-basierten Systemen leicht zu erkennen und müssten nicht mit einem komplexen Modell analysiert werden. Interessant sind die Fälle, in denen subtiler Fraud begangen wird: Da wir nicht wissen, nach welchen Kriterien wir hier schauen müssen, werden diese Fälle mit traditionellen Methoden kaum erkannt. Hier kommt die Stärke von Machine Learning zum Tragen! Da wir Modelle beim Supervised Learning aber auf Grundlage von manuell vergebenen Labeln trainieren, ist es problematisch, wenn diese Label nicht oder nur teilweise stimmen. Wenn ein bestimmter Betrugsmechanismus bisher nicht aufgefallen und in unseren Daten als regulär gelabelt ist, werden überwachte Algorithmen diesen nicht erlernen können.
  2. Unsymmetrische Daten: Eine wichtige Eigenschaft von Fraud-Daten ist, dass sie extrem unsymmetrisch sind. Das bedeutet, dass eine Klasse extrem viel häufiger vorkommt als die andere; in unserem Beispiel sind nur weniger als 1% aller Transaktionen Fraud (siehe Abbildung „Synthetisierter Finanz-Datensatz für Fraud-Erkennung“). Die meisten Supervised-Learning-Algorithmen sind empfindlich gegenüber unsymmetrischen Klassen, und spezielle Techniken müssen angewendet werden, um dies auszugleichen.

Synthetisierter Finanz-Datensatz für Fraud-Erkennung. Fraud-Fälle sind selten im Vergleich zu regulären Transaktionen; im simulierten Beispieldatensatz sind weniger als 1% aller Transaktionen Fraud.

  • Unsupervised Learning benötigt keine vorgegebenen Antwortvariablen. Es wird genutzt, um Cluster oder Ausreißer/Anomalien in Datensätzen zu finden.

In unserem Beispieldatensatz gehen wir davon aus, dass die Klassen-Label nicht zu 100% vertrauenswürdig sind. Aber wir können annehmen, dass Fraud-Fälle ausreichende Unterschiede zu regulären Transaktionen aufweisen, so dass Unsupervised-Learning-Algorithmen diese als Ausreißer oder Anomalien kennzeichnen.

Anomalie-Erkennung mit Deep Learning Autoencodern

Neuronale Netzwerke finden im Supervised- und Unsupervised-Learning-Anwendung. Autoencoder-Netzwerke werden für Anomalie-Erkennung im Unsupervised Learning genutzt; sie wenden sogenannte „Fehlerrückführung“ (backpropagation) an, um eine Annäherung an die Identitätsfunktion zu lernen, wobei die Output-Werte durch Minimierung des Rekonstruktionsfehlers den Input-Werten angeglichen werden sollen. Dadurch, dass der Rekonstruktionsfehler für die regulären Proben minimiert wurde, haben anormale Proben einen höheren Rekonstruktionsfehler.

Für die Modellbildungen nutze ich die Open-Source Software H2O über das R-Paket „h2o“. Auf dem oben beschriebenen Fraud-Beispieldatensatz wurde ein Unsupervised Neuronal Autoencoder Network trainiert (Gaußsche Verteilung, Quadratischer Loss, 209 Gewichte/Biases, 42.091.943 Trainingsproben, Mini-Batch Größe 1, 3 Hidden Layer mit [10, 2, 10] Knoten). Die Trainingsdaten enthalten nur reguläre Proben, so dass das Autoencoder-Modell die Struktur der „normalen“ Daten lernt. Testdaten sind eine Mischung aus regulären und Fraud-Proben. Im Hinterkopf zu behalten ist, dass Autoencoder-Modelle sensitiv auf Ausreißer reagieren; diese können typische Muster verschleiern. Mit diesem so trainierten Autoencoder-Modell können nun Ausreißer oder anormale Proben anhand des mittleren quadratischen Fehlers der Rekonstruktion (MSE) identifiziert werden: Transaktionen mit hohem MSE sind Anomalien im Vergleich zum globalen Muster in unseren Daten. Die unten stehende Abbildung zeigt, dass die Mehrheit der als Fraud gelabelten Testproben tatsächlich einen höheren MSE haben. Wir sehen außerdem einige als regulär gelabelte Transaktionen mit leicht erhöhtem MSE; diese könnten Fälle neuartiger Betrugsmaschen darstellen, die mit bisherigen Analysen unentdeckt geblieben sind.

Diese Abbildung zeigt den mittleren quadratischen Fehlers der Rekonstruktion (MSE, y-Achse) für jede Transaktion (instance) im Testdatensatz (x-Achse); Punktefarben entsprechen dem manuell vergebenen Label (Fraud = 1, regulär = 0).

Vortrainieren von Supervised-Learning-Modellen mit Autoencodern

Autoencoder-Modelle können auch genutzt werden, um Supervised Learning Modelle vorzutrainieren. Auf einem unabhängigen Trainingsdatensatz wurde ein weiteres Deep Neural Network trainiert – dieses Mal als Klassifikationsmodell für die Antwortvariable „Class“ (Fraud = 1, regulär = 0) mit den initialen Gewichten aus dem Autoencoder-Modell (2-Klassen Klassifikation, Bernoulli Verteilung, CrossEntropy loss, 154 Gewichte/Biases, 111.836.076 Trainingsproben, Mini-Batch Größe 1, balance_classes = TRUE).

Modell-Performance wird anhand des selben Testsets gemessen, das in der Abbildung oben den MSE des Autoencoder-Modells zeigt. Die Abbildung unten zeigt den Vergleich von vorhergesagten mit tatsächlichen Klassifikations-Labeln. Da es sich bei unserem Beispiel um stark asymmetrische Daten handelt, muss die Performance des Modells anhand der selteneren Klasse, die für uns von Interesse ist (hier: Fraud = Klasse 1), gemessen werden. Würden wir uns die Genauigkeit (Accuracy) angucken, würde ein Modell, das nie die Klasse 1 vorhersagt, trotzdem eine Genauigkeit von > 99% erreichen. So ein Modell ist für unseren Anwendungsfall sinnlos. Deshalb schauen wir auf die Parameter „Sensitivität“ und „Präzision“: Wir wollen ein Modell, das so optimiert wurde, dass es möglichst viele Fraud-Proben im Testset als solche klassifiziert (Sensitivität), während gleichzeitig möglichst viele der Fraud-Klassifizierungen korrekt sind (Präzision).
Ein optimales Ergebnis eines Supervised Neuronal Network für binäre Klassifikation ist in der nachstehenden Abbildung gezeigt.

Ergebnis eines Supervised Neuronal Network für binäre Klassifikation. Die Abbildung zeigt die Prozentzahl der korrekt klassifizierten Transaktionen, indem tatsächliche (x-Achse) mit vorhergesagten Labeln verglichen werden (Farbe; Fraud = 1, regulär = 0).

Können wir Machine-Learning-Modelle verstehen und ihnen vertrauen?

Entscheidungen, die von Machine-Learning-Modellen getroffen wurden, sind inhärent schwierig – wenn nicht gar unmöglich – nachzuvollziehen. Die Komplexität einiger der besten Modelle, wie Neuronale Netzwerke, ist genau das, was sie so erfolgreich macht. Aber es macht sie gleichzeitig zu einer Black Box. Das kann problematisch sein, denn Geschäftsführer oder Vorstände werden weniger geneigt sein einer Entscheidung zu vertrauen und nach ihr zu handeln, wenn sie sie nicht verstehen.

Local Interpretable Model-Agnostic Explanations (LIME) ist ein Versuch, diese komplexen Modelle zumindest teilweise nachvollziehbar zu machen. Mit LIME können wir konkreter erklären, warum zum Beispiel eine als regulär gelabelte Transaktion als Fraud klassifiziert wurde. Die Methode wurde in dem Papier “Why Should I Trust You? Explaining the Predictions of Any Classifier.” von Marco Tulio Ribeiro, Sameer Singh und Carlos Guestrin von der University of Washington in Seattle publiziert. Sie nutzt die Tatsache, dass lineare Modelle leicht zu erklären sind; LIME sucht eine Approximation an das komplexe Modell, indem lokale lineare Modelle in Permutationen der Trainingsdaten angepasst werden. In jeder Permutation wird ein lineares Model angepasst und eine Gewichtung vorgenommen, so dass positive Gewichte eine Entscheidung unterstützen und negative Gewichte ihr widersprechen. In Summe ergibt das eine annäherungsweise Erklärung, wie viel und in welcher Art ein Feature zu einer Entscheidung des Modells beigetragen hat.

Code

Ein vollständiges Beispiel mit Code für das Trainieren eines Autoencoders sowie für LIME kann auf meinem persönlichen Blog nachgelesen werde:

|

Beitrag teilen

Gefällt mir

0

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//

Gemeinsam bessere Projekte umsetzen.

Wir helfen deinem Unternehmen.

Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.

Hilf uns, noch besser zu werden.

Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.