Створіть корпоративний класифікатор кредитних рейтингів за допомогою машинного навчання графів у Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Створіть класифікатор корпоративних кредитних рейтингів за допомогою графічного машинного навчання в Amazon SageMaker JumpStart

Сьогодні ми випускаємо нове рішення для машинного навчання фінансових графів (ML). Amazon SageMaker JumpStart. JumpStart допомагає швидко розпочати роботу з машинним навчанням і надає набір рішень для найпоширеніших випадків використання, які можна навчити та розгорнути лише кількома кліками.

Нове рішення JumpStart (Graph-Based Credit Scoring) демонструє, як побудувати корпоративну мережу на основі документів SEC (довгих текстових даних), поєднати це з фінансовими коефіцієнтами (табличні дані) і використовувати нейронні мережі (GNN) для створення кредиту. моделі прогнозування рейтингів. У цій публікації ми пояснюємо, як ви можете використовувати це повністю настроюване рішення для кредитного скорингу, щоб ви могли прискорити свій шлях ML на графіку. Графічний ML стає плідною сферою для фінансового ML, оскільки він дає змогу використовувати мережеві дані у поєднанні з традиційними табличними наборами даних. Додаткову інформацію див Amazon на WSDM: майбутнє графових нейронних мереж.

Огляд рішення

Ви можете покращити кредитну оцінку, використовуючи дані про бізнес-зв’язки, для яких у цьому рішенні можна побудувати графік, позначений як CorpNet (скорочення від корпоративної мережі). Потім ви можете застосувати класифікацію ML графа, використовуючи GNN на цьому графіку та табличний набір функцій для вузлів, щоб побачити, чи зможете ви побудувати кращу модель ML шляхом подальшого використання інформації в мережевих відносинах. Тому це рішення пропонує шаблон для бізнес-моделей, які використовують мережеві дані, наприклад, використання графіків взаємозв’язків ланцюга поставок, графіків соціальних мереж тощо.

Рішення розробляє кілька нових артефактів шляхом побудови корпоративної мережі та генерування синтетичних фінансових даних, а також поєднує обидві форми даних для створення моделей з використанням графіка ML.

Рішення показує, як побудувати мережу пов’язаних компаній, використовуючи розділ MD&A із заявок SEC 10-K/Q. Компанії з подібними прогнозними заявами, ймовірно, будуть пов’язані з кредитними подіями. Ці зв’язки представлені у вигляді графіка. Для функцій вузла графіка рішення використовує змінні в моделі Altman Z-score і галузеву категорію кожної фірми. Вони представлені в синтетичному наборі даних, доступному для демонстраційних цілей. Дані графіка та табличні дані використовуються для відповідності класифікатору рейтингу за допомогою GNN. Для ілюстрації ми порівнюємо продуктивність моделей з інформацією про графік і без неї.

Використовуйте рішення для оцінки кредиту на основі графіка

Щоб почати використовувати JumpStart, див Початок роботи з Amazon SageMaker. Картка JumpStart для рішення Credit Scoring на основі графіка доступна через Студія Amazon SageMaker.

Створіть корпоративний класифікатор кредитних рейтингів за допомогою машинного навчання графів у Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

  1. Виберіть картку моделі, а потім виберіть Запуск щоб ініціювати рішення.
    Створіть корпоративний класифікатор кредитних рейтингів за допомогою машинного навчання графів у Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Рішення генерує модель для висновку та кінцеву точку для використання з ноутбуком.

  1. Зачекайте, поки вони будуть готові і статус не відобразиться як Complete.
  2. Вибирати Відкрийте Блокнот щоб відкрити перший блокнот, який призначений для навчання та розгортання кінцевої точки.
    Створіть корпоративний класифікатор кредитних рейтингів за допомогою машинного навчання графів у Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ви можете працювати з цим блокнотом, щоб дізнатися, як використовувати це рішення, а потім змінити його для інших додатків на ваших власних даних. Рішення постачається з синтетичними даними і використовує їх підмножину, щоб ілюструвати кроки, необхідні для навчання моделі, розгортання її на кінцевій точці, а потім виклику кінцевої точки для висновку. Блокнот також містить код для розгортання власної кінцевої точки.

  1. Щоб відкрити другий зошит (використовується для висновку), виберіть Використовуйте кінцеву точку в блокноті поруч із артефактом кінцевої точки.

У цьому блокноті ви можете побачити, як підготувати дані для виклику кінцевої точки прикладу для виконання висновку з пакету прикладів.
Створіть корпоративний класифікатор кредитних рейтингів за допомогою машинного навчання графів у Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Кінцева точка повертає прогнозовані оцінки, які використовуються для оцінки продуктивності моделі, як показано на наступному знімку екрана останнього блоку коду блокнота висновку.
Створіть корпоративний класифікатор кредитних рейтингів за допомогою машинного навчання графів у Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ви можете використовувати це рішення як шаблон для моделі кредитного рейтингу з розширеною графікою. Ви не обмежені лише набором функцій у цьому прикладі — ви можете змінити як дані графіка, так і табличні дані для власного випадку використання. Обсяг необхідних змін коду мінімальний. Ми рекомендуємо ознайомитися з нашим прикладом шаблону, щоб зрозуміти структуру рішення, а потім змінити його за потреби.

Це рішення призначене лише для демонстраційних цілей. Це не фінансова порада, і на неї не слід покладатися як на фінансову чи інвестиційну пораду. Пов’язані ноутбуки, включаючи навчену модель, використовують синтетичні дані і не призначені для використання у виробництві. Хоча використовується текст з документів SEC, фінансові дані генеруються синтетично та випадковим чином і не мають жодного відношення до справжніх фінансових показників будь-якої компанії. Таким чином, синтетично згенеровані рейтинги також не мають жодного відношення до реального рейтингу будь-якої компанії.

Дані, використані в розв’язанні

Набір даних містить синтетичні табличні дані, такі як різні облікові коефіцієнти (числові) та галузеві коди (категорійні). Набір даних має 𝑁=3286 рядків. Також додаються позначки рейтингу. Це функції вузла, які будуть використовуватися з графіком ML.

Набір даних також містить корпоративний графік, який є неорієнтованим і незваженим. Це рішення дозволяє коригувати структуру графіка, змінюючи спосіб включення посилань. Кожна компанія в табличному наборі даних представлена ​​вузлом на корпоративному графіку. Функція construct_network_data() допомагає побудувати графік, який містить списки вихідних вузлів і вузлів призначення.

Рейтингові позначки використовуються для класифікації за допомогою GNN, які можуть бути кількома категоріями для всіх рейтингів або бінарними, розділеними між інвестиційним (AAA, AA, A, BBB) і неінвестиційним (BB, B, CCC, CC, C, D). D тут означає дефолт.

Повний код для зчитування даних і запуску рішення надається в блокноті рішення. На наступному знімку екрана показано структуру синтетичних табличних даних.

Створіть корпоративний класифікатор кредитних рейтингів за допомогою машинного навчання графів у Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Інформація про графік передається до Бібліотека глибоких графіків і в поєднанні з табличними даними для створення графіка ML. Якщо ви приносите свій власний графік, просто введіть його як набір вихідних вузлів і вузлів призначення.

Модельний тренінг

Для порівняння, спочатку ми навчаємо модель лише на табличних даних, використовуючи Автоглюон, імітуючи традиційний підхід до кредитного рейтингу компаній. Потім ми додаємо дані графіка та використовуємо GNN для навчання. Повна інформація наведена в блокноті, а короткий огляд пропонується в цій публікації. Блокнот також пропонує короткий огляд графіка ML з вибраними посиланнями.

Навчання GNN здійснюється наступним чином. Ми використовуємо адаптацію Модель GraphSAGE реалізовано в бібліотеці Deep Graph.

  1. Прочитайте дані графіка з Служба простого зберігання Amazon (Amazon S3) і створіть списки вихідних і цільових вузлів для CorpNet.
  2. Читайте набори функцій вузла графіка (поїзд та тест). За потреби нормалізуйте дані.
  3. Встановити настроювані гіперпараметри. Викличте спеціалізований ML-контейнер з графами, на якому запущено PyTorch, щоб відповідати GNN без оптимізації гіперпараметрів (HPO).
  4. Повторіть графік ML з HPO.

Щоб зробити реалізацію простою та стабільною, ми запускаємо навчання моделі в контейнері, використовуючи наступний код (код налаштування до цього навчального коду є в блокноті рішень):

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

Поточний навчальний процес виконується в трансдуктивній обстановці, де функції тестового набору даних (не включаючи цільовий стовпець) використовуються для побудови графіка, і тому тестові вузли включаються в навчальний процес. Наприкінці навчання генеруються і зберігаються прогнози в наборі даних тесту output_location у відрі S3.

Незважаючи на те, що навчання є трансдуктивним, мітки тестового набору даних не використовуються для навчання, і наша вправа спрямована на передбачення цих міток за допомогою вбудовування вузлів для вузлів набору тестових даних. Важливою особливістю GraphSAGE є те, що індуктивне навчання на нових спостереженнях, які не є частиною графіка, також можливе, хоча й не використовується в цьому рішенні.

Оптимізація гіперпараметрів

Це рішення додатково розширюється шляхом проведення HPO на GNN. Це робиться в SageMaker. Дивіться наступний код:

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

Потім ми встановлюємо мету тренування, щоб максимізувати рахунок F1 в цьому випадку:

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

Встановіть вибране середовище та навчальні ресурси на 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,
)

Нарешті, запустіть навчальне завдання з оптимізацією гіперпараметрів:

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

результати

Включення мережевих даних і оптимізація гіперпараметрів дає кращі результати. Показники ефективності в наступній таблиці демонструють переваги додавання CorpNet до стандартних табличних наборів даних, які використовуються для оцінки кредитної оцінки.

Результати для AutoGluon не використовують графік, а лише табличні дані. Коли ми додаємо дані графіка та використовуємо HPO, ми отримуємо матеріальний приріст у продуктивності.

Оцінка F1 РПЦ AUC Точність MCC Збалансована точність Точність Згадувати
Автоглюон 0.72 0.74323 0.68037 0.35233 0.67323 0.68528 0.75843
GCN без HPO 0.64 0.84498 0.69406 0.45619 0.71154 0.88177 0.50281
GCN з HPO 0.81 0.87116 0.78082 0.563 0.77081 0.75119 0.89045

(Примітка: MCC – це коефіцієнт кореляції Метьюза; https://en.wikipedia.org/wiki/Phi_coefficient.)

Прибирати

Після того, як ви закінчите використовувати цей блокнот, видаліть артефакти моделі та інші ресурси, щоб уникнути додаткових витрат. Вам потрібно вручну видалити ресурси, які ви могли створити під час роботи ноутбука, наприклад сегменти S3 для артефактів моделі, навчальні набори даних, артефакти обробки та Amazon CloudWatch журнальні групи.

Підсумки

У цій публікації ми представили в JumpStart рішення для оцінки кредитної оцінки на основі графіків, щоб допомогти вам прискорити ваш шлях ML. Ноутбук надає конвеєр, який ви можете змінювати та використовувати графіки з наявними табличними моделями для досягнення кращої продуктивності.

Щоб розпочати, ви можете знайти рішення для оцінки кредиту на основі графіка в JumpStart in Студія SageMaker.


Про авторів

Створіть корпоративний класифікатор кредитних рейтингів за допомогою машинного навчання графів у Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Доктор Санджів Дас є стипендіатом Amazon та професором фінансів та науки даних Террі в Університеті Санта-Клари. Він має аспірантуру в галузі фінансів (магістр філософії та доктора філософії Нью-Йоркського університету) та комп’ютерних наук (магістр Каліфорнійського університету в Берклі), а також ступінь MBA в Індійському інституті менеджменту в Ахмедабаді. До навчання він працював у сфері деривативів в Азіатсько-Тихоокеанському регіоні як віце-президент Citibank. Він працює над мультимодальним машинним навчанням у сфері фінансових додатків.

Створіть корпоративний класифікатор кредитних рейтингів за допомогою машинного навчання графів у Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Доктор Синь Хуан є прикладним науковцем для Amazon SageMaker JumpStart та Вбудовані алгоритми Amazon SageMaker. Він зосереджується на розробці масштабованих алгоритмів машинного навчання. Його наукові інтереси полягають у сферах обробки природної мови, глибокого навчання табличних даних та надійного аналізу непараметричної просторово-часової кластеризації.

Створіть корпоративний класифікатор кредитних рейтингів за допомогою машинного навчання графів у Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Соджі Адешіна є вченим-прикладником в AWS, де він розробляє моделі на основі нейронних мереж на графі для задач машинного навчання на графіках із додатками для шахрайства та зловживань, графіків знань, рекомендаційних систем і наук про життя. У вільний час любить читати та готувати.

Створіть корпоративний класифікатор кредитних рейтингів за допомогою машинного навчання графів у Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Патрік Янг є інженером з розробки програмного забезпечення в Amazon SageMaker. Він зосереджується на створенні інструментів і продуктів машинного навчання для клієнтів.

Часова мітка:

Більше від AWS Машинне навчання