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

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

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

Новое решение JumpStart (кредитный скоринг на основе графиков) демонстрирует, как построить корпоративную сеть на основе документов SEC (длинные текстовые данные), объединить их с финансовыми коэффициентами (табличные данные) и использовать нейронные сети графов (GNN) для построения кредита. модели прогнозирования рейтингов. В этом посте мы объясняем, как вы можете использовать это полностью настраиваемое решение для кредитного скоринга, чтобы ускорить процесс графического машинного обучения. Graph ML становится плодотворной областью финансового машинного обучения, поскольку позволяет использовать сетевые данные в сочетании с традиционными наборами табличных данных. Для получения дополнительной информации см. Amazon на WSDM: будущее графовых нейронных сетей.

Обзор решения

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

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

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

Используйте решение для кредитного скоринга на основе графиков

Чтобы начать использовать JumpStart, см. Начало работы с Amazon SageMaker. Карточку JumpStart для решения по графическому кредитному скорингу можно получить через Студия Amazon SageMaker.

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

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

Решение генерирует модель для вывода и конечную точку для использования с записной книжкой.

  1. Подождите, пока они будут готовы, и статус отобразится как Complete.
  2. Выберите Открыть блокнот чтобы открыть первую записную книжку, предназначенную для обучения и развертывания конечных точек.
    Создайте классификатор корпоративных кредитных рейтингов с помощью машинного обучения графов в Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

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

  1. Чтобы открыть вторую записную книжку (используемую для вывода), выберите Использовать конечную точку в записной книжке рядом с артефактом конечной точки.

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

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

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

Это решение предназначено только для демонстрационных целей. Это не финансовый совет, и на него не следует полагаться как на финансовый или инвестиционный совет. Связанные записные книжки, включая обученную модель, используют синтетические данные и не предназначены для промышленного использования. Хотя используется текст из документов SEC, финансовые данные генерируются синтетически и случайным образом и не имеют никакого отношения к реальным финансовым показателям какой-либо компании. Таким образом, синтетически сгенерированные рейтинги также не имеют никакого отношения к реальному рейтингу какой-либо компании.

Данные, используемые в решении

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

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

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

Полный код для чтения данных и запуска решения представлен в записной книжке решения. На следующем снимке экрана показана структура синтетических табличных данных.

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

Информация о графике передается в Библиотека Deep Graph и в сочетании с табличными данными построить график ML. Если вы используете свой собственный граф, просто укажите его как набор исходных и целевых узлов.

Модельное обучение

Для сравнения мы сначала обучаем модель только на табличных данных, используя АвтоГлюон, имитируя традиционный подход к кредитному рейтингу компаний. Затем мы добавляем данные графа и используем GNN для обучения. Полная информация представлена ​​в блокноте, а краткий обзор предлагается в этом посте. Блокнот также предлагает краткий обзор графика ML с избранными ссылками.

Обучение ГНС осуществляется следующим образом. Мы используем адаптацию Модель 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),
}

Затем мы установили цель обучения, чтобы в данном случае максимизировать результат Формулы-1:

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 РПЦ АУК точность MCC Сбалансированная точность Точность Вспоминать
АвтоГлюон 0.72 0.74323 0.68037 0.35233 0.67323 0.68528 0.75843
GCN без ГПО 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, которое поможет вам ускорить процесс графического машинного обучения. В блокноте предусмотрен конвейер, с помощью которого вы можете изменять и использовать графики с существующими табличными моделями для повышения производительности.

Для начала вы можете найти решение для кредитного скоринга на основе графиков в JumpStart в Студия SageMaker.


Об авторах

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

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

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

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

Отметка времени:

Больше от Машинное обучение AWS