Crea un classificatore di rating del credito aziendale utilizzando l'apprendimento automatico dei grafici in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Crea un classificatore di rating del credito aziendale utilizzando il machine learning grafico in Amazon SageMaker JumpStart

Oggi stiamo rilasciando una nuova soluzione per l'apprendimento automatico dei grafici finanziari (ML) in JumpStart di Amazon SageMaker. JumpStart ti aiuta a iniziare rapidamente con ML e fornisce una serie di soluzioni per i casi d'uso più comuni che possono essere addestrati e implementati con pochi clic.

La nuova soluzione JumpStart (Graph-Based Credit Scoring) mostra come costruire una rete aziendale da archivi SEC (dati di testo in formato lungo), combinarli con rapporti finanziari (dati tabulari) e utilizzare reti neurali a grafo (GNN) per creare credito modelli di previsione del rating. In questo post, spieghiamo come puoi utilizzare questa soluzione completamente personalizzabile per il punteggio di credito, in modo da poter accelerare il tuo percorso ML grafico. Graph ML sta diventando un'area fruttuosa per il ML finanziario perché consente l'uso dei dati di rete insieme ai tradizionali set di dati tabulari. Per ulteriori informazioni, vedere Amazon at WSDM: il futuro delle reti neurali a grafo.

Panoramica della soluzione

Puoi migliorare il punteggio di credito sfruttando i dati sui collegamenti aziendali, per i quali puoi costruire un grafico, indicato come CorpNet (abbreviazione di rete aziendale) in questa soluzione. È quindi possibile applicare la classificazione ML del grafico utilizzando GNN su questo grafico e un set di funzionalità tabulari per i nodi, per vedere se è possibile creare un modello ML migliore sfruttando ulteriormente le informazioni nelle relazioni di rete. Pertanto, questa soluzione offre un modello per modelli di business che sfruttano i dati di rete, ad esempio utilizzando grafici delle relazioni della catena di approvvigionamento, grafici dei social network e altro ancora.

La soluzione sviluppa numerosi nuovi artefatti costruendo una rete aziendale e generando dati finanziari sintetici e combina entrambe le forme di dati per creare modelli utilizzando il grafico ML.

La soluzione mostra come costruire una rete di aziende connesse utilizzando la sezione MD&A dai documenti SEC 10-K/Q. È probabile che società con dichiarazioni previsionali simili siano collegate a eventi di credito. Queste connessioni sono rappresentate in un grafico. Per le funzionalità dei nodi del grafico, la soluzione utilizza le variabili nel modello Z-score di Altman e la categoria di settore di ciascuna impresa. Questi sono forniti in un set di dati sintetico messo a disposizione a scopo dimostrativo. I dati del grafico e delle tabelle vengono utilizzati per adattare un classificatore di rating utilizzando GNN. A scopo illustrativo, confrontiamo le prestazioni dei modelli con e senza le informazioni del grafico.

Utilizzare la soluzione di punteggio del credito basato su grafici

Per iniziare a utilizzare JumpStart, vedere Iniziare con Amazon SageMaker. La carta JumpStart per la soluzione di punteggio di credito basato su grafici è disponibile tramite Amazon Sage Maker Studio.

Crea un classificatore di rating del credito aziendale utilizzando l'apprendimento automatico dei grafici in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

  1. Scegli la scheda modello, quindi scegli Lancio per avviare la soluzione.
    Crea un classificatore di rating del credito aziendale utilizzando l'apprendimento automatico dei grafici in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

La soluzione genera un modello per l'inferenza e un endpoint da utilizzare con un notebook.

  1. Attendi finché non sono pronti e lo stato mostra come Complete.
  2. Scegli Apri taccuino per aprire il primo notebook, che è per la formazione e la distribuzione degli endpoint.
    Crea un classificatore di rating del credito aziendale utilizzando l'apprendimento automatico dei grafici in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Puoi utilizzare questo notebook per imparare a utilizzare questa soluzione e quindi modificarla per altre applicazioni sui tuoi dati. La soluzione viene fornita con dati sintetici e ne usa un sottoinsieme per esemplificare i passaggi necessari per addestrare il modello, distribuirlo a un endpoint e quindi richiamare l'endpoint per l'inferenza. Il notebook contiene anche il codice per distribuire un endpoint personale.

  1. Per aprire il secondo taccuino (usato per l'inferenza), scegli Usa l'endpoint nel blocco appunti accanto all'artefatto dell'endpoint.

In questo blocco appunti, puoi vedere come preparare i dati per richiamare l'endpoint di esempio per eseguire l'inferenza su un batch di esempi.
Crea un classificatore di rating del credito aziendale utilizzando l'apprendimento automatico dei grafici in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

L'endpoint restituisce le valutazioni previste, che vengono utilizzate per valutare le prestazioni del modello, come mostrato nella schermata seguente dell'ultimo blocco di codice del notebook di inferenza.
Crea un classificatore di rating del credito aziendale utilizzando l'apprendimento automatico dei grafici in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

È possibile utilizzare questa soluzione come modello per un modello di rating del credito migliorato con grafici. Non sei limitato al set di funzionalità in questo esempio: puoi modificare sia i dati del grafico che i dati tabulari per il tuo caso d'uso. L'entità delle modifiche al codice richieste è minima. Ti consigliamo di utilizzare il nostro esempio di modello per comprendere la struttura della soluzione e quindi modificarla secondo necessità.

Questa soluzione è solo a scopo dimostrativo. Non è una consulenza finanziaria e non dovrebbe essere considerata come una consulenza finanziaria o di investimento. I notebook associati, incluso il modello addestrato, utilizzano dati sintetici e non sono destinati all'uso in produzione. Sebbene venga utilizzato il testo dei documenti SEC, i dati finanziari vengono generati sinteticamente e in modo casuale e non hanno alcuna relazione con i dati finanziari reali di alcuna società. Pertanto, anche le valutazioni generate sinteticamente non hanno alcuna relazione con la valutazione reale di una società reale.

Dati utilizzati nella soluzione

Il set di dati contiene dati tabulari sintetici come vari rapporti contabili (numerici) e codici di settore (categoriali). Il set di dati ha 𝑁=3286 righe. Vengono aggiunte anche le etichette di valutazione. Queste sono le caratteristiche del nodo da utilizzare con il grafico ML.

Il set di dati contiene anche un grafico aziendale, non orientato e non ponderato. Questa soluzione consente di regolare la struttura del grafico variando il modo in cui vengono inseriti i collegamenti. Ogni azienda nel dataset tabellare è rappresentata da un nodo nel grafico aziendale. La funzione construct_network_data() aiuta a costruire il grafico, che comprende elenchi di nodi di origine e nodi di destinazione.

Le etichette di rating vengono utilizzate per la classificazione utilizzando GNN, che possono essere multicategoria per tutti i rating o binari, divisi tra investment grade (AAA, AA, A, BBB) e non investment grade (BB, B, CCC, CC, C, D). D qui sta per default.

Il codice completo per leggere i dati ed eseguire la soluzione è fornito nel notebook della soluzione. La schermata seguente mostra la struttura dei dati tabulari sintetici.

Crea un classificatore di rating del credito aziendale utilizzando l'apprendimento automatico dei grafici in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Le informazioni sul grafico vengono passate a Libreria Deep Graph e combinato con i dati tabulari per intraprendere il grafico ML. Se porti il ​​tuo grafico, forniscilo semplicemente come un insieme di nodi di origine e nodi di destinazione.

Allenamento modello

Per fare un confronto, per prima cosa addestriamo un modello solo su dati tabulari utilizzando AutoGluone, imitando l'approccio tradizionale al rating delle società. Quindi aggiungiamo i dati del grafico e utilizziamo i GNN per l'allenamento. I dettagli completi sono forniti nel taccuino e una breve panoramica è offerta in questo post. Il taccuino offre anche una rapida panoramica del grafico ML con riferimenti selezionati.

La formazione del GNN si svolge come segue. Usiamo un adattamento del Modello GraphSAGE implementato nella libreria Deep Graph.

  1. Leggi nel grafico i dati da Servizio di archiviazione semplice Amazon (Amazon S3) e creare gli elenchi dei nodi di origine e di destinazione per CorpNet.
  2. Leggi i set di funzionalità del nodo del grafico (train e test). Normalizzare i dati come richiesto.
  3. Imposta iperparametri sintonizzabili. Chiama il contenitore ML grafico specializzato che esegue PyTorch per adattarsi al GNN senza l'ottimizzazione dell'iperparametro (HPO).
  4. Ripetere il grafico ML con HPO.

Per rendere l'implementazione semplice e stabile, eseguiamo il training del modello in un container usando il codice seguente (il codice di configurazione prima di questo codice di training si trova nel notebook della soluzione):

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})

L'attuale processo di addestramento viene svolto in un ambiente trasduttivo, in cui le caratteristiche del set di dati di test (esclusa la colonna target) vengono utilizzate per costruire il grafico e quindi i nodi di test sono inclusi nel processo di addestramento. Al termine dell'allenamento, le previsioni sul dataset di test vengono generate e salvate output_location nel secchio S3.

Anche se l'addestramento è trasduttivo, le etichette del set di dati di test non vengono utilizzate per l'addestramento e il nostro esercizio mira a prevedere queste etichette utilizzando incorporamenti di nodi per i nodi del set di dati di test. Una caratteristica importante di GraphSAGE è che è possibile anche l'apprendimento induttivo su nuove osservazioni che non fanno parte del grafico, sebbene non sfruttato in questa soluzione.

Ottimizzazione dell'iperparametro

Questa soluzione è ulteriormente estesa conducendo HPO sul GNN. Questo viene fatto all'interno di SageMaker. Vedere il codice seguente:

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),
}

Abbiamo quindi impostato l'obiettivo di allenamento, per massimizzare il punteggio di F1 in questo caso:

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

Stabilisci l'ambiente scelto e le risorse di formazione su SageMaker:

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,
)

Infine, esegui il lavoro di addestramento con l'ottimizzazione dell'iperparametro:

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

Risultati

L'inclusione dei dati di rete e l'ottimizzazione degli iperparametri produce risultati migliori. Le metriche delle prestazioni nella tabella seguente dimostrano il vantaggio dell'aggiunta di CorpNet ai set di dati tabulari standard utilizzati per il punteggio di credito.

I risultati per AutoGluon non utilizzano il grafico, solo i dati tabulari. Quando aggiungiamo i dati del grafico e utilizziamo l'HPO, otteniamo un notevole aumento delle prestazioni.

Punteggio F1 ROC UAC Precisione MCC Precisione equilibrata Precisione Richiamo
AutoGluone 0.72 0.74323 0.68037 0.35233 0.67323 0.68528 0.75843
GCN senza HPO 0.64 0.84498 0.69406 0.45619 0.71154 0.88177 0.50281
GCN con HPO 0.81 0.87116 0.78082 0.563 0.77081 0.75119 0.89045

(Nota: MCC è il coefficiente di correlazione di Matthews; https://en.wikipedia.org/wiki/Phi_coefficient.)

ripulire

Al termine dell'utilizzo di questo blocco appunti, elimina gli artefatti del modello e altre risorse per evitare di incorrere in ulteriori addebiti. È necessario eliminare manualmente le risorse che potresti aver creato durante l'esecuzione del notebook, come i bucket S3 per gli artefatti del modello, i set di dati di addestramento, gli artefatti di elaborazione e Amazon Cloud Watch gruppi di log.

Sommario

In questo post, abbiamo introdotto in JumpStart una soluzione di credit scoring basata su grafici per aiutarti ad accelerare il tuo percorso di machine learning nei grafici. Il notebook fornisce una pipeline che è possibile modificare e sfruttare i grafici con i modelli tabulari esistenti per ottenere prestazioni migliori.

Per iniziare, puoi trovare la soluzione di punteggio del credito basato su grafici in JumpStart in Sage Maker Studio.


Informazioni sugli autori

Crea un classificatore di rating del credito aziendale utilizzando l'apprendimento automatico dei grafici in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Dott. Sanjiv Das è Amazon Scholar e Terry Professor of Finance and Data Science presso la Santa Clara University. Ha conseguito lauree post-laurea in Finanza (M.Phil e Ph.D. presso la New York University) e Informatica (MS presso la UC Berkeley) e un MBA presso l'Indian Institute of Management, Ahmedabad. Prima di diventare un accademico, ha lavorato nel settore dei derivati ​​nella regione Asia-Pacifico come Vice President presso Citibank. Si occupa di machine learning multimodale nell'area delle applicazioni finanziarie.

Crea un classificatore di rating del credito aziendale utilizzando l'apprendimento automatico dei grafici in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Dott. Xin Huang è uno scienziato applicato per JumpStart di Amazon SageMaker ed Algoritmi integrati di Amazon SageMaker. Si concentra sullo sviluppo di algoritmi di apprendimento automatico scalabili. I suoi interessi di ricerca sono nelle aree dell'elaborazione del linguaggio naturale, del deep learning su dati tabulari e dell'analisi robusta del clustering spazio-temporale non parametrico.

Crea un classificatore di rating del credito aziendale utilizzando l'apprendimento automatico dei grafici in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Soji Adishina è un scienziato applicato presso AWS, dove sviluppa modelli basati su reti neurali a grafo per l'apprendimento automatico su attività di grafi con applicazioni per frode e abuso, grafici della conoscenza, sistemi di raccomandazione e scienze della vita. Nel tempo libero ama leggere e cucinare.

Crea un classificatore di rating del credito aziendale utilizzando l'apprendimento automatico dei grafici in Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Patrizio Yang è un ingegnere di sviluppo software presso Amazon SageMaker. Si concentra sulla creazione di strumenti e prodotti di machine learning per i clienti.

Timestamp:

Di più da Apprendimento automatico di AWS