Unternehmen nutzen zunehmend maschinelles Lernen (ML), um Entscheidungen nahezu in Echtzeit zu treffen, z. B. um eine Anzeige zu schalten, einen Fahrer zuzuweisen, ein Produkt zu empfehlen oder sogar Produkte und Dienstleistungen dynamisch zu bepreisen. ML-Modelle treffen Vorhersagen auf der Grundlage einer Reihe von Eingabedaten, die als bekannt sind Funktionen, und Data Scientists verbringen leicht mehr als 60 % ihrer Zeit mit dem Entwerfen und Erstellen dieser Funktionen. Darüber hinaus hängen hochgenaue Vorhersagen vom zeitnahen Zugriff auf Merkmalswerte ab, die sich im Laufe der Zeit schnell ändern, was die Aufgabe, eine hochverfügbare und genaue Lösung zu erstellen, noch komplexer macht. Beispielsweise kann ein Modell für eine Mitfahr-App den besten Preis für eine Fahrt vom Flughafen auswählen, aber nur, wenn es die Anzahl der in den letzten 10 Minuten eingegangenen Fahrtanfragen und die Anzahl der Passagiere kennt, die voraussichtlich in den nächsten landen werden 10 Minuten. Ein Routing-Modell in einer Callcenter-App kann den besten verfügbaren Agenten für einen eingehenden Anruf auswählen, aber es ist nur effektiv, wenn es die letzten Websitzungsklicks des Kunden kennt.
Obwohl der geschäftliche Wert von ML-Prognosen nahezu in Echtzeit enorm ist, ist die Architektur, die erforderlich ist, um sie zuverlässig, sicher und mit guter Leistung bereitzustellen, kompliziert. Lösungen benötigen Aktualisierungen mit hohem Durchsatz und das Abrufen der neuesten Feature-Werte mit geringer Latenz in Millisekunden, etwas, auf das die meisten Data Scientists nicht vorbereitet sind. Infolgedessen haben einige Unternehmen Millionen von Dollar ausgegeben, um ihre eigene proprietäre Infrastruktur für das Funktionsmanagement zu erfinden. Andere Firmen haben ihre ML-Anwendungen auf einfachere Muster wie Batch-Scoring beschränkt, bis ML-Anbieter umfassendere Standardlösungen für Online-Feature-Stores anbieten.
Um diesen Herausforderungen zu begegnen, Amazon SageMaker Feature Store bietet ein vollständig verwaltetes zentrales Repository für ML-Funktionen, das das sichere Speichern und Abrufen von Funktionen vereinfacht, ohne dass Sie Ihre eigene Infrastruktur aufbauen und warten müssen. Mit Feature Store können Sie Gruppen von Features definieren, Batch-Ingestion und Streaming-Ingestion verwenden, die neuesten Feature-Werte mit Latenz im einstelligen Millisekundenbereich für hochpräzise Online-Vorhersagen abrufen und zeitpunktgenaue Datensätze für das Training extrahieren. Anstatt diese Infrastrukturfunktionen aufzubauen und zu warten, erhalten Sie einen vollständig verwalteten Service, der mit dem Wachstum Ihrer Daten skaliert, die teamübergreifende gemeinsame Nutzung von Funktionen ermöglicht und es Ihren Data Scientists ermöglicht, sich auf die Erstellung großartiger ML-Modelle zu konzentrieren, die auf bahnbrechende Geschäftsanwendungsfälle abzielen. Teams können jetzt robuste Funktionen einmal bereitstellen und sie viele Male in einer Vielzahl von Modellen wiederverwenden, die von verschiedenen Teams erstellt werden können.
Dieser Beitrag zeigt anhand eines vollständigen Beispiels, wie Sie Streaming-Feature-Engineering mit Feature Store koppeln können, um ML-gestützte Entscheidungen nahezu in Echtzeit zu treffen. Wir zeigen einen Anwendungsfall zur Erkennung von Kreditkartenbetrug, der aggregierte Funktionen aus einem Live-Stream von Transaktionen aktualisiert und Funktionsabrufe mit geringer Latenz verwendet, um betrügerische Transaktionen zu erkennen. Probieren Sie es selbst aus, indem Sie unsere besuchen GitHub Repo.
Anwendungsfall für Kreditkartenbetrug
Gestohlene Kreditkartennummern können in großen Mengen im Internet über frühere Lecks oder Hacks von Organisationen gekauft werden, die diese sensiblen Daten speichern. Betrüger kaufen diese Kartenlisten und versuchen, mit den gestohlenen Nummern so viele Transaktionen wie möglich durchzuführen, bis die Karte gesperrt ist. Diese Betrugsangriffe finden in der Regel in kurzer Zeit statt. Dies kann bei historischen Transaktionen leicht festgestellt werden, da sich die Geschwindigkeit der Transaktionen während des Angriffs erheblich vom üblichen Ausgabenmuster des Karteninhabers unterscheidet.
Die folgende Tabelle zeigt eine Abfolge von Transaktionen von einer Kreditkarte, bei der der Karteninhaber zunächst ein echtes Ausgabeverhalten hat und dann ab dem 4. November einen Betrugsangriff erlebt.
cc_num | trans_time | Betrag | Betrug_Label |
... 1248 | 01. November 14:50:01 | 10.15 | 0 |
… 1248 | 02. November 12:14:31 | 32.45 | 0 |
… 1248 | 02. November 16:23:12 | 3.12 | 0 |
… 1248 | 04. November 02:12:10 | 1.01 | 1 |
… 1248 | 04. November 02:13:34 | 22.55 | 1 |
… 1248 | 04. November 02:14:05 | 90.55 | 1 |
… 1248 | 04. November 02:15:10 | 60.75 | 1 |
… 1248 | 04. November 13:30:55 | 12.75 | 0 |
Für diesen Beitrag trainieren wir ein ML-Modell, um diese Art von Verhalten zu erkennen, indem wir Funktionen entwickeln, die das Ausgabemuster einer einzelnen Karte beschreiben, wie z. B. die Anzahl der Transaktionen oder den durchschnittlichen Transaktionsbetrag von dieser Karte in einem bestimmten Zeitfenster. Dieses Modell schützt Karteninhaber vor Betrug an der Verkaufsstelle, indem verdächtige Transaktionen erkannt und blockiert werden, bevor die Zahlung abgeschlossen werden kann. Das Modell trifft Vorhersagen in einem Echtzeitkontext mit geringer Latenz und ist darauf angewiesen, dass es minutengenaue Merkmalsberechnungen erhält, damit es auf einen laufenden Betrugsangriff reagieren kann. In einem realen Szenario würden Funktionen, die sich auf das Ausgabeverhalten von Karteninhabern beziehen, nur Teil des Funktionsumfangs des Modells sein, und wir können Informationen über den Händler, den Karteninhaber, das für die Zahlung verwendete Gerät und alle anderen Daten, die möglicherweise vorhanden sind, einbeziehen relevant für die Aufdeckung von Betrug.
Da unser Anwendungsfall auf der Profilerstellung der Ausgabenmuster einer einzelnen Karte beruht, ist es entscheidend, dass wir Kreditkarten in einem Transaktionsstrom identifizieren können. Die meisten öffentlich verfügbaren Betrugserkennungsdatensätze enthalten diese Informationen nicht. Daher verwenden wir Python Schwindler Bibliothek, um eine Reihe von Transaktionen zu generieren, die einen Zeitraum von 5 Monaten abdecken. Dieser Datensatz enthält 5.4 Millionen Transaktionen, die auf 10,000 eindeutige (und gefälschte) Kreditkartennummern verteilt sind, und ist absichtlich unausgewogen, um der Realität des Kreditkartenbetrugs zu entsprechen (nur 0.25 % der Transaktionen sind betrügerisch). Wir variieren die Anzahl der Transaktionen pro Tag und Karte sowie die Transaktionsbeträge. Siehe unsere GitHub Repo für weitere Informationen an.
Überblick über die Lösung
Wir möchten, dass unser Betrugserkennungsmodell Kreditkartentransaktionen klassifiziert, indem ein Ausbruch der letzten Transaktionen festgestellt wird, der sich erheblich vom üblichen Ausgabenmuster des Karteninhabers unterscheidet. Klingt einfach genug, aber wie bauen wir es?
Das folgende Diagramm zeigt unsere Gesamtlösungsarchitektur. Wir glauben, dass dasselbe Muster für eine Vielzahl von Anwendungsfällen der Streaming-Aggregation gut funktionieren wird. Auf hoher Ebene umfasst das Muster die folgenden fünf Teile:
- Feature Store – Wir verwenden Feature Store, um ein Repository von Features mit Schreibvorgängen mit hohem Durchsatz und sicheren Lesevorgängen mit niedriger Latenz bereitzustellen, wobei Featurewerte verwendet werden, die in mehreren Featuregruppen organisiert sind.
- Batch-Einnahme – Die Stapelaufnahme nimmt gekennzeichnete historische Kreditkartentransaktionen und erstellt die aggregierten Merkmale und Verhältnisse, die zum Trainieren des Betrugserkennungsmodells erforderlich sind. Wir verwenden ein Amazon SageMaker-Verarbeitung Arbeit und die eingebauter Funkenbehälter um aggregierte wöchentliche Zählungen und Durchschnittswerte für Transaktionsbeträge zu berechnen und diese zur Verwendung in Online-Inferenzen in den Feature-Store aufzunehmen.
- Modellschulung und -bereitstellung – Dieser Aspekt unserer Lösung ist unkompliziert. Wir gebrauchen Amazon Sage Maker um ein Modell mit dem zu trainieren eingebauter XGBoost-Algorithmus auf aggregierten Features, die aus historischen Transaktionen erstellt wurden. Das Modell wird auf einem SageMaker-Endpunkt bereitgestellt, auf dem Betrugserkennungsanforderungen für Live-Transaktionen verarbeitet werden.
- Streaming-Aufnahme - Ein Amazon Kinesis-Datenanalyse für Apache Flink-Anwendung unterstützt durch Apache Kafka-Themen in Amazon Managed Streaming für Apache Kafka (MSK) (Amazon MSK) berechnet aggregierte Merkmale aus einem Transaktionsstrom und an AWS Lambda Funktion aktualisiert den Online-Feature-Store. Apache Flink ist ein beliebtes Framework und eine Engine zur Verarbeitung von Datenströmen.
- Streaming-Vorhersagen – Schließlich machen wir Betrugsvorhersagen für einen Strom von Transaktionen, indem wir Lambda verwenden, um aggregierte Funktionen aus dem Online-Feature-Store abzurufen. Wir verwenden die neuesten Funktionsdaten, um Transaktionsquoten zu berechnen, und rufen dann den Betrugserkennungsendpunkt auf.
Voraussetzungen:
Wir bieten eine AWS CloudFormation Vorlage zum Erstellen der erforderlichen Ressourcen für diese Lösung. Die folgende Tabelle listet die für verschiedene Regionen verfügbaren Stacks auf.
In den folgenden Abschnitten untersuchen wir jede Komponente unserer Lösung genauer.
Feature Store
ML-Modelle basieren auf ausgereiften Funktionen, die aus einer Vielzahl von Datenquellen stammen, mit Transformationen, die so einfach wie Berechnungen oder so kompliziert wie eine mehrstufige Pipeline sind, die Stunden an Rechenzeit und komplexer Codierung erfordert. Feature Store ermöglicht die Wiederverwendung dieser Funktionen über Teams und Modelle hinweg, was die Produktivität von Datenwissenschaftlern verbessert, die Markteinführungszeit verkürzt und die Konsistenz der Modelleingabe gewährleistet.
Jedes Feature im Feature Store ist in einer logischen Gruppierung namens a organisiert Feature-Gruppe. Sie entscheiden, welche Feature-Gruppen Sie für Ihre Modelle benötigen. Jeder kann Dutzende, Hunderte oder sogar Tausende von Funktionen haben. Feature-Gruppen werden unabhängig verwaltet und skaliert, stehen jedoch alle für die Suche und Ermittlung in Teams von Datenwissenschaftlern zur Verfügung, die für viele unabhängige ML-Modelle und Anwendungsfälle verantwortlich sind.
ML-Modelle erfordern häufig Funktionen aus mehreren Funktionsgruppen. Ein Schlüsselaspekt einer Feature-Gruppe ist, wie oft ihre Feature-Werte aktualisiert oder materialisiert werden müssen, um nachgeschaltete Schulungen oder Schlussfolgerungen durchzuführen. Sie aktualisieren einige Funktionen stündlich, nachts oder wöchentlich, und eine Teilmenge der Funktionen muss nahezu in Echtzeit in den Feature-Store gestreamt werden. Das Streamen aller Funktionsaktualisierungen würde zu unnötiger Komplexität führen und könnte sogar die Qualität der Datenverteilung verringern, da Sie nicht die Möglichkeit haben, Ausreißer zu entfernen.
In unserem Anwendungsfall erstellen wir eine Feature-Gruppe mit dem Namen cc-agg-batch-fg
für aggregierte Kreditkartenfunktionen, die im Batch aktualisiert und aufgerufen wurden cc-agg-fg
für Streaming-Funktionen.
Das cc-agg-batch-fg
Die Feature-Gruppe wird jede Nacht aktualisiert und bietet aggregierte Features, die über ein einwöchiges Zeitfenster zurückblicken. Die Neuberechnung von 1-Wochen-Aggregationen für Streaming-Transaktionen bietet keine aussagekräftigen Signale und wäre Ressourcenverschwendung.
Umgekehrt ist unser cc-agg-fg
Die Funktionsgruppe muss im Streaming-Verfahren aktualisiert werden, da sie die neuesten Transaktionszahlen und durchschnittlichen Transaktionsbeträge im Rückblick auf ein 10-Minuten-Zeitfenster bietet. Ohne Streaming-Aggregation konnten wir das typische Betrugsangriffsmuster einer schnellen Abfolge von Käufen nicht erkennen.
Indem wir Funktionen isolieren, die jede Nacht neu berechnet werden, können wir den Erfassungsdurchsatz für unsere Streaming-Funktionen verbessern. Durch die Trennung können wir die Einnahme für jede Gruppe unabhängig voneinander optimieren. Denken Sie beim Entwerfen für Ihre Anwendungsfälle daran, dass Modelle, die Funktionen aus einer großen Anzahl von Funktionsgruppen erfordern, möglicherweise mehrere Abrufe parallel aus dem Funktionsspeicher durchführen möchten, um eine übermäßige Latenz zu einem Echtzeitvorhersage-Workflow zu vermeiden.
Die Funktionsgruppen für unseren Anwendungsfall sind in der folgenden Tabelle dargestellt.
cc-agg-fg | cc-agg-batch-fg |
cc_num (Datensatz-ID) | cc_num (Datensatz-ID) |
trans_time | trans_time |
num_trans_last_10m | num_trans_last_1w |
avg_amt_last_10m | avg_amt_last_1w |
Für jede Feature-Gruppe muss ein Feature als Datensatzkennung verwendet werden (für diesen Beitrag die Kreditkartennummer). Die Datensatzkennung fungiert als Primärschlüssel für die Feature-Gruppe und ermöglicht schnelle Suchvorgänge sowie Verknüpfungen zwischen Feature-Gruppen. Außerdem ist eine Ereigniszeitfunktion erforderlich, mit der der Feature-Store den Verlauf der Feature-Werte über die Zeit verfolgen kann. Dies ist wichtig, wenn Sie auf den Status von Features zu einem bestimmten Zeitpunkt zurückblicken.
In jeder Feature-Gruppe verfolgen wir die Anzahl der Transaktionen pro eindeutiger Kreditkarte und deren durchschnittlichen Transaktionsbetrag. Der einzige Unterschied zwischen unseren beiden Gruppen ist das Zeitfenster, das für die Aggregation verwendet wird. Wir verwenden ein 10-Minuten-Fenster für die Streaming-Aggregation und ein 1-Wochen-Fenster für die Batch-Aggregation.
Mit Feature Store haben Sie die Flexibilität, Funktionsgruppen zu erstellen, die nur offline, nur online oder sowohl online als auch offline sind. Ein Online-Shop bietet Schreibvorgänge mit hohem Durchsatz und Abrufe von Merkmalswerten mit geringer Latenz, was ideal für Online-Inferenzen ist. Ein Offline-Shop wird mit bereitgestellt Amazon Simple Storage-Service (Amazon S3) bietet Unternehmen ein hochgradig skalierbares Repository mit einer vollständigen Historie von Feature-Werten, partitioniert nach Feature-Gruppen. Der Offline-Speicher ist ideal für Schulungs- und Batch-Scoring-Anwendungsfälle.
Wenn Sie eine Feature-Gruppe aktivieren, um sowohl Online- als auch Offline-Stores bereitzustellen, synchronisiert SageMaker automatisch Feature-Werte mit einem Offline-Store und hängt kontinuierlich die neuesten Werte an, um Ihnen einen vollständigen Verlauf der Werte über die Zeit zu geben. Ein weiterer Vorteil von Featuregruppen, die sowohl online als auch offline sind, besteht darin, dass sie dazu beitragen, das Problem von Trainings- und Inferenzverzerrungen zu vermeiden. Mit SageMaker können Sie sowohl das Training als auch die Inferenz mit den gleichen transformierten Merkmalswerten füttern und so Konsistenz gewährleisten, um genauere Vorhersagen zu treffen. Der Schwerpunkt in unserem Beitrag liegt auf der Demonstration des Online-Funktionsstreamings, daher haben wir reine Online-Funktionsgruppen implementiert.
Batch-Einnahme
Um unsere Stapelfunktionen zu materialisieren, erstellen wir eine Funktionspipeline, die jede Nacht als SageMaker-Verarbeitungsjob ausgeführt wird. Der Job hat zwei Verantwortlichkeiten: das Erstellen des Datasets zum Trainieren unseres Modells und das Füllen der Batch-Feature-Gruppe mit den aktuellsten Werten für aggregierte 1-Wochen-Features, wie im folgenden Diagramm dargestellt.
Jede im Trainingssatz verwendete historische Transaktion wird mit aggregierten Funktionen für die an der Transaktion beteiligte spezifische Kreditkarte angereichert. Wir blicken auf zwei separate Zeitfenster zurück: 1 Woche zurück und die vorhergehenden 10 Minuten. Die tatsächlichen Merkmale, die zum Trainieren des Modells verwendet werden, umfassen die folgenden Verhältnisse dieser aggregierten Werte:
- amt_ratio1 =
avg_amt_last_10m / avg_amt_last_1w
- amt_ratio2 =
transaction_amount / avg_amt_last_1w
- count_ratio =
num_trans_last_10m / num_trans_last_1w
Zum Beispiel, count_ratio
ist die Transaktionszahl der letzten 10 Minuten dividiert durch die Transaktionszahl der letzten Woche.
Unser ML-Modell kann aus diesen Verhältnissen Muster von normalen Aktivitäten im Vergleich zu betrügerischen Aktivitäten lernen, anstatt sich auf rohe Zählungen und Transaktionsbeträge zu verlassen. Die Ausgabenmuster auf verschiedenen Karten sind sehr unterschiedlich, sodass normalisierte Verhältnisse dem Modell ein besseres Signal liefern als die aggregierten Beträge selbst.
Sie fragen sich vielleicht, warum unser Batch-Job Features mit einem 10-Minuten-Lookback berechnet. Ist das nicht nur für Online-Inferenz relevant? Wir benötigen das 10-Minuten-Fenster für historische Transaktionen, um einen genauen Trainingsdatensatz zu erstellen. Dies ist entscheidend, um die Konsistenz mit dem 10-minütigen Streaming-Fenster zu gewährleisten, das nahezu in Echtzeit verwendet wird, um Online-Inferenz zu unterstützen.
Der resultierende Trainingsdatensatz aus dem Verarbeitungsjob kann direkt als CSV für das Modelltraining gespeichert oder in einer Offline-Feature-Gruppe aufgenommen werden, die für andere Modelle und von anderen Data-Science-Teams verwendet werden kann, um eine Vielzahl anderer zu adressieren Anwendungsfälle. Zum Beispiel können wir eine Feature-Gruppe namens erstellen und füllen cc-transactions-fg
. Unser Schulungsjob kann dann einen bestimmten Schulungsdatensatz abrufen, der auf den Anforderungen für unser bestimmtes Modell basiert, und bestimmte Datumsbereiche und eine Teilmenge der interessierenden Funktionen auswählen. Dieser Ansatz ermöglicht es mehreren Teams, Feature-Gruppen wiederzuverwenden und weniger Feature-Pipelines zu warten, was im Laufe der Zeit zu erheblichen Kosteneinsparungen und Produktivitätsverbesserungen führt. Dieses Beispiel Notebook zeigt das Muster der Verwendung von Feature Store als zentrales Repository, aus dem Data Scientists Trainingsdatensätze extrahieren können.
Neben der Erstellung eines Trainingsdatensatzes verwenden wir die PutRecord
API, um die 1-wöchigen Feature-Aggregationen jede Nacht in den Online-Feature-Store zu stellen. Der folgende Code demonstriert das Einfügen eines Datensatzes in eine Online-Feature-Gruppe mit bestimmten Feature-Werten, einschließlich einer Datensatz-ID und einer Ereigniszeit:
ML-Ingenieure erstellen häufig eine separate Version des Feature-Engineering-Codes für Online-Features basierend auf dem Originalcode, der von Data Scientists für das Modelltraining geschrieben wurde. Dies kann die gewünschte Leistung liefern, ist aber ein zusätzlicher Entwicklungsschritt und führt zu einer größeren Chance für Training und Inferenzverzerrung. In unserem Anwendungsfall zeigen wir, wie die Verwendung von SQL für Aggregationen es einem Data Scientist ermöglichen kann, denselben Code für Batch und Streaming bereitzustellen.
Streaming-Aufnahme
Feature Store ermöglicht das Abrufen von vorberechneten Funktionen in einstelligen Millisekunden und kann auch eine effektive Rolle bei Lösungen spielen, die eine Streaming-Aufnahme erfordern. Unser Anwendungsfall demonstriert beides. Der wöchentliche Lookback wird als vorberechnete Featuregruppe behandelt, die wie zuvor gezeigt jede Nacht materialisiert wird. Sehen wir uns nun an, wie wir Features berechnen, die on-the-fly über ein 10-Minuten-Fenster aggregiert und für spätere Online-Inferenzen in den Feature Store aufgenommen werden.
In unserem Anwendungsfall nehmen wir Live-Kreditkartentransaktionen in ein Quell-MSK-Thema auf und verwenden eine Kinesis Data Analytics for Apache Flink-Anwendung, um aggregierte Funktionen in einem Ziel-MSK-Thema zu erstellen. Die Anwendung wird mit geschrieben Apache FlinkSQL. Flink SQL vereinfacht die Entwicklung von Streaming-Anwendungen mit Standard-SQL. Es ist einfach, Flink zu erlernen, wenn Sie jemals mit einer Datenbank oder einem SQL-ähnlichen System gearbeitet haben, indem Sie ANSI-SQL 2011-konform bleiben. Neben SQL können wir auch Java- und Scala-Anwendungen erstellen Amazon Kinesis-Datenanalyse Verwendung von Open-Source-Bibliotheken basierend auf Apache Flink. Anschließend verwenden wir eine Lambda-Funktion, um das Ziel-MSK-Thema zu lesen und die aggregierten Funktionen zur Inferenz in eine SageMaker-Funktionsgruppe aufzunehmen. Das Erstellen der Apache Flink-Anwendung mit der SQL-API von Flink ist unkompliziert. Wir verwenden Flink SQL, um die Streaming-Daten im Quell-MSK-Thema zu aggregieren und in einem Ziel-MSK-Thema zu speichern.
Um aggregierte Zählungen und durchschnittliche Beträge im Rückblick auf ein 10-Minuten-Fenster zu erstellen, verwenden wir die folgende Flink-SQL-Abfrage für das Eingabethema und leiten die Ergebnisse an das Zielthema weiter:
cc_num | Betrag | datetime | num_trans_last_10m | avg_amt_last_10m |
... 1248 | 50.00 | Nov-01,22: 01: 00 | 1 | 74.99 |
... 9843 | 99.50 | Nov-01,22: 02: 30 | 1 | 99.50 |
... 7403 | 100.00 | Nov-01,22: 03: 48 | 1 | 100.00 |
... 1248 | 200.00 | Nov-01,22: 03: 59 | 2 | 125.00 |
... 0732 | 26.99 | 01. November, 22 Uhr | 1 | 26.99 |
... 1248 | 50.00 | Nov-01,22: 04: 28 | 3 | 100.00 |
... 1248 | 500.00 | Nov-01,22: 05: 05 | 4 | 200.00 |
Beachten Sie in diesem Beispiel, dass in der letzten Zeile in den letzten 10 Minuten ab der mit 1248 endenden Kreditkarte vier Transaktionen und ein entsprechender durchschnittlicher Transaktionsbetrag von 200.00 USD gezählt wurden. Die SQL-Abfrage stimmt mit der Abfrage überein, mit der die Erstellung unseres Trainingsdatensatzes vorangetrieben wurde, und hilft, Training und Inferenzversatz zu vermeiden.
Wenn Transaktionen in die Kinesis Data Analytics for Apache Flink-Aggregations-App gestreamt werden, sendet die App die aggregierten Ergebnisse an unsere Lambda-Funktion, wie im folgenden Diagramm dargestellt. Die Lambda-Funktion übernimmt diese Funktionen und füllt die cc-agg-fg
Feature-Gruppe.
Wir senden die neuesten Funktionswerte von Lambda mithilfe eines einfachen Aufrufs an die PutRecord-API an den Funktionsspeicher. Das Folgende ist das Kernstück des Python-Codes zum Speichern der aggregierten Features:
Wir bereiten den Datensatz als Liste benannter Wertepaare vor, einschließlich der aktuellen Zeit als Ereigniszeit. Die Feature-Store-API stellt sicher, dass dieser neue Datensatz dem Schema folgt, das wir beim Erstellen der Feature-Gruppe identifiziert haben. Wenn für diesen Primärschlüssel bereits ein Datensatz existierte, wird dieser nun im Online-Shop überschrieben.
Streaming-Vorhersagen
Nachdem wir nun Streaming-Ingestion haben, um den Feature-Store mit den neuesten Feature-Werten auf dem neuesten Stand zu halten, schauen wir uns an, wie wir Betrugsvorhersagen treffen.
Wir erstellen eine zweite Lambda-Funktion, die das Quell-MSK-Thema als Auslöser verwendet. Für jedes neue Transaktionsereignis ruft die Lambda-Funktion zunächst die Batch- und Streaming-Funktionen aus dem Feature Store ab. Um Anomalien im Kreditkartenverhalten zu erkennen, sucht unser Modell nach Spitzen bei den letzten Kaufbeträgen oder der Kaufhäufigkeit. Die Lambda-Funktion berechnet einfache Verhältnisse zwischen den 1-Wochen-Aggregationen und den 10-Minuten-Aggregationen. Anschließend wird der Endpunkt des SageMaker-Modells mithilfe dieser Verhältnisse aufgerufen, um die Betrugsvorhersage zu erstellen, wie im folgenden Diagramm dargestellt.
Wir verwenden den folgenden Code, um Feature-Werte bei Bedarf aus dem Feature-Store abzurufen, bevor wir den SageMaker-Modellendpunkt aufrufen:
SageMaker unterstützt auch das Abrufen mehrerer Feature-Datensätze mit a einzelner Anruf, auch wenn sie aus verschiedenen Funktionsgruppen stammen.
Schließlich rufen wir mit dem zusammengesetzten Modelleingangsmerkmalsvektor den Modellendpunkt auf, um vorherzusagen, ob eine bestimmte Kreditkartentransaktion betrügerisch ist. SageMaker unterstützt auch das Abrufen mehrerer Feature-Datensätze mit einem einzigen Aufruf, selbst wenn sie aus unterschiedlichen Feature-Gruppen stammen.
sagemaker_runtime = boto3.client(service_name='runtime.sagemaker')
request_body = ','.join(features)
response = sagemaker_runtime.invoke_endpoint( EndpointName=ENDPOINT_NAME, ContentType='text/csv', Body=request_body)
probability = json.loads(response['Body'].read().decode('utf-8'))
In diesem Beispiel kam das Modell mit einer Wahrscheinlichkeit von 98 % zurück, dass die spezifische Transaktion betrügerisch war, und es war in der Lage, nahezu in Echtzeit aggregierte Eingabefunktionen zu verwenden, die auf den Transaktionen der letzten 10 Minuten mit dieser Kreditkarte basieren.
Testen Sie die End-to-End-Lösung
Um den vollständigen End-to-End-Workflow unserer Lösung zu demonstrieren, senden wir einfach Kreditkartentransaktionen an unser MSK-Quellthema. Unsere automatisierte Kinesis Data Analytics for Apache Flink-Aggregation übernimmt von dort aus und behält eine nahezu Echtzeitansicht der Transaktionszahlen und -beträge im Feature Store bei, mit einem gleitenden 10-Minuten-Lookback-Fenster. Diese Funktionen werden mit den 1-wöchigen aggregierten Funktionen kombiniert, die bereits im Batch in den Feature Store aufgenommen wurden, sodass wir Betrugsvorhersagen für jede Transaktion treffen können.
Wir senden eine einzige Transaktion von drei verschiedenen Kreditkarten. Anschließend simulieren wir einen Betrugsangriff auf eine vierte Kreditkarte, indem wir innerhalb von Sekunden viele aufeinanderfolgende Transaktionen senden. Die Ausgabe unserer Lambda-Funktion ist im folgenden Screenshot dargestellt. Wie erwartet werden die ersten drei einmaligen Transaktionen als prognostiziert NOT FRAUD
. Von den 10 betrügerischen Transaktionen wird die erste als vorhergesagt NOT FRAUD
, und der Rest wird alle korrekt als identifiziert FRAUD
. Beachten Sie, wie die aggregierten Features auf dem neuesten Stand gehalten werden, was dazu beiträgt, genauere Vorhersagen zu treffen.
Zusammenfassung
Wir haben gezeigt, wie Feature Store eine Schlüsselrolle in der Lösungsarchitektur für kritische betriebliche Workflows spielen kann, die Streaming-Aggregation und Inferenz mit geringer Latenz benötigen. Mit einem unternehmenstauglichen Feature Store können Sie sowohl Batch- als auch Streaming-Ingestion verwenden, um Feature-Gruppen zu füttern, und bei Bedarf auf Feature-Werte zugreifen, um Online-Prognosen für einen erheblichen geschäftlichen Nutzen zu erstellen. ML-Funktionen können jetzt in großem Maßstab von vielen Teams von Data Scientists und Tausenden von ML-Modellen gemeinsam genutzt werden, wodurch die Datenkonsistenz, die Modellgenauigkeit und die Produktivität der Data Scientists verbessert werden. Der Feature Store ist jetzt verfügbar und Sie können ihn ausprobieren gesamtes Beispiel. Lass uns wissen was du denkst.
Besonderer Dank gilt allen, die dazu beigetragen haben Vorheriger Blogpost mit ähnlicher Architektur: Paul Hargis, James Leoni und Arunprasath Shankar.
Über die Autoren
Markus Roy ist Principal Machine Learning Architect für AWS und hilft Kunden beim Entwerfen und Erstellen von KI/ML-Lösungen. Marks Arbeit deckt ein breites Spektrum von ML-Anwendungsfällen ab, mit einem Hauptinteresse an Feature Stores, Computer Vision, Deep Learning und der Skalierung von ML im gesamten Unternehmen. Er hat Unternehmen in vielen Branchen geholfen, darunter Versicherungen, Finanzdienstleistungen, Medien und Unterhaltung, Gesundheitswesen, Versorgungsunternehmen und Fertigung. Mark verfügt über sechs AWS-Zertifizierungen, darunter die ML Specialty Certification. Bevor er zu AWS kam, war Mark über 25 Jahre lang Architekt, Entwickler und Technologieführer, davon 19 Jahre im Bereich Finanzdienstleistungen.
Raj Ramasubbu ist ein Senior Analytics Specialist Solutions Architect, der sich auf Big Data und Analysen sowie KI/ML mit Amazon Web Services konzentriert. Er unterstützt Kunden beim Entwerfen und Erstellen hochskalierbarer, leistungsfähiger und sicherer Cloud-basierter Lösungen auf AWS. Raj verfügte über 18 Jahre lang über technisches Fachwissen und Führungsqualitäten in den Bereichen Building Data Engineering, Big Data Analytics, Business Intelligence und Data Science-Lösungen, bevor er zu AWS kam. Er unterstützte Kunden in verschiedenen Branchen wie Gesundheitswesen, medizinische Geräte, Biowissenschaften, Einzelhandel, Vermögensverwaltung, Kfz-Versicherung, Wohn-REIT, Landwirtschaft, Eigentumsversicherung, Lieferkette, Dokumentenmanagement und Immobilien.
Prabhakar Chandrasekaran ist Senior Technical Account Manager bei AWS Enterprise Support. Prabhakar hilft Kunden gerne dabei, hochmoderne KI/ML-Lösungen in der Cloud zu entwickeln. Er arbeitet auch mit Unternehmenskunden zusammen, bietet proaktive Anleitung und operative Unterstützung und hilft ihnen, den Wert ihrer Lösungen bei der Verwendung von AWS zu steigern. Prabhakar besitzt sechs AWS- und sechs weitere professionelle Zertifizierungen. Mit über 20 Jahren Berufserfahrung war Prabhakar Dateningenieur und Programmleiter im Finanzdienstleistungsbereich, bevor er zu AWS kam.
- SEO-gestützte Content- und PR-Distribution. Holen Sie sich noch heute Verstärkung.
- Platoblockkette. Web3-Metaverse-Intelligenz. Wissen verstärkt. Hier zugreifen.
- Die Zukunft prägen mit Adryenn Ashley. Hier zugreifen.
- Quelle: https://aws.amazon.com/blogs/machine-learning/use-streaming-ingestion-with-amazon-sagemaker-feature-store-and-amazon-msk-to-make-ml-backed-decisions-in-near-real-time/
- :hast
- :Ist
- $UP
- 000
- 1
- 10
- 100
- 11
- 20 Jahre
- 2011
- 7
- 8
- a
- Fähig
- Über Uns
- Zugang
- Konto
- Genauigkeit
- genau
- über
- Aktivität
- Handlungen
- Ad
- Zusatz
- Adresse
- Makler
- Anhäufung
- Landwirtschaft
- AI / ML
- Flughafen
- Alle
- bereits
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- Betrag
- Beträge
- Analytik
- und
- Ein anderer
- jedem
- Apache
- auseinander
- Bienen
- App
- Anwendung
- Anwendungen
- Ansatz
- Architektur
- SIND
- AS
- Aussehen
- montiert
- Vermögenswert
- Vermögensverwaltung
- Hilfe
- At
- Attacke
- Anschläge
- Automatisiert
- Im Prinzip so, wie Sie es von Google Maps kennen.
- verfügbar
- durchschnittlich
- AWS
- Zurück
- unterstützt
- basierend
- Grundlage
- BE
- weil
- wird
- Bevor
- Nutzen
- BESTE
- Besser
- zwischen
- Big
- Big Data
- verstopft
- Sperrung
- Blog
- Körper
- gekauft
- bauen
- Building
- erbaut
- Geschäft
- Business Intelligence
- Kaufe
- by
- Berechnen
- berechnet
- Berechnungen
- rufen Sie uns an!
- Call-Center
- namens
- Aufruf
- CAN
- Fähigkeiten
- Auto
- Karte
- Karten
- Häuser
- Fälle
- Center
- Hauptgeschäftsstelle
- sicher
- Zertifizierung
- Zertifizierungen
- Kette
- Herausforderungen
- Chance
- Übernehmen
- Auswählen
- klassifizieren
- Cloud
- Code
- Programmierung
- kombiniert
- Kommen
- Unternehmen
- abschließen
- Komplex
- Komplexität
- konform
- kompliziert
- Komponente
- umfassend
- Berechnen
- Computer
- Computer Vision
- Computing
- konsistent
- enthält
- Kontext
- ständig
- beigetragen
- Kernbereich
- Dazugehörigen
- Kosten
- Einsparmaßnahmen
- könnte
- Paar
- Abdeckung
- Covers
- erstellen
- erstellt
- schafft
- Erstellen
- Schaffung
- Kredit
- Kreditkarte
- Geldkarten
- kritischem
- wichtig
- Strom
- Kunden
- innovativ, auf dem neuesten Stand
- Dunkel
- Dunkle Web
- technische Daten
- Datenanalyse
- Datenwissenschaft
- Datenwissenschaftler
- Datenbase
- Datensätze
- Datum
- Tag
- entscheidet
- Entscheidungen
- tief
- tiefe Lernen
- Übergeben
- liefert
- Demand
- zeigen
- zeigt
- Einsatz
- beschreiben
- Design
- Entwerfen
- erwünscht
- Reiseziel
- Detail
- Details
- Entdeckung
- entwickeln
- Entwickler:in / Unternehmen
- Entwicklung
- Gerät
- Geräte
- Unterschied
- anders
- Direkt
- Entdeckung
- Ausschüttungen
- geteilt
- Dokument
- Dokumenten-Management
- Dollar
- Nicht
- Dutzende
- Antrieb
- Fahrer
- im
- dynamisch
- jeder
- Früher
- leicht
- Effektiv
- ermöglichen
- ermöglicht
- ermöglichen
- End-to-End
- Endpunkt
- Motor
- Ingenieur
- Entwicklung
- Ingenieure
- enorm
- genug
- angereichert
- sorgt
- Gewährleistung
- Unternehmen
- Unternehmen
- Unterhaltung
- Sommer
- Sogar
- Event
- ÜBERHAUPT
- jedermann
- Beispiel
- erwartet
- ERFAHRUNGEN
- Erfahrungen
- Expertise
- ERKUNDEN
- extra
- Extrakt
- Fälschung
- Fashion
- FAST
- Merkmal
- Eigenschaften
- Finale
- Revolution
- Finanzdienstleistungen
- Firmen
- Vorname
- Flexibilität
- Setzen Sie mit Achtsamkeit
- konzentriert
- Folgende
- folgt
- Aussichten für
- unten stehende Formular
- vier
- Vierte
- FRAME
- Unser Ansatz
- Betrug
- Betrugserkennung
- Betrügern
- betrügerisch
- betrügerische Aktivitäten
- Frequenz
- für
- voller
- voll
- Funktion
- Außerdem
- erzeugen
- bekommen
- ABSICHT
- gegeben
- Unterstützung
- gut
- groß
- sehr
- Gruppe an
- Gruppen
- Wächst
- die Vermittlung von Kompetenzen,
- Hacks
- Griffe
- passieren
- Haben
- mit
- he
- Gesundheitswesen
- Hilfe
- dazu beigetragen,
- Unternehmen
- hilft
- GUTE
- hoch
- historisch
- Geschichte
- hält
- STUNDEN
- Ultraschall
- HTML
- http
- HTTPS
- hunderte
- ID
- ideal
- identifiziert
- Kennzeichnung
- identifizieren
- umgesetzt
- wichtig
- zu unterstützen,
- Verbesserungen
- Verbesserung
- in
- das
- Einschließlich
- Eingehende
- zunehmend
- unabhängig
- unabhängig
- Krankengymnastik
- Branchen
- Energiegewinnung
- Information
- Infrastruktur
- Varianten des Eingangssignals:
- beantragen müssen
- Versicherung
- Intelligenz
- absichtlich
- Interesse
- Stellt vor
- ruft auf
- beteiligt
- IT
- SEINE
- Javac
- Job
- Beitritt
- Joins
- jpg
- JSON
- Behalten
- Aufbewahrung
- Wesentliche
- Art
- Wissen
- bekannt
- Land
- grosse
- Nachname
- Latency
- neueste
- führen
- Führer
- Leadership
- führenden
- Undichtigkeiten
- LERNEN
- lernen
- Lasst uns
- Vermietung
- Niveau
- Bibliotheken
- Bibliothek
- Lebensdauer
- Life Science
- Gefällt mir
- Limitiert
- Liste
- Listen
- leben
- logisch
- aussehen
- suchen
- SIEHT AUS
- Maschine
- Maschinelles Lernen
- halten
- Aufrechterhaltung
- um
- MACHT
- Making
- verwaltet
- Management
- Manager
- Herstellung
- viele
- Kennzeichen
- Marks
- Markt
- Spiel
- Kann..
- sinnvoll
- Medien
- sowie medizinische
- Kaufmann
- Million
- Millionen
- Geist / Bewusstsein
- Minute
- Minuten
- ML
- Modell
- für
- mehr
- vor allem warme
- mehrere
- Namens
- Need
- Bedürfnisse
- Neu
- weiter
- normal
- November
- Anzahl
- Zahlen
- of
- bieten
- Angebote
- Offline-Bereich.
- on
- EINEM
- laufend
- Online
- Open-Source-
- Betriebs-
- Optimieren
- Auftrag
- Organisationen
- Organisiert
- Original
- Andere
- UNSERE
- Möglichkeiten für das Ausgangssignal:
- übrig
- Gesamt-
- besitzen
- Paare
- Parallel
- Teil
- passt
- Schnittmuster
- Muster
- Alexander
- Zahlung
- Ausführen
- Leistung
- Zeit
- wählen
- Stück
- Stücke
- Rohr
- Pipeline
- Ort
- Platzierung
- Plato
- Datenintelligenz von Plato
- PlatoData
- Play
- Points
- Beliebt
- möglich
- Post
- vorhersagen
- vorhergesagt
- Prognose
- Prognosen
- Danach
- bereit
- früher
- Preis
- gebühr
- primär
- Principal
- Vor
- Proaktives Handeln
- Aufgabenstellung:
- Verarbeitung
- produziert
- Produkt
- PRODUKTIVITÄT
- Produkte
- Professionell
- Profiling
- Programm
- projektiert
- Eigentums-
- die
- vorausgesetzt
- bietet
- Bereitstellung
- öffentlich
- Kauf
- Einkäufe
- setzen
- Putting
- Python
- Qualität
- schnell
- Angebot
- schnell
- lieber
- Roh
- Lesen Sie mehr
- echt
- Immobilien
- realen Welt
- Echtzeit
- Realität
- Received
- Empfang
- kürzlich
- empfehlen
- Rekord
- Aufzeichnungen
- Regionen
- bezogene
- relevant
- verbleibenden
- entfernen
- Quelle
- Zugriffe
- erfordern
- falls angefordert
- Wohn
- Downloads
- Reagieren
- Antwort
- Verantwortlichkeiten
- für ihren Verlust verantwortlich.
- REST
- Folge
- was zu
- Die Ergebnisse
- Einzelhandel
- Wiederverwendung
- Biken
- robust
- Rollen
- REIHE
- sagemaker
- Salz
- gleich
- Ersparnisse
- skalierbaren
- Skalieren
- Waage
- Skalierung
- Szenario
- Wissenschaft
- Wissenschaftler
- Wissenschaftler
- Wertung
- Suche
- Zweite
- Sekunden
- Abschnitte
- Verbindung
- sicher
- Auswahl
- Sendung
- Senior
- empfindlich
- getrennte
- Reihenfolge
- Lösungen
- Sitzung
- kompensieren
- von Locals geführtes
- ,,teilen"
- Short
- erklären
- gezeigt
- Konzerte
- Signal
- Signale
- signifikant
- bedeutend
- ähnlich
- Einfacher
- einfach
- Single
- SIX
- schief
- gleitend
- So
- Lösung
- Lösungen
- einige
- etwas
- Quelle
- Quellen
- Raumfahrt
- Spark
- Spezialist
- Spezialprodukte
- spezifisch
- Geschwindigkeiten
- verbringen
- Ausgabe
- verbrachte
- Spikes
- Spot
- Verbreitung
- Stacks
- Standard
- Beginnen Sie
- Bundesstaat
- Schritt
- gestohlen
- Lagerung
- speichern
- Läden
- Speicherung
- einfach
- Strom
- gestreamt
- Streaming
- Ströme
- so
- liefern
- Supply Chain
- Support
- Unterstützt
- misstrauisch
- System
- Tabelle
- nimmt
- Teams
- Technische
- Technologie
- Vorlage
- Vielen Dank
- zur Verbesserung der Gesundheitsgerechtigkeit
- Das
- Die Quelle
- Der Staat
- ihr
- Sie
- sich
- Diese
- Tausende
- nach drei
- Durch
- Durchsatz
- Zeit
- mal
- Titel
- zu
- Thema
- Themen
- verfolgen sind
- Training
- Ausbildung
- Transaktion
- Transaktionen
- Transformationen
- verwandelt
- auslösen
- typisch
- typisch
- einzigartiges
- auf dem neusten Stand
- aktualisiert
- Updates
- us
- -
- Anwendungsfall
- benutzt
- Dienstprogramme
- Wert
- Werte
- Vielfalt
- verschiedene
- Geschwindigkeit
- Anbieter
- Version
- Vertikalen
- Anzeigen
- Seh-
- vs
- Abfall / Verschnitt
- Netz
- Web-Services
- Woche
- wöchentlich
- GUT
- Was
- welche
- WHO
- breit
- Große Auswahl
- werden wir
- Fenster
- mit
- ohne
- fragen
- Arbeiten
- gearbeitet
- Workflows
- Werk
- würde
- geschrieben
- XGBoost
- Jahr
- Du
- Ihr
- sich selbst
- Zephyrnet