Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart

Astăzi, lansăm o nouă soluție pentru învățarea automată a graficelor financiare (ML) în Amazon SageMaker JumpStart. JumpStart vă ajută să începeți rapid cu ML și oferă un set de soluții pentru cele mai frecvente cazuri de utilizare, care pot fi antrenate și implementate cu doar câteva clicuri.

Noua soluție JumpStart (Graph-Based Credit Scoring) demonstrează cum să construiți o rețea corporativă din dosarele SEC (date text în formă lungă), să combinați acest lucru cu rapoarte financiare (date tabulare) și să utilizați rețele neuronale grafice (GNN) pentru a construi credit modele de predicție a ratingului. În această postare, explicăm cum puteți utiliza această soluție complet personalizabilă pentru punctarea creditului, astfel încât să vă puteți accelera călătoria ML pentru grafic. Graph ML devine o zonă fructuoasă pentru ML financiar, deoarece permite utilizarea datelor de rețea împreună cu seturile de date tabulare tradiționale. Pentru mai multe informații, vezi Amazon la WSDM: Viitorul rețelelor neuronale grafice.

Prezentare generală a soluțiilor

Puteți îmbunătăți scorul de credit exploatând datele despre legăturile de afaceri, pentru care puteți construi un grafic, notat ca CorpNet (prescurtare pentru rețea corporativă) în această soluție. Puteți aplica apoi clasificarea ML a graficului folosind GNN-urile pe acest grafic și un set de caracteristici tabelare pentru noduri, pentru a vedea dacă puteți construi un model ML mai bun exploatând în continuare informațiile din relațiile de rețea. Prin urmare, această soluție oferă un șablon pentru modele de afaceri care exploatează datele de rețea, cum ar fi utilizarea graficelor relațiilor lanțului de aprovizionare, grafice a rețelelor sociale și multe altele.

Soluția dezvoltă câteva artefacte noi prin construirea unei rețele corporative și generarea de date financiare sintetice și combină ambele forme de date pentru a crea modele folosind graficul ML.

Soluția arată cum să construiți o rețea de companii conectate folosind secțiunea MD&A din dosarele SEC 10-K/Q. Companiile cu declarații anticipative similare sunt probabil conectate pentru evenimente de credit. Aceste conexiuni sunt reprezentate într-un grafic. Pentru caracteristicile nodului grafic, soluția folosește variabilele din modelul Altman Z-score și categoria de industrie a fiecărei firme. Acestea sunt furnizate într-un set de date sintetice pus la dispoziție în scopuri demonstrative. Datele grafice și datele tabelare sunt utilizate pentru a se potrivi unui clasificator de rating folosind GNN-uri. În scopuri ilustrative, comparăm performanța modelelor cu și fără informațiile din grafic.

Utilizați soluția de punctare a creditului bazată pe grafice

Pentru a începe să utilizați JumpStart, consultați Noțiuni introductive cu Amazon SageMaker. Cardul JumpStart pentru soluția Graph-Based Credit Scoring este disponibil prin intermediul Amazon SageMaker Studio.

Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

  1. Alegeți cardul model, apoi alegeți Lansa pentru a iniția soluția.
    Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Soluția generează un model pentru inferență și un punct final de utilizat cu un notebook.

  1. Așteptați până când sunt gata și starea se afișează ca Complete.
  2. Alege Deschide Notebook pentru a deschide primul blocnotes, care este pentru antrenament și implementare terminale.
    Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Puteți folosi acest notebook pentru a afla cum să utilizați această soluție și apoi să o modificați pentru alte aplicații pe propriile date. Soluția vine cu date sintetice și folosește un subset al acestora pentru a exemplifica pașii necesari pentru a antrena modelul, a-l implementa la un punct final și apoi a invoca punctul final pentru inferență. Notebook-ul conține, de asemenea, cod pentru a implementa un punct final al dvs.

  1. Pentru a deschide al doilea blocnotes (utilizat pentru inferență), alegeți Utilizați Endpoint în Notebook lângă artefactul punctului final.

În acest caiet, puteți vedea cum să pregătiți datele pentru a invoca punctul final de exemplu pentru a efectua inferențe pe un lot de exemple.
Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Punctul final returnează evaluări estimate, care sunt utilizate pentru a evalua performanța modelului, așa cum se arată în următoarea captură de ecran a ultimului bloc de cod al blocnotesului de inferențe.
Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Puteți utiliza această soluție ca șablon pentru un model de rating de credit îmbunătățit prin grafic. Nu sunteți limitat la setul de caracteristici din acest exemplu - puteți modifica atât datele grafice, cât și datele tabelare pentru propriul dvs. caz de utilizare. Amploarea modificărilor de cod necesare este minimă. Vă recomandăm să analizați exemplul nostru de șablon pentru a înțelege structura soluției și apoi să o modificați după cum este necesar.

Această soluție are doar scop demonstrativ. Nu este consiliere financiară și nu ar trebui să fie bazată pe consiliere financiară sau de investiții. Caietele asociate, inclusiv modelul instruit, folosesc date sintetice și nu sunt destinate utilizării în producție. Deși se utilizează text din dosarele SEC, datele financiare sunt generate sintetic și aleatoriu și nu au nicio legătură cu situația financiară reală a vreunei companii. Prin urmare, ratingurile generate sintetic nu au nicio legătură cu ratingul real al vreunei companii reale.

Date utilizate în soluție

Setul de date conține date tabelare sintetice, cum ar fi diferite rapoarte contabile (numerice) și coduri industriale (categorice). Setul de date are 𝑁=3286 rânduri. Sunt adăugate și etichete de evaluare. Acestea sunt caracteristicile nodului care trebuie utilizate cu graficul ML.

Setul de date conține, de asemenea, un grafic corporativ, care este nedirecționat și neponderat. Această soluție vă permite să ajustați structura graficului variind modul în care sunt incluse legăturile. Fiecare companie din setul de date tabelar este reprezentată printr-un nod în graficul corporativ. Functia construct_network_data() ajută la construirea graficului, care cuprinde liste de noduri sursă și noduri de destinație.

Etichetele de rating sunt folosite pentru clasificare folosind GNN-uri, care pot fi multi-categorii pentru toate ratingurile sau binare, împărțite între gradul de investiție (AAA, AA, A, BBB) și gradul de non-investiție (BB, B, CCC, CC, C, D). D aici înseamnă implicit.

Codul complet pentru a citi datele și a rula soluția este furnizat în caietul de soluții. Următoarea captură de ecran arată structura datelor tabelare sintetice.

Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Informațiile grafice sunt transmise către Biblioteca Deep Graph și combinate cu datele tabelare pentru a realiza graficul ML. Dacă vă aduceți propriul grafic, furnizați-l pur și simplu ca un set de noduri sursă și noduri destinație.

Antrenamentul modelului

Pentru comparație, antrenăm mai întâi un model numai pe date tabelare folosind AutoGluon, imitând abordarea tradițională a ratingului de credit al companiilor. Apoi adăugăm datele din grafic și folosim GNN-urile pentru antrenament. Detaliile complete sunt furnizate în caiet, iar o scurtă prezentare generală este oferită în această postare. Notebook-ul oferă, de asemenea, o imagine de ansamblu rapidă a graficului ML cu referințe selectate.

Antrenarea GNN se realizează după cum urmează. Folosim o adaptare a Modelul GraphSAGE implementat în Biblioteca Deep Graph.

  1. Citiți în grafic datele de la Serviciul Amazon de stocare simplă (Amazon S3) și creați listele de noduri sursă și destinație pentru CorpNet.
  2. Citiți seturile de caracteristici ale nodului grafic (antrenează și testează). Normalizați datele după cum este necesar.
  3. Setați hiperparametri reglabili. Apelați containerul ML grafic specializat care rulează PyTorch pentru a se potrivi cu GNN fără optimizare hiperparametrică (HPO).
  4. Repetați graficul ML cu HPO.

Pentru a face implementarea simplă și stabilă, rulăm antrenamentul modelului într-un container folosind următorul cod (codul de configurare anterior acestui cod de antrenament se află în caietul de soluții):

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

Procesul de antrenament curent este întreprins într-un cadru transductiv, unde caracteristicile setului de date de testare (fără incluzând coloana țintă) sunt utilizate pentru a construi graficul și, prin urmare, nodurile de testare sunt incluse în procesul de antrenament. La sfârșitul antrenamentului, predicțiile privind setul de date de testare sunt generate și salvate în output_location în găleata S3.

Chiar dacă antrenamentul este transductiv, etichetele setului de date de testare nu sunt folosite pentru antrenament, iar exercițiul nostru are ca scop prezicerea acestor etichete folosind încorporarea nodurilor pentru nodurile setului de date de testare. O caracteristică importantă a GraphSAGE este că învățarea inductivă asupra noilor observații care nu fac parte din grafic este de asemenea posibilă, deși nu este exploatată în această soluție.

Optimizarea hiperparametrului

Această soluție este extinsă în continuare prin efectuarea HPO pe GNN. Acest lucru se face în SageMaker. Vezi următorul cod:

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

Am stabilit apoi obiectivul de antrenament, pentru a maximiza scorul F1 în acest caz:

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

Stabiliți mediul ales și resursele de instruire pe 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,
)

În cele din urmă, rulați jobul de antrenament cu optimizarea hiperparametrului:

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

REZULTATE

Includerea datelor de rețea și optimizarea hiperparametrilor dă rezultate îmbunătățite. Valorile de performanță din următorul tabel demonstrează beneficiul adăugării în CorpNet la seturile de date tabelare standard utilizate pentru scorarea creditului.

Rezultatele pentru AutoGluon nu folosesc graficul, ci doar datele tabelare. Când adăugăm datele din grafic și folosim HPO, obținem un câștig material în performanță.

Scorul F1 ROC AUC Acuratete MCC Precizie echilibrată Precizie Rechemare
AutoGluon 0.72 0.74323 0.68037 0.35233 0.67323 0.68528 0.75843
GCN Fără HPO 0.64 0.84498 0.69406 0.45619 0.71154 0.88177 0.50281
GCN cu HPO 0.81 0.87116 0.78082 0.563 0.77081 0.75119 0.89045

(Notă: MCC este coeficientul de corelație Matthews; https://en.wikipedia.org/wiki/Phi_coefficient.)

A curăța

După ce ați terminat de utilizat acest notebook, ștergeți artefactele modelului și alte resurse pentru a evita costurile suplimentare. Trebuie să ștergeți manual resursele pe care le-ați creat în timp ce rulați notebook-ul, cum ar fi compartimente S3 pentru artefacte model, seturi de date de antrenament, artefacte de procesare și Amazon CloudWatch grupuri de jurnal.

Rezumat

În această postare, am introdus o soluție de punctare a creditului bazată pe grafice în JumpStart pentru a vă ajuta să vă accelerați călătoria ML prin grafic. Notebook-ul oferă o conductă pe care o puteți modifica și exploata grafice cu modelele tabelare existente pentru a obține performanțe mai bune.

Pentru a începe, puteți găsi soluția de punctare a creditului bazată pe grafic în JumpStart în SageMaker Studio.


Despre Autori

Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Dr. Sanjiv Das este bursier Amazon și profesor Terry de finanțe și știință a datelor la Universitatea Santa Clara. El deține diplome postuniversitare în Finanțe (M.Phil și Ph.D. de la Universitatea din New York) și Computer Science (MS de la UC Berkeley) și un MBA de la Institutul Indian de Management, Ahmedabad. Înainte de a deveni universitar, a lucrat în afacerile derivate din regiunea Asia-Pacific ca vicepreședinte la Citibank. Lucrează pe învățarea automată multimodală în domeniul aplicațiilor financiare.

Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Dr. Xin Huang este un om de știință aplicat pentru Amazon SageMaker JumpStart și Algoritmi încorporați Amazon SageMaker. El se concentrează pe dezvoltarea de algoritmi scalabili de învățare automată. Interesele sale de cercetare sunt în domeniile prelucrării limbajului natural, învățarea profundă a datelor tabulare și analiza robustă a grupării neparametrice spațiu-timp.

Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Soji Adeshina este un om de știință aplicat la AWS, unde dezvoltă modele bazate pe rețele neuronale grafice pentru învățarea automată a sarcinilor de grafice cu aplicații pentru fraudă și abuz, grafice de cunoștințe, sisteme de recomandare și științe ale vieții. În timpul liber, îi place să citească și să gătească.

Creați un clasificator de rating de credit corporativ folosind învățarea automată grafică în Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Patrick Yang este inginer de dezvoltare software la Amazon SageMaker. El se concentrează pe construirea de instrumente și produse de învățare automată pentru clienți.

Timestamp-ul:

Mai mult de la Învățare automată AWS