Modelle aus massiven Datasets trainieren und bereitstellen: Anwendungsfall für Betrugserkennung

Da Ihr Unternehmen die digitale Transformation durchläuft und zunehmend Online-Zahlungen annimmt, sind effektive Methoden zur Erkennung und schließlich Verhinderung von Kreditkartenbetrug erforderlich, um Verluste zu vermeiden.Da Betrug einen kleinen Teil aller Transaktionen ausmachen wird, sind in der Regel umfangreiche Datenmengen erforderlich, um ein robustes und genaues Modell zu erstellen, das Betrug mit minimalen falsch positiven Auswirkungen warnen kann.

Architektur

In dieser Architektur wird hervorgehoben, wie Sie mit Oracle Cloud Infrastructure-Services Datasets untersuchen, ein Modell erstellen und ein solches Modell auf Terabyte bis hin zu Petabyte an Daten trainieren können. Mit dem trainierten Modell können Sie Batchinkonferenzen als Job ausführen oder als REST-Endpunkt für Inferenzen in Echtzeit bereitgestellt werden. Die Architektur umfasst drei primäre Phasen: Erfassen, Analysieren und Handeln.

Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung von cc-fraud-detection-architecture.png folgt
Beschreibung der Abbildung cc-fraud-detection-architecture.png

cc-fraud-detection-architecture-oracle.zip

Die Architektur umfasst die folgenden Komponenten:

  • Erfassen

    Die Einzugsphase umfasst folgende Komponenten:

    • Geräte, Sensoren und Eingaben, die Daten generieren. Im Anwendungsfall der Betrugserkennung stammen Daten aus Point-of-Sale-(POS-)Systemen
    • Echtzeitaufnahme empfängt Datenpunkte bei ihrer Erstellung und kann entweder mit dem Streaming-Service, der mit einem Modell-Deployment verbunden ist, in einem Stream in die Queue gestellt werden, oder eine Anwendung kann den Inferenzserver direkt über eine API aufrufen. Echtzeit- und historische Daten werden in einem Datenspeicher (Cloud-Speicher oder Datenbank) abgestimmt.
    • Historische Daten, die über die obigen Mittel erfasst wurden, werden in der Regel in einer Datenbank oder im Objektspeicher gespeichert.
    • Mit Cloud Storage können Datasets für Explorations- und Modellschulungen bereitgestellt werden.
    • Aufnahmeservices, wie z.B. der Oracle Cloud Infrastructure Data Integration-Service oder Oracle GoldenGate, können auch externe Daten wie Datasets, die sich On Premise oder in Datenspeichern von Drittanbietern befinden, verknüpfen und transportieren.
  • Analysieren
    • Modelle untersuchen, analysieren und entwerfen

      In der Erkundungsphase extrahieren Data Scientists eine repräsentative Teilmenge des Datasets, die in den Speicher passen und daraus lernen kann, um Funktionen zu entwickeln, die für die aktuelle Aufgabe von Bedeutung sind. Alternativ können Data Scientists Oracle Cloud Infrastructure Data Flow-Anwendungen aus Oracle Cloud Infrastructure Data Science ausführen, um ein repräsentatives Dataset zu extrahieren. Zur Betrugserkennung umfassen Daten in der Regel Informationen über den Kunden (z.B. Kontonummer, Adresse, Geschlecht, Geburtsdatum) und die Transaktion (Datum, Uhrzeit, Händler, Händlerstandort), aus der andere Features abgeleitet werden können, wie Tageszeit, Alter, Entfernung zum Händler, Einwohnerzahl der Kundenstadt usw.

      Nach der Entwicklung aussagekräftiger Funktionen können Sie verschiedene Modelle testen, um den genauesten Kandidaten zu finden. Dies bedeutet, dass ein Beispiel-Dataset verwendet wird, um das Modell im kleinen Maßstab im Speicher zu trainieren und auszuwerten. Wenn dies nicht möglich ist, können Data Scientists Data Flow-Anwendungen aus Oracle Cloud Infrastructure Data Science erstellen und ausführen, um größere Modelle zu trainieren.

    • Modelltraining

      Mit der verteilten Apache Spark-Verarbeitungs-Engine, die den Oracle Cloud Infrastructure Data Flow-Service ansteuert, können Sie das ausgewählte Modell skalierbar in einem Dataset trainieren, das nicht in den Speicher (Terabyte oder sogar Petabyte) passt.

      Data Flow sorgt für das Provisioning von Treiber- und Executor-Knoten mit ausgewählten Ausprägungen zur Verarbeitung der Schulungsdaten und kann bei Bedarf automatisch skaliert werden.

    • Modellartefakte speichern

      Das trainierte Modell wird serialisiert und in Object Storage exportiert. Sie können das Artefakt für die Batchinferenz laden oder es verwenden, um das Modell für Echtzeitinferenz bereitzustellen.

    • Modellkatalog

      Oracle Cloud Infrastructure Model Catalog speichert Modellcode und Artefakte. Außerdem können Metadaten zur Herkunft und Taxonomie hinzugefügt werden. Damit können Sie Ein- und Ausgabeschemas einleiten und definieren. Der Modellkatalog ist die Quelle für Modell-Deployments.

  • Aktion
    • Batchinferenz

      Mit der Batch-Inferenz können Sie entweder frühere Ereignisse basierend auf einem Zeitplan auswerten oder die Modellperformance und die Abweichung regelmäßig prüfen. Die Batchinferenz wird skalierbar mit dem Oracle Cloud Infrastructure Data Flow-Service ausgeführt. Mit den in Object Storage gespeicherten Code- und Modellartefakten können Sie Scoring- oder Inferenz-Datenflussanwendungen direkt aus dem Oracle Cloud Infrastructure Data Science-Notizbuch erstellen.

    • Echtzeit-Inferenz

      Verwenden Sie ein Modell-Deployment, um Inferenzen zu einzelnen oder kleinen Batches von Ereignissen durchzuführen, die in den Speicher passen. Wie Datenflussanwendungen können Sie Modelle im Modellkatalog direkt im Data Science-Notizbuch erstellen und speichern. Inferenz kann dann auf einem Stream von Echtzeitdaten oder synchron über einen direkten API-Aufruf von der Anwendung erfolgen.

    • Orchestrierung und Planung

      Bei der Arbeit mit Batches ist es häufig hilfreich, die Jobs nach einem Zeitplan oder Trigger auszuführen. Mit dem Oracle Cloud Infrastructure Data Integration-Service können Sie diesen Orchestrierungstyp ausführen. Der Service kann Erfassungsaufgaben auslösen und kontrollieren, Transformationen auslösen und Schulungs-, Scoring- oder Inferenzjobs auslösen.

Sie können ein ähnliches Muster mit anderen Anwendungsfällen verwenden, für die sehr große Datasets erforderlich sind. Beispiele:

  • Vorausschauende Instandhaltung

    Bei der vorausschauenden Instandhaltung geht es um Kostenvermeidung und Minimierung betrieblicher Störungen, die den Aufwand erhöhen, wie die Planung zusätzlicher Schichten, die Bezahlung von Überstunden, Frachtkosten und anderen Kosten.

  • Energieproduktionsleistung

    Die Vorhersage des Durchsatzes aus alternativen Energiefarmen wie Wind oder Solar erfordert große Datenmengen, darunter lokale Wettermuster und frühere Ergebnisse.

  • Smart Manufacturing und Internet of Things (IoT)

    Intelligente Fertigung bedeutet, Wege zu finden, um die Betriebseffizienz zu verbessern, um Umsätze und Gewinne zu steigern. Dies erfordert in der Regel Datenaufnahme von Hunderten bis Millionen Sensoren, um Ausbeute, Engpässe oder Rückverfolgungsprodukte vorherzusagen, um Auswirkungen zu analysieren und so Durchsatz und Output zu erhöhen.

  • Verarbeitung von Krankenversicherungsansprüchen

    Betrug ist auch ein vorherrschendes Problem in der Krankenversicherung. Die automatische Bestimmung der Vollständigkeit von Einreichungen ist ein wesentlicher Bestandteil für die Effizienz des Prozesses.

  • Rezeptive Arzneimittelanalyse und -logistik

    Vorhersagen, welche Arten von verschreibungspflichtigen Medikamenten an einem Standort benötigt werden, ist ein komplexes Problem, mit dem nur große Datenmengen gelöst werden können.

  • Gesundheitsdiagnose

    Gesundheitsdiagnose wird häufig mit bildgebenden Techniken wie Röntgen oder MRT durchgeführt. Maschinelles Lernen hat sich bei der Vorhersage von Krankheiten als sehr hilfreich und manchmal besser als Menschen erwiesen. Diese Art der Anwendung erfordert sehr große Datensätze von Bildern, die aufgrund ihrer mehrdimensionalen Natur voluminös sind.

Empfehlungen

Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt.Ihre Anforderungen können sich von der hier beschriebenen Architektur unterscheiden.
  • Gateway

    Das Gateway kann ein benutzerdefinierter Hub sein, der für die spezifische Datenerfassung konzipiert ist. Es kann sich auch um eine Datenbank wie Oracle Autonomous Data Warehouse, Oracle NoSQL Database Cloud Service oder um eine andere Datenbank handeln.

  • Transport

    Mit Oracle Cloud Infrastructure Data Integration können Sie alle historischen Daten offline in Oracle Cloud Infrastructure Object Storage migrieren. Nachdem Daten in Object Storage übertragen wurden, können alle Oracle Cloud Infrastructure-(OCI-)Services auf die Daten zugreifen. Sie können Daten auch mit Oracle GoldenGate aus On-Premise-Datenbanken verschieben.

  • Streaming

    Verwenden Sie Oracle Cloud Infrastructure Streaming für die Echtzeitaufnahme von Ereignissen und Daten, die in Oracle Cloud Infrastructure Object Storage konsumiert oder gespeichert werden.

  • Datenspeicherung
    • Object Storage

      Oracle Cloud Infrastructure Object Storage ist der Standardspeicher in dieser Architektur. Die kosteneffektivste Lösung ist das Speichern aller strukturierten, halbstrukturierten und unstrukturierten Daten in Object Storage.

    • Datenbank

      Verwenden Sie Oracle Autonomous Data Warehouse, Oracle MySQL Database Service oder andere SQL- und NoSQL-Datenbanken, um Daten zu speichern, auf die für Analysen und Berichte zugegriffen werden muss. In der Regel befinden sich nur kuratierte und verarbeitete Daten in der Datenbank, während Rohdaten, auf die weniger häufig zugegriffen wird, effizienter in Object Storage gespeichert werden.

    • HDFS-Datenspeicher

      Mit Oracle Big Data Cloud Service können Sie sehr große Datenmengen in HDFS (Hadoop Distributed File System) speichern. Diese Option ist nützlich, wenn Ihre Organisation andere Hadoop-basierte Anwendungen bereits nutzt oder migriert. Oracle bietet einen HDFS-Connector für Oracle Cloud Infrastructure Object Storage, die empfohlene Speicherplattform.

  • Data Science

    Oracle Cloud Infrastructure Data Science bietet Data Scientists eine vertraute Entwicklungsumgebung in Form einer gehosteten Jupyter Lab-Umgebung und mehrerer Cda-basierter Umgebungen, aus denen Sie wählen können.

    Der Data Science-Service unterstützt die Oracle Advanced Data Science-(ADS-)Library, mit der Modelle für maschinelles Lernen einfach im Modellkatalog erstellt und gespeichert und Modelle über das Modell-Deployment bereitgestellt werden können.

    Die Jupyter Lab-Schnittstelle in Kombination mit der bereitgestellten vorkonfigurierten Apache Spark-Conda-Umgebung macht es einfach, Spark-basierte Modelle in speicherresidenten Datasets zu untersuchen und zu entwerfen und dann als Oracle Cloud Infrastructure Data Flow-Anwendungen bereitzustellen, um Schulungen oder Batchinferenz auszuführen, oder als Modell-Deployments für Echtzeit- oder In-Memory-Inferenz.

  • Verteilte Datenverarbeitung

    Oracle Cloud Infrastructure Data Flow stellt die verteilte Apache Spark-Verarbeitungs-Engine als Service bereit, mit der Verarbeitungsjobs auf Terabyte oder sogar Petabyte Daten ausgeführt werden können.

    Spark-Anwendungen, die im Data Science-Service entwickelt wurden, werden dank der Oracle ADS-Library-Utilitys einfach in Data Flow-Anwendungen übertragen und können für die Ausführung in beliebiger Form in beliebiger Größe konfiguriert werden.

Hinweise

Berücksichtigen Sie beim Erstellen und Trainieren von Modellen in umfangreichen Datasets die folgenden Punkte. Einige sind spezifisch für den Anwendungsfall zur Betrugserkennung. Sie können jedoch die meisten Modelldesignprozesse interpolieren.

  • Datenerfassung

    Beim Aufbau eines beliebigen Modells für maschinelles Lernen sind Daten von entscheidender Bedeutung: Qualitätsdaten in ausreichender Menge sind von größter Bedeutung. Im Beispielcode für die Betrugserkennung haben wir synthetische Transaktionsdaten mit Labels verwendet, die anhand von Benutzerprofilen generiert wurden, die am besten erraten werden. In einem realen Szenario werden Transaktionen oft nicht beschriftet, und Betrugsfälle werden möglicherweise nicht erkannt oder gar bekannt, geschweige denn beschriftet, so dass die Erstellung eines geeigneten Datasets die erste Herausforderung ist, zu beheben.

  • Datenmenge

    Wie viel Daten benötigt werden, ist immer eine schwierige Frage zu beantworten. Als Faustregel gilt: Je mehr Features vorhanden sind, desto mehr Daten werden benötigt. In einigen Fällen hilft die Reduzierung der Anzahl der Features, die Modellperformance zu verbessern und Überfitting zu vermeiden. In vielen Fällen sind jedoch mehr Daten erforderlich, um die Modellperformance zu verbessern.

    Wenn die Daten in den Speicher passen, ist es in der Regel effizienter, eine Compute-Ausprägung mit ausreichendem Speicher für die Schulung auf einem einzelnen Knoten auszuwählen, als mit einem verteilten Verarbeitungs-Framework wie Apache Spark (oder Oracle Cloud Infrastructure Data Flow, dem verwalteten Äquivalent) zu arbeiten.

  • Datenspeicherung

    Rohdaten sind häufig voluminös und sind nicht direkt für Analysen nützlich. Es ist wichtig, Rohdaten beizubehalten. Er wird jedoch selten zum Trainieren oder Umtrainieren von Modellen verwendet, sodass er besser in einer kosteneffizienten Lösung wie Oracle Cloud Infrastructure Object Storage gespeichert ist.

    Aggregierte Daten, Vorhersagen oder allgemeinere Daten, die für Analysen und Berichte verwendet werden, müssen live sein und sind besser in einer Datenbank gespeichert. Sowohl voluminöse als auch für Analysen erforderliche Daten können von verteilten Speicherlösungen wie HDFS und Oracle Big Data Cloud Service profitieren.

  • Featureentwicklung und Datenerweiterung

    Aufgenommene Rohdaten sind oft nicht genügend Informationen oder im falschen Format, und es ist erforderlich, Features daraus zu entwickeln. Beispiel: Wir möchten das Alter des Kunden anstelle des Geburtsdatums verwenden. Kategorischer Text, der von den meisten Modellen des maschinellen Lernens nicht leicht verstanden wird, kann als Zahlen mit einer StringIndexer oder häufiger mit einer 1-Hot-Codierung codiert werden. Dies funktioniert hervorragend, wenn sich die kategorischen Daten wahrscheinlich nicht ändern, z.B. zur Codierung des Geschlechts. Wenn es sich jedoch im Laufe der Zeit ändern kann, erfordert die Verwendung dieser Techniken, dass das Modell neu trainiert wird, wenn neue Werte eingehen, was weit vom Ideal entfernt ist. In diesem Fall kann es erforderlich sein, eine bessere Methode zur Kodierung dieser Daten zu finden.

    Im Beispiel des Betrugserkennungscodes verwenden wir bereits generierten Längen- und Breitengrad aus dem synthetischen Dataset als Proxy für die Kundenadresse. Diese Informationen sind wahrscheinlich nicht sofort von der Gerätequelle verfügbar und erfordern eine Datenerweiterung. Wenn Sie einen externen Geocoding-Service aufrufen, um eine Adresse in geografische Koordinaten zu übersetzen, entweder während der Datenaufnahme oder als Vorverarbeitungsschritt, werden die erforderlichen Informationen bereitgestellt.

  • Datenexploration

    Die Datenanalyse wird in der Regel für ein repräsentatives Beispiel-Dataset durchgeführt, das in den Speicher passt. Wenn es nicht einfach ist zu bestimmen, dass das Beispiel-Dataset wirklich repräsentativ für das vollständige Dataset ist und das vollständige Dataset zu groß für den Speicher ist, verwenden Sie Oracle Cloud Infrastructure Data Flow, um aggregierte Statistiken zum Dataset zu erstellen und ein aussagekräftiges Unterbeispiel-Dataset zu extrahieren, das für das vollständige Dataset repräsentativ ist. Engineering-Features in einem Beispiel-Dataset, das nicht repräsentativ für das gesamte Dataset ist, und das Training für das gesamte Dataset führt dann zu einem Modell mit schlechter Performance.

  • Modelltraining

    Das Optimieren von Spark für optimale Effizienz ist eine Herausforderung. Informationen hierzu finden Sie unter Datenflussanwendung skalieren. Befolgen Sie die Empfehlungen, um die Anzahl der Executors und Compute-Ausprägungen für die Ausführung eines bestimmten Jobs zu schätzen.

Bereitstellen

Das Beispiel für diese Referenzarchitektur ist als Jupyter Notebook in GitHub verfügbar.

  1. Gehen Sie zu GitHub, um das Beispielnotizbuch anzuzeigen.
  2. Befolgen Sie die Anweisungen im Dokument README.

Mehr erfahren

Weitere Informationen zu Oracle Cloud Infrastructure Data Flow.

Prüfen Sie die folgenden zusätzlichen Ressourcen:

Bestätigungen

Authors: Emmanuel Leroy, Niranjan Ghadei, Nishant Patel, Alireza Dibazar