Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence einen Klassifikator für Unternehmensbonitätsratings. Vertikale Suche. Ai.

Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart einen Klassifikator für die Kreditwürdigkeit von Unternehmen

Heute veröffentlichen wir eine neue Lösung für maschinelles Lernen (ML) in Finanzdiagrammen Amazon SageMaker-JumpStart. JumpStart hilft Ihnen beim schnellen Einstieg in ML und bietet eine Reihe von Lösungen für die häufigsten Anwendungsfälle, die mit nur wenigen Klicks trainiert und bereitgestellt werden können.

Die neue JumpStart-Lösung (Graph-Based Credit Scoring) zeigt, wie man ein Unternehmensnetzwerk aus SEC-Einreichungen (Langform-Textdaten) aufbaut, diese mit Finanzkennzahlen (Tabellendaten) kombiniert und Graph Neural Networks (GNNs) zum Aufbau von Krediten verwendet Bewertungsvorhersagemodelle. In diesem Beitrag erklären wir, wie Sie diese vollständig anpassbare Lösung für die Kreditwürdigkeitsprüfung nutzen können, um Ihre Reise mit Graph ML zu beschleunigen. Graph ML entwickelt sich zu einem fruchtbaren Bereich für Finanz-ML, da es die Verwendung von Netzwerkdaten in Verbindung mit herkömmlichen tabellarischen Datensätzen ermöglicht. Weitere Informationen finden Sie unter Amazon bei WSDM: Die Zukunft graphischer neuronaler Netze.

Lösungsüberblick

Sie können die Bonitätsbewertung verbessern, indem Sie Daten zu Geschäftsverknüpfungen nutzen, für die Sie in dieser Lösung ein Diagramm erstellen können, das als CorpNet (kurz für Unternehmensnetzwerk) bezeichnet wird. Anschließend können Sie die ML-Klassifizierung des Diagramms mithilfe von GNNs auf dieses Diagramm und einen tabellarischen Funktionssatz für die Knoten anwenden, um zu sehen, ob Sie ein besseres ML-Modell erstellen können, indem Sie die Informationen in Netzwerkbeziehungen weiter nutzen. Daher bietet diese Lösung eine Vorlage für Geschäftsmodelle, die Netzwerkdaten nutzen, z. B. die Verwendung von Lieferkettenbeziehungsdiagrammen, Diagrammen für soziale Netzwerke und mehr.

Die Lösung entwickelt mehrere neue Artefakte durch den Aufbau eines Unternehmensnetzwerks und die Generierung synthetischer Finanzdaten und kombiniert beide Datenformen, um mithilfe von Graph ML Modelle zu erstellen.

Die Lösung zeigt, wie man mithilfe des MD&A-Abschnitts aus SEC 10-K/Q-Einreichungen ein Netzwerk verbundener Unternehmen aufbaut. Unternehmen mit ähnlichen zukunftsgerichteten Aussagen werden wahrscheinlich wegen Kreditereignissen in Verbindung gebracht. Diese Zusammenhänge werden in einem Diagramm dargestellt. Für Diagrammknotenfunktionen verwendet die Lösung die Variablen im Altman-Z-Score-Modell und die Branchenkategorie jedes Unternehmens. Diese werden in einem synthetischen Datensatz bereitgestellt, der zu Demonstrationszwecken zur Verfügung gestellt wird. Die Diagrammdaten und Tabellendaten werden verwendet, um mithilfe von GNNs einen Bewertungsklassifikator anzupassen. Zur Veranschaulichung vergleichen wir die Leistung von Modellen mit und ohne Diagramminformationen.

Nutzen Sie die diagrammbasierte Kreditbewertungslösung

Informationen zum Einstieg in die Verwendung von JumpStart finden Sie unter Erste Schritte mit Amazon SageMaker. Die JumpStart-Karte für die Graph-Based Credit Scoring-Lösung ist über erhältlich Amazon SageMaker-Studio.

Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence einen Klassifikator für Unternehmensbonitätsratings. Vertikale Suche. Ai.

  1. Wählen Sie die Modellkarte aus und wählen Sie dann Einführung die Lösung einzuleiten.
    Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence einen Klassifikator für Unternehmensbonitätsratings. Vertikale Suche. Ai.

Die Lösung generiert ein Modell für die Inferenz und einen Endpunkt zur Verwendung mit einem Notebook.

  1. Warten Sie, bis sie bereit sind und der Status als angezeigt wird Complete.
  2. Auswählen Notizbuch öffnen , um das erste Notebook zu öffnen, das für Schulungen und Endpunktbereitstellung vorgesehen ist.
    Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence einen Klassifikator für Unternehmensbonitätsratings. Vertikale Suche. Ai.

Sie können dieses Notizbuch durcharbeiten, um zu lernen, wie Sie diese Lösung verwenden, und sie dann für andere Anwendungen auf Ihren eigenen Daten modifizieren. Die Lösung enthält synthetische Daten und verwendet eine Teilmenge davon, um die Schritte zu veranschaulichen, die erforderlich sind, um das Modell zu trainieren, es auf einem Endpunkt bereitzustellen und dann den Endpunkt zur Inferenz aufzurufen. Das Notebook enthält auch Code zum Bereitstellen eines eigenen Endpunkts.

  1. Um das zweite Notizbuch (das für Rückschlüsse verwendet wird) zu öffnen, wählen Sie Verwenden Sie Endpunkt in Notebook neben dem Endpunktartefakt.

In diesem Notebook können Sie sehen, wie Sie die Daten vorbereiten, um den Beispielendpunkt aufzurufen, um Rückschlüsse auf einen Stapel von Beispielen zu ziehen.
Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence einen Klassifikator für Unternehmensbonitätsratings. Vertikale Suche. Ai.

Der Endpunkt gibt vorhergesagte Bewertungen zurück, die zur Bewertung der Modellleistung verwendet werden, wie im folgenden Screenshot des letzten Codeblocks des Inferenznotizbuchs gezeigt.
Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence einen Klassifikator für Unternehmensbonitätsratings. Vertikale Suche. Ai.

Sie können diese Lösung als Vorlage für ein diagrammgestütztes Bonitätsbewertungsmodell verwenden. Sie sind nicht auf den Funktionsumfang in diesem Beispiel beschränkt – Sie können sowohl die Diagrammdaten als auch die Tabellendaten für Ihren eigenen Anwendungsfall ändern. Der Umfang der erforderlichen Codeänderungen ist minimal. Wir empfehlen, unser Vorlagenbeispiel durchzuarbeiten, um die Struktur der Lösung zu verstehen, und sie dann nach Bedarf zu ändern.

Diese Lösung dient nur zu Demonstrationszwecken. Es handelt sich nicht um eine Finanzberatung und sollte nicht als Finanz- oder Anlageberatung angesehen werden. Die zugehörigen Notebooks, einschließlich des trainierten Modells, verwenden synthetische Daten und sind nicht für den Produktionsgebrauch vorgesehen. Obwohl Text aus SEC-Einreichungen verwendet wird, werden die Finanzdaten synthetisch und zufällig generiert und haben keinen Bezug zu den tatsächlichen Finanzdaten eines Unternehmens. Daher haben die synthetisch generierten Bewertungen auch keinen Bezug zur tatsächlichen Bewertung eines realen Unternehmens.

In der Lösung verwendete Daten

Der Datensatz enthält synthetische Tabellendaten wie verschiedene Abrechnungskennzahlen (numerisch) und Branchencodes (kategorisch). Der Datensatz hat 𝑁=3286 Zeilen. Bewertungslabels werden ebenfalls hinzugefügt. Dies sind die Knotenfunktionen, die mit Graph ML verwendet werden sollen.

Der Datensatz enthält auch ein Unternehmensdiagramm, das ungerichtet und ungewichtet ist. Mit dieser Lösung können Sie die Struktur des Diagramms anpassen, indem Sie die Art und Weise variieren, in der Links eingefügt werden. Jedes Unternehmen im tabellarischen Datensatz wird durch einen Knoten im Unternehmensdiagramm dargestellt. Die Funktion construct_network_data() Hilft bei der Erstellung des Diagramms, das Listen von Quellknoten und Zielknoten enthält.

Rating-Labels werden zur Klassifizierung mithilfe von GNNs verwendet, die mehrere Kategorien für alle Ratings oder binär sein können und in Investment Grade (AAA, AA, A, BBB) und Non-Investment Grade (BB, B, CCC, CC, C) unterteilt sind. D). D steht hier für defaulted.

Der vollständige Code zum Einlesen der Daten und Ausführen der Lösung ist im Lösungsnotizbuch enthalten. Der folgende Screenshot zeigt die Struktur der synthetischen Tabellendaten.

Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence einen Klassifikator für Unternehmensbonitätsratings. Vertikale Suche. Ai.

Die Diagramminformationen werden an die übergeben Deep-Graph-Bibliothek und mit den tabellarischen Daten kombiniert, um Diagramm ML zu erstellen. Wenn Sie Ihr eigenes Diagramm mitbringen, stellen Sie es einfach als Satz von Quellknoten und Zielknoten bereit.

Modelltraining

Zum Vergleich trainieren wir zunächst ein Modell nur anhand tabellarischer Daten AutoGluon, was den traditionellen Ansatz zur Bonitätsbewertung von Unternehmen nachahmt. Anschließend fügen wir die Diagrammdaten hinzu und verwenden GNNs für das Training. Ausführliche Informationen finden Sie im Notizbuch, und in diesem Beitrag wird ein kurzer Überblick gegeben. Das Notizbuch bietet außerdem einen schnellen Überblick über Graph ML mit ausgewählten Referenzen.

Das Training des GNN wird wie folgt durchgeführt. Wir verwenden eine Adaption des GraphSAGE-Modell implementiert in der Deep Graph Library.

  1. Diagrammdaten einlesen von Amazon Simple Storage-Service (Amazon S3) und erstellen Sie die Quell- und Zielknotenlisten für CorpNet.
  2. Lesen Sie die Feature-Sets des Graphknotens ein (Trainieren und Testen). Normalisieren Sie die Daten nach Bedarf.
  3. Legen Sie einstellbare Hyperparameter fest. Rufen Sie den spezialisierten Graph-ML-Container auf, der PyTorch ausführt, um das GNN ohne Hyperparameteroptimierung (HPO) anzupassen.
  4. Wiederholen Sie Diagramm ML mit HPO.

Um die Implementierung einfach und stabil zu gestalten, führen wir das Modelltraining in einem Container mit dem folgenden Code aus (der Setup-Code vor diesem Trainingscode befindet sich im Lösungsnotizbuch):

from sagemaker.pytorch import PyTorch
from time import strftime, gmtime training_job_name = sagemaker_config["SolutionPrefix"] + "-gcn-training"
print( f"You can go to SageMaker -> Training -> Hyperparameter tuning jobs -> a job name started with {training_job_name} to monitor training job status and details."
) estimator = PyTorch( entry_point='train_dgl_pytorch_entry_point.py', source_dir='graph_convolutional_network', role=role, instance_count=1, instance_type='ml.g4dn.xlarge', framework_version="1.9.0", py_version='py38', hyperparameters=hyperparameters, output_path=output_location, code_location=output_location, sagemaker_session=sess, base_job_name=training_job_name,
) estimator.fit({'train': input_location})

Der aktuelle Trainingsprozess wird in einer transduktiven Umgebung durchgeführt, wobei die Merkmale des Testdatensatzes (ohne die Zielspalte) zum Erstellen des Diagramms verwendet werden und daher die Testknoten in den Trainingsprozess einbezogen werden. Am Ende des Trainings werden die Vorhersagen für den Testdatensatz generiert und gespeichert output_location im S3-Eimer.

Obwohl das Training transduktiv ist, werden die Beschriftungen des Testdatensatzes nicht für das Training verwendet. Unsere Übung zielt darauf ab, diese Beschriftungen mithilfe von Knoteneinbettungen für die Knoten des Testdatensatzes vorherzusagen. Ein wichtiges Merkmal von GraphSAGE besteht darin, dass induktives Lernen auf neuen Beobachtungen, die nicht Teil des Diagramms sind, ebenfalls möglich ist, in dieser Lösung jedoch nicht genutzt wird.

Hyperparameteroptimierung

Diese Lösung wird durch die Durchführung von HPO auf dem GNN weiter erweitert. Dies geschieht innerhalb von SageMaker. Siehe den folgenden Code:

from sagemaker.tuner import ( IntegerParameter, CategoricalParameter, ContinuousParameter, HyperparameterTuner,
) # Static hyperparameters we do not tune
hyperparameters = { "n-layers": 2, "aggregator-type": "pool", "target-column": target_column
}
# Dynamic hyperparameters to tune and their searching ranges. # For demonstration purpose, we skip the architecture search by skipping # tuning the hyperparameters such as 'skip_rnn_num_layers', 'rnn_num_layers', etc.
hyperparameter_ranges = { "n-hidden": CategoricalParameter([32, 64, 128, 256, 512, 1024]), 'dropout': ContinuousParameter(0.0, 0.6), 'weight-decay': ContinuousParameter(1e-5, 1e-2), 'n-epochs': IntegerParameter(70, 120), #80, 160 'lr': ContinuousParameter(0.002, 0.02),
}

Anschließend legen wir das Trainingsziel fest, um in diesem Fall den F1-Score zu maximieren:

objective_metric_name = "Validation F1"
metric_definitions = [{"Name": "Validation F1", "Regex": "Validation F1 (\S+)"}]
objective_type = "Maximize"

Richten Sie die ausgewählte Umgebung und die Schulungsressourcen auf SageMaker ein:

estimator_tuning = PyTorch( entry_point='train_dgl_pytorch_entry_point.py', source_dir='graph_convolutional_network', role=role, instance_count=1, instance_type='ml.g4dn.xlarge', framework_version="1.9.0", py_version='py38', hyperparameters=hyperparameters, output_path=output_location, code_location=output_location, sagemaker_session=sess, base_job_name=training_job_name,
)

Führen Sie abschließend den Trainingsjob mit Hyperparameteroptimierung aus:

import time tuning_job_name = sagemaker_config["SolutionPrefix"] + "-gcn-hpo"
print( f"You can go to SageMaker -> Training -> Hyperparameter tuning jobs -> a job name started with {tuning_job_name} to monitor HPO tuning status and details.n" f"Note. You will be unable to successfully run the following cells until the tuning job completes. This step may take around 2 hours."
) tuner = HyperparameterTuner( estimator_tuning, # using the estimator defined in previous section objective_metric_name, hyperparameter_ranges, metric_definitions, max_jobs=30, max_parallel_jobs=10, objective_type=objective_type, base_tuning_job_name = tuning_job_name,
) start_time = time.time() tuner.fit({'train': input_location}) hpo_training_job_time_duration = time.time() - start_time

Die Ergebnisse

Die Einbeziehung von Netzwerkdaten und Hyperparameteroptimierung führt zu verbesserten Ergebnissen. Die Leistungsmetriken in der folgenden Tabelle veranschaulichen den Vorteil der Hinzufügung von CorpNet zu standardmäßigen tabellarischen Datensätzen, die für die Kreditbewertung verwendet werden.

Die Ergebnisse für AutoGluon verwenden nicht das Diagramm, sondern nur die Tabellendaten. Wenn wir die Diagrammdaten hinzufügen und HPO verwenden, erzielen wir einen erheblichen Leistungsgewinn.

F1-Punktzahl ROC-AUC Genauigkeit MCC Ausgewogene Genauigkeit Präzision Erinnern
AutoGluon 0.72 0.74323 0.68037 0.35233 0.67323 0.68528 0.75843
GCN ohne HPO 0.64 0.84498 0.69406 0.45619 0.71154 0.88177 0.50281
GCN mit HPO 0.81 0.87116 0.78082 0.563 0.77081 0.75119 0.89045

(Hinweis: MCC ist der Matthews-Korrelationskoeffizient; https://en.wikipedia.org/wiki/Phi_coefficient.)

Aufräumen

Nachdem Sie dieses Notizbuch nicht mehr verwendet haben, löschen Sie die Modellartefakte und andere Ressourcen, um weitere Kosten zu vermeiden. Sie müssen Ressourcen, die Sie möglicherweise während der Ausführung des Notebooks erstellt haben, manuell löschen, z. B. S3-Buckets für Modellartefakte, Trainingsdatensätze, Verarbeitungsartefakte usw Amazon CloudWatch Protokollgruppen.

Zusammenfassung

In diesem Beitrag haben wir in JumpStart eine diagrammbasierte Kreditbewertungslösung vorgestellt, die Ihnen dabei hilft, Ihre Reise zu ML mit Diagrammen zu beschleunigen. Das Notebook bietet eine Pipeline, mit der Sie Diagramme ändern und mit vorhandenen Tabellenmodellen nutzen können, um eine bessere Leistung zu erzielen.

Um loszulegen, finden Sie die diagrammbasierte Kreditbewertungslösung in JumpStart unter SageMaker-Studio.


Über die Autoren

Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence einen Klassifikator für Unternehmensbonitätsratings. Vertikale Suche. Ai.Sanjiv Das ist Amazon Scholar und Terry Professor für Finanzen und Datenwissenschaft an der Santa Clara University. Er verfügt über Postgraduiertenabschlüsse in Finanzen (M.Phil und Ph.D. von der New York University) und Informatik (MS von UC Berkeley) sowie einen MBA vom Indian Institute of Management, Ahmedabad. Vor seiner Tätigkeit als Akademiker war er als Vizepräsident der Citibank im Derivategeschäft im asiatisch-pazifischen Raum tätig. Er beschäftigt sich mit multimodalem maschinellen Lernen im Bereich Finanzanwendungen.

Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence einen Klassifikator für Unternehmensbonitätsratings. Vertikale Suche. Ai.Xin Huang ist Angewandter Wissenschaftler für Amazon SageMaker-JumpStart machen Integrierte Amazon SageMaker-Algorithmen. Sein Schwerpunkt liegt auf der Entwicklung skalierbarer Algorithmen für maschinelles Lernen. Seine Forschungsinteressen liegen in den Bereichen Verarbeitung natürlicher Sprache, Deep Learning auf Tabellendaten und robuste Analyse nichtparametrischer Raum-Zeit-Clusterbildung.

Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence einen Klassifikator für Unternehmensbonitätsratings. Vertikale Suche. Ai.Soji Adeshina ist angewandter Wissenschaftler bei AWS, wo er auf graphischen neuronalen Netzwerken basierende Modelle für maschinelles Lernen bei Graphenaufgaben mit Anwendungen in den Bereichen Betrug und Missbrauch, Wissensgraphen, Empfehlungssystemen und Biowissenschaften entwickelt. In seiner Freizeit liest und kocht er gerne.

Erstellen Sie mithilfe von Graph Machine Learning in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence einen Klassifikator für Unternehmensbonitätsratings. Vertikale Suche. Ai.Patrick Yang ist Softwareentwicklungsingenieur bei Amazon SageMaker. Sein Schwerpunkt liegt auf der Entwicklung von Tools und Produkten für maschinelles Lernen für Kunden.

Zeitstempel:

Mehr von AWS Maschinelles Lernen