Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart

Hari ini, kami merilis solusi baru untuk pembelajaran mesin grafik keuangan (ML) di Mulai Lompatan Amazon SageMaker. JumpStart membantu Anda memulai ML dengan cepat dan menyediakan serangkaian solusi untuk kasus penggunaan paling umum yang dapat dilatih dan diterapkan hanya dengan beberapa klik.

Solusi JumpStart baru (Graph-Based Credit Scoring) menunjukkan bagaimana membangun jaringan perusahaan dari pengajuan SEC (data teks bentuk panjang), menggabungkan ini dengan rasio keuangan (data tabular), dan menggunakan jaringan saraf grafik (GNNs) untuk membangun kredit model prediksi peringkat. Dalam posting ini, kami menjelaskan bagaimana Anda dapat menggunakan solusi yang sepenuhnya dapat disesuaikan ini untuk penilaian kredit, sehingga Anda dapat mempercepat perjalanan ML grafik Anda. Grafik ML menjadi area yang bermanfaat untuk ML keuangan karena memungkinkan penggunaan data jaringan bersama dengan kumpulan data tabular tradisional. Untuk informasi lebih lanjut, lihat Amazon di WSDM: Masa depan jaringan saraf graf.

Ikhtisar solusi

Anda dapat meningkatkan penilaian kredit dengan memanfaatkan data pada hubungan bisnis, di mana Anda dapat membuat grafik, dilambangkan sebagai CorpNet (kependekan dari jaringan perusahaan) dalam solusi ini. Anda kemudian dapat menerapkan klasifikasi ML grafik menggunakan GNN pada grafik ini dan kumpulan fitur tabular untuk node, untuk melihat apakah Anda dapat membangun model ML yang lebih baik dengan memanfaatkan informasi lebih lanjut dalam hubungan jaringan. Oleh karena itu, solusi ini menawarkan template untuk model bisnis yang mengeksploitasi data jaringan, seperti menggunakan grafik hubungan rantai pasokan, grafik jaringan sosial, dan banyak lagi.

Solusinya mengembangkan beberapa artefak baru dengan membangun jaringan perusahaan dan menghasilkan data keuangan sintetis, dan menggabungkan kedua bentuk data untuk membuat model menggunakan grafik ML.

Solusinya menunjukkan cara membangun jaringan perusahaan yang terhubung menggunakan bagian MD&A dari pengajuan SEC 10-K/Q. Perusahaan dengan pernyataan berwawasan ke depan yang serupa kemungkinan akan terhubung untuk acara kredit. Koneksi ini direpresentasikan dalam grafik. Untuk fitur simpul grafik, solusinya menggunakan variabel dalam model Altman Z-score dan kategori industri dari masing-masing perusahaan. Ini disediakan dalam kumpulan data sintetis yang tersedia untuk tujuan demonstrasi. Data grafik dan data tabular digunakan untuk menyesuaikan pengklasifikasi peringkat menggunakan GNN. Untuk tujuan ilustrasi, kami membandingkan kinerja model dengan dan tanpa informasi grafik.

Gunakan solusi Skor Kredit Berbasis Grafik

Untuk mulai menggunakan JumpStart, lihat Memulai dengan Amazon SageMaker. Kartu JumpStart untuk solusi Skor Kredit Berbasis Grafik tersedia melalui Studio Amazon SageMaker.

Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

  1. Pilih kartu model, lalu pilih Launch untuk memulai solusi.
    Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Solusinya menghasilkan model untuk inferensi dan titik akhir untuk digunakan dengan notebook.

  1. Tunggu sampai mereka siap dan statusnya ditampilkan sebagai Complete.
  2. Pilih Buka Buku Catatan untuk membuka notebook pertama, yaitu untuk pelatihan dan penyebaran titik akhir.
    Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Anda dapat bekerja melalui notebook ini untuk mempelajari cara menggunakan solusi ini dan kemudian memodifikasinya untuk aplikasi lain pada data Anda sendiri. Solusinya hadir dengan data sintetis dan menggunakan subsetnya untuk mencontohkan langkah-langkah yang diperlukan untuk melatih model, menerapkannya ke titik akhir, lalu memanggil titik akhir untuk inferensi. Notebook juga berisi kode untuk menerapkan titik akhir Anda sendiri.

  1. Untuk membuka buku catatan kedua (digunakan untuk inferensi), pilih Gunakan Endpoint di Notebook di sebelah artefak titik akhir.

Dalam buku catatan ini, Anda dapat melihat cara menyiapkan data untuk memanggil titik akhir contoh untuk melakukan inferensi pada sekumpulan contoh.
Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Titik akhir mengembalikan peringkat yang diprediksi, yang digunakan untuk menilai kinerja model, seperti yang ditunjukkan pada tangkapan layar berikut dari blok kode terakhir dari buku catatan inferensi.
Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Anda dapat menggunakan solusi ini sebagai template untuk model peringkat kredit yang disempurnakan dengan grafik. Anda tidak dibatasi pada kumpulan fitur dalam contoh iniโ€”Anda dapat mengubah data grafik dan data tabular untuk kasus penggunaan Anda sendiri. Tingkat perubahan kode yang diperlukan minimal. Kami merekomendasikan bekerja melalui contoh template kami untuk memahami struktur solusi, dan kemudian memodifikasinya sesuai kebutuhan.

Solusi ini hanya untuk tujuan demonstratif. Ini bukan nasihat keuangan dan tidak boleh diandalkan sebagai nasihat keuangan atau investasi. Notebook terkait, termasuk model terlatih, menggunakan data sintetis, dan tidak dimaksudkan untuk penggunaan produksi. Meskipun teks dari pengajuan SEC digunakan, data keuangan dibuat secara sintetis dan acak dan tidak ada hubungannya dengan keuangan perusahaan mana pun yang sebenarnya. Oleh karena itu, peringkat yang dihasilkan secara sintetis juga tidak memiliki hubungan apa pun dengan peringkat sebenarnya dari perusahaan mana pun.

Data yang digunakan dalam solusi

Dataset memiliki data tabular sintetis seperti berbagai rasio akuntansi (numerik) dan kode industri (kategorikal). Kumpulan data memiliki ๐‘=3286 baris. Label peringkat juga ditambahkan. Ini adalah fitur node yang akan digunakan dengan graph ML.

Dataset juga berisi grafik perusahaan, yang tidak terarah dan tidak berbobot. Solusi ini memungkinkan Anda untuk menyesuaikan struktur grafik dengan memvariasikan cara tautan disertakan. Setiap perusahaan dalam kumpulan data tabular diwakili oleh sebuah simpul dalam grafik perusahaan. Fungsinya construct_network_data() membantu membangun grafik, yang terdiri dari daftar node sumber dan node tujuan.

Label peringkat digunakan untuk klasifikasi menggunakan GNN, yang dapat multi-kategori untuk semua peringkat atau biner, dibagi antara peringkat investasi (AAA, AA, A, BBB) dan peringkat non-investasi (BB, B, CCC, CC, C, D). D di sini adalah singkatan dari default.

Kode lengkap untuk membaca data dan menjalankan solusi disediakan di notebook solusi. Tangkapan layar berikut menunjukkan struktur data tabel sintetis.

Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.

Informasi grafik diteruskan ke Perpustakaan Grafik Dalam dan dikombinasikan dengan data tabular untuk melakukan grafik ML. Jika Anda membawa grafik Anda sendiri, cukup berikan sebagai satu set node sumber dan node tujuan.

Pelatihan model

Sebagai perbandingan, pertama-tama kita melatih model hanya pada data tabular menggunakan Perekat Otomatis, meniru pendekatan tradisional untuk peringkat kredit perusahaan. Kami kemudian menambahkan data grafik dan menggunakan GNN untuk pelatihan. Rincian lengkap disediakan di buku catatan, dan tinjauan singkat ditawarkan di pos ini. Notebook ini juga menawarkan ikhtisar singkat tentang grafik ML dengan referensi yang dipilih.

Pelatihan GNN dilakukan sebagai berikut. Kami menggunakan adaptasi dari Model GraphSAGE diimplementasikan di Perpustakaan Grafik Dalam.

  1. Baca dalam data grafik dari Layanan Penyimpanan Sederhana Amazon (Amazon S3) dan buat daftar node sumber dan tujuan untuk CorpNet.
  2. Baca di set fitur simpul grafik (latih dan uji). Normalisasi data sesuai kebutuhan.
  3. Atur hyperparameter yang dapat disetel. Panggil container ML grafik khusus yang menjalankan PyTorch agar sesuai dengan GNN tanpa optimasi hyperparameter (HPO).
  4. Ulangi grafik ML dengan HPO.

Untuk membuat implementasi langsung dan stabil, kami menjalankan pelatihan model dalam wadah menggunakan kode berikut (kode pengaturan sebelum kode pelatihan ini ada di buku catatan solusi):

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

Proses pelatihan saat ini dilakukan dalam pengaturan transduktif, di mana fitur dari kumpulan data uji (tidak termasuk kolom target) digunakan untuk membangun grafik dan oleh karena itu node uji disertakan dalam proses pelatihan. Di akhir pelatihan, prediksi pada kumpulan data uji dibuat dan disimpan di output_location di bucket S3.

Meskipun pelatihan bersifat transduktif, label set data pengujian tidak digunakan untuk pelatihan, dan latihan kami ditujukan untuk memprediksi label ini menggunakan penyematan node untuk node set data pengujian. Sebuah fitur penting dari GraphSAGE adalah bahwa pembelajaran induktif pada pengamatan baru yang bukan bagian dari grafik juga dimungkinkan, meskipun tidak dieksploitasi dalam solusi ini.

Optimalisasi Hyperparameter

Solusi ini selanjutnya diperluas dengan melakukan HPO pada GNN. Ini dilakukan di dalam SageMaker. Lihat kode berikut:

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

Kami kemudian mengatur tujuan pelatihan, untuk memaksimalkan skor F1 dalam hal ini:

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

Tetapkan lingkungan dan sumber daya pelatihan yang dipilih di 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,
)

Terakhir, jalankan tugas pelatihan dengan optimasi hyperparameter:

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

Hasil

Dimasukkannya data jaringan dan optimasi hyperparameter menghasilkan hasil yang lebih baik. Metrik kinerja dalam tabel berikut menunjukkan manfaat penambahan CorpNet ke kumpulan data tabular standar yang digunakan untuk penilaian kredit.

Hasil untuk AutoGluon tidak menggunakan grafik, hanya data tabular. Saat kami menambahkan data grafik dan menggunakan HPO, kami mendapatkan keuntungan material dalam kinerja.

Skor F1 AUC ROC Ketepatan PKS Akurasi Seimbang Ketelitian Mengingat kembali
Perekat Otomatis 0.72 0.74323 0.68037 0.35233 0.67323 0.68528 0.75843
GCN Tanpa HPO 0.64 0.84498 0.69406 0.45619 0.71154 0.88177 0.50281
GCN Dengan HPO 0.81 0.87116 0.78082 0.563 0.77081 0.75119 0.89045

(Catatan: PKS adalah Koefisien Korelasi Matthews; https://en.wikipedia.org/wiki/Phi_coefficient.)

Membersihkan

Setelah Anda selesai menggunakan notebook ini, hapus artefak model dan sumber daya lainnya untuk menghindari biaya lebih lanjut. Anda perlu menghapus sumber daya yang mungkin telah Anda buat saat menjalankan notebook secara manual, seperti bucket S3 untuk artefak model, set data pelatihan, artefak pemrosesan, dan amazoncloudwatch kelompok log.

Kesimpulan

Dalam posting ini, kami memperkenalkan solusi penilaian kredit berbasis grafik di JumpStart untuk membantu Anda mempercepat perjalanan ML grafik Anda. Notebook ini menyediakan saluran yang dapat Anda modifikasi dan eksploitasi grafik dengan model tabel yang ada untuk mendapatkan kinerja yang lebih baik.

Untuk memulai, Anda dapat menemukan solusi Skor Kredit Berbasis Grafik di JumpStart di Studio SageMaker.


Tentang Penulis

Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Dr Sanjiv Daso adalah Sarjana Amazon dan Profesor Keuangan dan Ilmu Data Terry di Universitas Santa Clara. Beliau meraih gelar pasca sarjana di bidang Keuangan (M.Phil dan Ph.D. dari New York University) dan Ilmu Komputer (MS dari UC Berkeley), dan MBA dari Indian Institute of Management, Ahmedabad. Sebelum menjadi akademisi, beliau bekerja di bisnis derivatif di kawasan Asia-Pasifik sebagai Vice President di Citibank. Dia bekerja pada pembelajaran mesin multimodal di bidang aplikasi keuangan.

Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Dr Xin Huang adalah Ilmuwan Terapan untuk Mulai Lompatan Amazon SageMaker dan Algoritme bawaan Amazon SageMaker. Dia berfokus pada pengembangan algoritme pembelajaran mesin yang dapat diskalakan. Minat penelitiannya adalah di bidang pemrosesan bahasa alami, pembelajaran mendalam pada data tabular, dan analisis yang kuat dari pengelompokan ruang-waktu non-parametrik.

Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Soji Adeshina adalah Ilmuwan Terapan di AWS, tempat ia mengembangkan model berbasis jaringan saraf graf untuk pembelajaran mesin pada tugas grafik dengan aplikasi untuk penipuan dan penyalahgunaan, grafik pengetahuan, sistem pemberi rekomendasi, dan ilmu kehidupan. Di waktu luangnya, ia senang membaca dan memasak.

Buat pengklasifikasi peringkat kredit perusahaan menggunakan pembelajaran mesin grafik di Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Pencarian Vertikal. ai.Patrick Yang adalah Insinyur Pengembangan Perangkat Lunak di Amazon SageMaker. Dia berfokus pada pembuatan alat dan produk pembelajaran mesin untuk pelanggan.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS