Zbuduj klasyfikator korporacyjnych ratingów kredytowych, korzystając z grafowego uczenia maszynowego w Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Zbuduj korporacyjny klasyfikator ratingów kredytowych za pomocą uczenia maszynowego wykresów w Amazon SageMaker JumpStart

Dzisiaj udostępniamy nowe rozwiązanie do uczenia maszynowego (ML) dotyczące grafów finansowych w Amazon SageMaker JumpStart. JumpStart pomaga szybko rozpocząć korzystanie z uczenia maszynowego i zapewnia zestaw rozwiązań dla najczęstszych przypadków użycia, które można przeszkolić i wdrożyć za pomocą zaledwie kilku kliknięć.

Nowe rozwiązanie JumpStart (Graph-Based Credit Scoring) pokazuje, jak zbudować sieć korporacyjną na podstawie dokumentów SEC (długie dane tekstowe), połączyć to ze wskaźnikami finansowymi (dane tabelaryczne) i wykorzystać grafowe sieci neuronowe (GNN) do budowania zdolności kredytowej modele przewidywania ocen. W tym poście wyjaśniamy, w jaki sposób możesz wykorzystać to w pełni konfigurowalne rozwiązanie do punktacji kredytowej, dzięki czemu możesz przyspieszyć swoją podróż do ML za pomocą grafów. Graph ML staje się owocnym obszarem finansowego ML, ponieważ umożliwia wykorzystanie danych sieciowych w połączeniu z tradycyjnymi tabelarycznymi zbiorami danych. Aby uzyskać więcej informacji, zobacz Amazon na WSDM: Przyszłość grafowych sieci neuronowych.

Omówienie rozwiązania

Możesz poprawić scoring kredytowy, wykorzystując dane dotyczące powiązań biznesowych, dla których możesz skonstruować wykres, oznaczony w tym rozwiązaniu jako CorpNet (skrót od sieci korporacyjnej). Następnie można zastosować grafową klasyfikację ML, korzystając z sieci GNN na tym wykresie i tabelarycznego zestawu funkcji dla węzłów, aby sprawdzić, czy można zbudować lepszy model ML poprzez dalsze wykorzystanie informacji w relacjach sieciowych. Dlatego to rozwiązanie oferuje szablon dla modeli biznesowych wykorzystujących dane sieciowe, na przykład wykorzystujących wykresy relacji w łańcuchu dostaw, wykresy sieci społecznościowych i nie tylko.

Rozwiązanie tworzy kilka nowych artefaktów poprzez budowę sieci korporacyjnej i generowanie syntetycznych danych finansowych, a także łączy obie formy danych w celu utworzenia modeli przy użyciu grafów ML.

Rozwiązanie pokazuje, jak zbudować sieć połączonych firm, wykorzystując sekcję MD&A z zgłoszeń SEC 10-K/Q. Spółki posiadające podobne stwierdzenia wybiegające w przyszłość prawdopodobnie zostaną powiązane ze względu na zdarzenia kredytowe. Połączenia te przedstawiono na wykresie. W przypadku funkcji węzłów wykresu rozwiązanie wykorzystuje zmienne z modelu Altmana Z-score oraz kategorię branży każdej firmy. Są one przedstawione w postaci syntetycznego zbioru danych udostępnionego w celach demonstracyjnych. Dane wykresowe i dane tabelaryczne służą do dopasowania klasyfikatora ratingowego za pomocą sieci GNN. Dla celów ilustracyjnych porównujemy wydajność modeli z informacjami graficznymi i bez nich.

Skorzystaj z rozwiązania Graph-Based Credit Scoring

Aby rozpocząć korzystanie z JumpStart, zobacz Pierwsze kroki z Amazon SageMaker. Karta JumpStart do rozwiązania Graph-Based Credit Scoring jest dostępna za pośrednictwem Studio Amazon SageMaker.

Zbuduj klasyfikator korporacyjnych ratingów kredytowych, korzystając z grafowego uczenia maszynowego w Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

  1. Wybierz kartę modelu, a następnie wybierz Premiera aby zainicjować rozwiązanie.
    Zbuduj klasyfikator korporacyjnych ratingów kredytowych, korzystając z grafowego uczenia maszynowego w Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Rozwiązanie generuje model do wnioskowania i punkt końcowy do użycia z notatnikiem.

  1. Poczekaj, aż będą gotowe i wyświetli się status jako Complete.
  2. Dodaj Otwórz notatnik , aby otworzyć pierwszy notes przeznaczony do szkolenia i wdrażania punktów końcowych.
    Zbuduj klasyfikator korporacyjnych ratingów kredytowych, korzystając z grafowego uczenia maszynowego w Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Możesz przestudiować ten notatnik, aby dowiedzieć się, jak korzystać z tego rozwiązania, a następnie zmodyfikować je dla innych aplikacji na własnych danych. Rozwiązanie zawiera dane syntetyczne i wykorzystuje ich podzbiór w celu zilustrowania kroków niezbędnych do wytrenowania modelu, wdrożenia go w punkcie końcowym, a następnie wywołania punktu końcowego w celu wyciągnięcia wniosków. Notatnik zawiera także kod umożliwiający wdrożenie własnego punktu końcowego.

  1. Aby otworzyć drugi notatnik (używany do wnioskowania), wybierz Użyj punktu końcowego w Notatniku obok artefaktu punktu końcowego.

W tym notatniku możesz zobaczyć, jak przygotować dane do wywołania przykładowego punktu końcowego w celu przeprowadzenia wnioskowania na partii przykładów.
Zbuduj klasyfikator korporacyjnych ratingów kredytowych, korzystając z grafowego uczenia maszynowego w Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Punkt końcowy zwraca przewidywane oceny, które są używane do oceny wydajności modelu, jak pokazano na poniższym zrzucie ekranu przedstawiającym ostatni blok kodu notesu wnioskowania.
Zbuduj klasyfikator korporacyjnych ratingów kredytowych, korzystając z grafowego uczenia maszynowego w Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Możesz użyć tego rozwiązania jako szablonu dla wzmocnionego graficznie modelu ratingu kredytowego. Nie jesteś ograniczony do zestawu funkcji w tym przykładzie — możesz zmieniać zarówno dane wykresu, jak i dane tabelaryczne, dostosowując się do własnego przypadku. Zakres wymaganych zmian w kodzie jest minimalny. Zalecamy przestudiowanie naszego przykładowego szablonu, aby zrozumieć strukturę rozwiązania, a następnie zmodyfikować go w razie potrzeby.

To rozwiązanie służy wyłącznie celom demonstracyjnym. Nie jest to porada finansowa i nie należy jej traktować jako porady finansowej lub inwestycyjnej. Skojarzone notesy, w tym przeszkolony model, korzystają z danych syntetycznych i nie są przeznaczone do użytku produkcyjnego. Chociaż wykorzystano tekst z dokumentów SEC, dane finansowe są generowane syntetycznie i losowo i nie mają związku z prawdziwymi danymi finansowymi żadnej firmy. Dlatego też syntetycznie wygenerowane oceny również nie mają żadnego związku z prawdziwą oceną jakiejkolwiek prawdziwej firmy.

Dane użyte w rozwiązaniu

Zbiór danych zawiera syntetyczne dane tabelaryczne, takie jak różne współczynniki rozliczeniowe (liczbowe) i kody branżowe (kategoryczne). Zbiór danych ma 𝑁=3286 wierszy. Dodano także etykiety ocen. Są to funkcje węzła, których należy używać z grafem ML.

Zbiór danych zawiera również wykres korporacyjny, który jest nieukierunkowany i nieważony. Rozwiązanie to umożliwia dostosowanie struktury wykresu poprzez zmianę sposobu uwzględnienia linków. Każda firma w tabelarycznym zbiorze danych jest reprezentowana przez węzeł na wykresie korporacyjnym. Funkcja construct_network_data() pomaga skonstruować graf, który zawiera listy węzłów źródłowych i węzłów docelowych.

Etykiety ratingowe służą do klasyfikacji przy użyciu sieci GNN, które mogą obejmować wiele kategorii dla wszystkich ratingów lub binarne, podzielone na ocenę inwestycyjną (AAA, AA, A, BBB) i nieinwestycyjną (BB, B, CCC, CC, C, D). D tutaj oznacza wartość domyślną.

Kompletny kod umożliwiający wczytanie danych i uruchomienie rozwiązania znajduje się w notatniku rozwiązania. Poniższy zrzut ekranu przedstawia strukturę syntetycznych danych tabelarycznych.

Zbuduj klasyfikator korporacyjnych ratingów kredytowych, korzystając z grafowego uczenia maszynowego w Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Informacje z wykresu są przesyłane do Biblioteka Deep Graph i w połączeniu z danymi tabelarycznymi, aby wykonać wykres ML. Jeśli przyniesiesz własny wykres, po prostu dostarcz go jako zestaw węzłów źródłowych i węzłów docelowych.

Szkolenie modelowe

Dla porównania najpierw trenujemy model wyłącznie na danych tabelarycznych za pomocą AutoGluon, naśladując tradycyjne podejście do ratingu kredytowego przedsiębiorstw. Następnie dodajemy dane do wykresu i używamy sieci GNN do szkolenia. Szczegółowe informacje znajdują się w notatniku, a krótki przegląd znajduje się w tym poście. Notatnik oferuje także szybki przegląd wykresu ML z wybranymi odniesieniami.

Szkolenie GNN odbywa się w następujący sposób. Korzystamy z adaptacji Model GraphSAGE zaimplementowane w Deep Graph Library.

  1. Wczytaj dane z wykresu Usługa Amazon Simple Storage (Amazon S3) i utwórz listy węzłów źródłowych i docelowych dla CorpNet.
  2. Wczytaj zestawy funkcji węzła wykresu (pociąg i test). Normalizuj dane zgodnie z wymaganiami.
  3. Ustaw przestrajalne hiperparametry. Wywołaj wyspecjalizowany kontener ML wykresu z uruchomionym PyTorch, aby dopasować go do GNN bez optymalizacji hiperparametrów (HPO).
  4. Powtórz wykres ML z HPO.

Aby wdrożenie było proste i stabilne, uruchamiamy szkolenie modelu w kontenerze przy użyciu następującego kodu (kod instalacyjny poprzedzający ten kod szkoleniowy znajduje się w notatniku rozwiązania):

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

Bieżący proces uczenia odbywa się w ustawieniu transdukcyjnym, gdzie cechy testowego zbioru danych (nie licząc kolumny docelowej) są wykorzystywane do konstruowania wykresu, dlatego też węzły testowe są uwzględniane w procesie uczenia. Pod koniec uczenia prognozy dotyczące testowego zbioru danych są generowane i zapisywane w pliku output_location w wiadrze S3.

Mimo że uczenie ma charakter transdukcyjny, etykiety testowego zbioru danych nie są używane do uczenia, a nasze ćwiczenie ma na celu przewidzenie tych etykiet przy użyciu osadzania węzłów dla węzłów testowego zbioru danych. Ważną cechą GraphSAGE jest to, że możliwe jest również uczenie się indukcyjne na podstawie nowych obserwacji, które nie są częścią wykresu, choć nie jest to wykorzystywane w tym rozwiązaniu.

Optymalizacja hiperparametrów

Rozwiązanie to jest dodatkowo rozszerzane poprzez prowadzenie HPO w sieci GNN. Odbywa się to w SageMaker. Zobacz następujący kod:

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

Następnie ustalamy cel treningowy, aby w tym przypadku zmaksymalizować wynik F1:

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

Utwórz wybrane środowisko i zasoby szkoleniowe w 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,
)

Na koniec uruchom zadanie szkoleniowe z optymalizacją hiperparametrów:

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

Efekt

Uwzględnienie danych sieciowych i optymalizacja hiperparametrów daje lepsze wyniki. Metryki wydajności w poniższej tabeli pokazują korzyści płynące z dodania CorpNet do standardowych tabelarycznych zbiorów danych używanych do oceny zdolności kredytowej.

Wyniki dla AutoGluon nie korzystają z wykresu, tylko z danych tabelarycznych. Kiedy dodamy dane z wykresu i wykorzystamy HPO, uzyskamy istotny wzrost wydajności.

Wynik F1 AUC ROC Dokładność MCC Zrównoważona dokładność Detaliczność Odwołanie
AutoGluon 0.72 0.74323 0.68037 0.35233 0.67323 0.68528 0.75843
GCN bez HPO 0.64 0.84498 0.69406 0.45619 0.71154 0.88177 0.50281
GCN z HPO 0.81 0.87116 0.78082 0.563 0.77081 0.75119 0.89045

(Uwaga: MCC to współczynnik korelacji Matthewsa; https://en.wikipedia.org/wiki/Phi_coefficient.)

Sprzątać

Po zakończeniu korzystania z tego notesu usuń artefakty modelu i inne zasoby, aby uniknąć dalszych opłat. Należy ręcznie usunąć zasoby, które mogły zostać utworzone podczas uruchamiania notatnika, takie jak zasobniki S3 na artefakty modelu, zbiory danych szkoleniowych, artefakty przetwarzania i Amazon Cloud Watch grupy dzienników.

Podsumowanie

W tym poście wprowadziliśmy w JumpStart oparte na wykresach rozwiązanie do punktacji kredytowej, które pomoże Ci przyspieszyć proces uczenia się metodą graficzną. Notatnik zapewnia potok, za pomocą którego można modyfikować i wykorzystywać wykresy w istniejących modelach tabelarycznych w celu uzyskania lepszej wydajności.

Na początek możesz znaleźć rozwiązanie do punktacji kredytowej opartej na wykresach w JumpStart w Studio SageMaker.


O autorach

Zbuduj klasyfikator korporacyjnych ratingów kredytowych, korzystając z grafowego uczenia maszynowego w Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Dr Sanjiv Das jest stypendystą Amazona oraz profesorem Terry'ego w dziedzinie finansów i nauki o danych na Uniwersytecie Santa Clara. Uzyskał stopnie podyplomowe w dziedzinie finansów (magisterium i doktorat na Uniwersytecie Nowojorskim) i informatyki (magisterium na Uniwersytecie Kalifornijskim w Berkeley) oraz tytuł MBA w Indyjskim Instytucie Zarządzania w Ahmedabadzie. Zanim rozpoczął karierę naukową, pracował w branży instrumentów pochodnych w regionie Azji i Pacyfiku jako wiceprezes Citibanku. Zajmuje się multimodalnym uczeniem maszynowym w obszarze aplikacji finansowych.

Zbuduj klasyfikator korporacyjnych ratingów kredytowych, korzystając z grafowego uczenia maszynowego w Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Dr Xin Huang jest naukowcem stosowanym w firmie Amazon SageMaker JumpStart i Wbudowane algorytmy Amazon SageMaker. Koncentruje się na opracowywaniu skalowalnych algorytmów uczenia maszynowego. Jego zainteresowania badawcze obejmują obszary przetwarzania języka naturalnego, głębokiego uczenia się na danych tabelarycznych i solidną analizę nieparametrycznego grupowania czasoprzestrzeni.

Zbuduj klasyfikator korporacyjnych ratingów kredytowych, korzystając z grafowego uczenia maszynowego w Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Sodżi Adeszina jest naukowcem stosowanym w AWS, gdzie opracowuje modele oparte na grafowych sieciach neuronowych do uczenia maszynowego w zakresie zadań grafowych z aplikacjami do wykrywania oszustw i nadużyć, wykresów wiedzy, systemów rekomendacyjnych i nauk przyrodniczych. W wolnym czasie czyta i gotuje.

Zbuduj klasyfikator korporacyjnych ratingów kredytowych, korzystając z grafowego uczenia maszynowego w Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Patryk Yang jest inżynierem ds. rozwoju oprogramowania w Amazon SageMaker. Koncentruje się na budowaniu narzędzi i produktów do uczenia maszynowego dla klientów.

Znak czasu:

Więcej z Uczenie maszynowe AWS