Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart

Hoy lanzamos una nueva solución para el aprendizaje automático (ML) de gráficos financieros en JumpStart de Amazon SageMaker. JumpStart lo ayuda a comenzar rápidamente con ML y proporciona un conjunto de soluciones para los casos de uso más comunes que se pueden entrenar e implementar con solo unos pocos clics.

La nueva solución JumpStart (Graph-Based Credit Scoring) demuestra cómo construir una red corporativa a partir de archivos de la SEC (datos de texto de formato largo), combinar esto con índices financieros (datos tabulares) y usar redes neuronales gráficas (GNN) para generar crédito calificar los modelos de predicción. En esta publicación, explicamos cómo puede usar esta solución totalmente personalizable para la calificación crediticia, para que pueda acelerar su viaje de ML gráfico. Graph ML se está convirtiendo en un área fructífera para el ML financiero porque permite el uso de datos de red junto con conjuntos de datos tabulares tradicionales. Para más información, ver Amazon en WSDM: El futuro de las redes neuronales gráficas.

Resumen de la solución

Puede mejorar la calificación crediticia explotando los datos sobre los vínculos comerciales, para lo cual puede construir un gráfico, denominado CorpNet (abreviatura de red corporativa) en esta solución. A continuación, puede aplicar la clasificación de aprendizaje automático de gráficos utilizando GNN en este gráfico y un conjunto de características tabulares para los nodos, para ver si puede crear un mejor modelo de aprendizaje automático explotando aún más la información en las relaciones de red. Por lo tanto, esta solución ofrece una plantilla para modelos comerciales que explotan los datos de la red, como el uso de gráficos de relaciones de la cadena de suministro, gráficos de redes sociales y más.

La solución desarrolla varios artefactos nuevos mediante la construcción de una red corporativa y la generación de datos financieros sintéticos, y combina ambas formas de datos para crear modelos utilizando gráficos ML.

La solución muestra cómo construir una red de empresas conectadas utilizando la sección MD&A de las presentaciones SEC 10-K/Q. Es probable que las empresas con declaraciones prospectivas similares estén conectadas para eventos crediticios. Estas conexiones se representan en un gráfico. Para las características del nodo gráfico, la solución utiliza las variables del modelo de puntuación Z de Altman y la categoría de la industria de cada empresa. Estos se proporcionan en un conjunto de datos sintético disponible para fines de demostración. Los datos del gráfico y los datos tabulares se utilizan para ajustar un clasificador de calificación utilizando GNN. Con fines ilustrativos, comparamos el rendimiento de los modelos con y sin la información del gráfico.

Utilice la solución de calificación crediticia basada en gráficos

Para comenzar a utilizar JumpStart, consulte Primeros pasos con Amazon SageMaker. La tarjeta JumpStart para la solución de calificación crediticia basada en gráficos está disponible a través de Estudio Amazon SageMaker.

Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

  1. Elija el modelo de tarjeta, luego elija Más información para iniciar la solución.
    Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

La solución genera un modelo para inferencia y un punto final para usar con un cuaderno.

  1. Espere hasta que estén listos y el estado se muestre como Complete.
  2. Elige cuaderno abierto para abrir el primer cuaderno, que es para entrenamiento e implementación de puntos finales.
    Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Puede trabajar con este cuaderno para aprender a usar esta solución y luego modificarla para otras aplicaciones con sus propios datos. La solución viene con datos sintéticos y utiliza un subconjunto de ellos para ejemplificar los pasos necesarios para entrenar el modelo, implementarlo en un punto final y luego invocar el punto final para la inferencia. El cuaderno también contiene código para implementar un punto final propio.

  1. Para abrir el segundo cuaderno (utilizado para la inferencia), elija Usar Endpoint en Notebook junto al artefacto de punto final.

En este cuaderno, puede ver cómo preparar los datos para invocar el punto final de ejemplo para realizar inferencias en un lote de ejemplos.
Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

El punto de enlace devuelve calificaciones pronosticadas, que se utilizan para evaluar el rendimiento del modelo, como se muestra en la siguiente captura de pantalla del último bloque de código del cuaderno de inferencia.
Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Puede utilizar esta solución como plantilla para un modelo de calificación crediticia con gráficos mejorados. No está restringido al conjunto de características de este ejemplo: puede cambiar tanto los datos del gráfico como los datos tabulares para su propio caso de uso. La extensión de los cambios de código requeridos es mínima. Recomendamos trabajar con nuestro ejemplo de plantilla para comprender la estructura de la solución y luego modificarla según sea necesario.

Esta solución es solo para fines demostrativos. No es un consejo financiero y no debe considerarse como un consejo financiero o de inversión. Los cuadernos asociados, incluido el modelo entrenado, usan datos sintéticos y no están destinados para uso de producción. Aunque se utiliza el texto de las presentaciones de la SEC, los datos financieros se generan de forma sintética y aleatoria y no tienen relación con las finanzas reales de ninguna empresa. Por lo tanto, las calificaciones generadas sintéticamente tampoco tienen ninguna relación con la calificación real de ninguna empresa real.

Datos utilizados en la solución

El conjunto de datos tiene datos tabulares sintéticos, como varios índices contables (numéricos) y códigos de la industria (categóricos). El conjunto de datos tiene 𝑁=3286 filas. También se agregan etiquetas de calificación. Estas son las funciones de nodo que se utilizarán con el gráfico ML.

El conjunto de datos también contiene un gráfico corporativo, que no está dirigido ni ponderado. Esta solución le permite ajustar la estructura del gráfico variando la forma en que se incluyen los enlaces. Cada empresa en el conjunto de datos tabulares está representada por un nodo en el gráfico corporativo. La función construct_network_data() ayuda a construir el gráfico, que comprende listas de nodos de origen y nodos de destino.

Las etiquetas de calificación se utilizan para la clasificación mediante GNN, que pueden ser de varias categorías para todas las calificaciones o binarias, divididas entre grado de inversión (AAA, AA, A, BBB) y grado sin inversión (BB, B, CCC, CC, C, D). D aquí significa predeterminado.

El código completo para leer los datos y ejecutar la solución se proporciona en el cuaderno de soluciones. La siguiente captura de pantalla muestra la estructura de los datos tabulares sintéticos.

Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

La información del gráfico se pasa al Biblioteca de gráficos profundos y combinado con los datos tabulares para realizar el gráfico ML. Si trae su propio gráfico, simplemente proporciónelo como un conjunto de nodos de origen y nodos de destino.

Entrenamiento modelo

A modo de comparación, primero entrenamos un modelo solo en datos tabulares usando AutoGluón, imitando el enfoque tradicional de calificación crediticia de las empresas. Luego agregamos los datos del gráfico y usamos GNN para el entrenamiento. Los detalles completos se proporcionan en el cuaderno, y se ofrece una breve descripción general en esta publicación. El cuaderno también ofrece una descripción general rápida del gráfico ML con referencias seleccionadas.

El entrenamiento de la GNN se lleva a cabo de la siguiente manera. Utilizamos una adaptación del Modelo GraphSAGE implementado en Deep Graph Library.

  1. Leer datos de gráficos de Servicio de almacenamiento simple de Amazon (Amazon S3) y cree las listas de nodos de origen y destino para CorpNet.
  2. Leer en los conjuntos de características del nodo gráfico (entrenar y probar). Normalice los datos según sea necesario.
  3. Establecer hiperparámetros ajustables. Llame al contenedor de aprendizaje automático de gráficos especializado que ejecuta PyTorch para adaptarse a la GNN sin optimización de hiperparámetros (HPO).
  4. Repita el gráfico ML con HPO.

Para que la implementación sea sencilla y estable, ejecutamos el entrenamiento del modelo en un contenedor con el siguiente código (el código de configuración anterior a este código de entrenamiento se encuentra en el cuaderno de soluciones):

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

El proceso de entrenamiento actual se lleva a cabo en un entorno transductivo, donde las características del conjunto de datos de prueba (sin incluir la columna de destino) se utilizan para construir el gráfico y, por lo tanto, los nodos de prueba se incluyen en el proceso de entrenamiento. Al final del entrenamiento, las predicciones en el conjunto de datos de prueba se generan y guardan en output_location en el cubo S3.

Aunque el entrenamiento es transductivo, las etiquetas del conjunto de datos de prueba no se utilizan para el entrenamiento y nuestro ejercicio tiene como objetivo predecir estas etiquetas mediante incrustaciones de nodos para los nodos del conjunto de datos de prueba. Una característica importante de GraphSAGE es que también es posible el aprendizaje inductivo sobre nuevas observaciones que no forman parte del gráfico, aunque no se aprovecha en esta solución.

Optimización de hiperparámetros

Esta solución se amplía aún más mediante la realización de HPO en la GNN. Esto se hace dentro de SageMaker. Ver el siguiente código:

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

Luego configuramos el objetivo de entrenamiento, para maximizar el puntaje F1 en este caso:

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

Establezca el entorno elegido y los recursos de capacitación en 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,
)

Finalmente, ejecute el trabajo de entrenamiento con optimización de hiperparámetros:

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

Resultados

La inclusión de datos de red y la optimización de hiperparámetros produce mejores resultados. Las métricas de desempeño en la siguiente tabla demuestran el beneficio de agregar CorpNet a los conjuntos de datos tabulares estándar utilizados para la calificación crediticia.

Los resultados de AutoGluon no usan el gráfico, solo los datos tabulares. Cuando agregamos los datos del gráfico y usamos HPO, obtenemos una ganancia material en el rendimiento.

Puntuación F1 AUC de la República de China Exactitud MCC Precisión equilibrada Precisión Recordar
AutoGluón 0.72 0.74323 0.68037 0.35233 0.67323 0.68528 0.75843
GCN sin HPO 0.64 0.84498 0.69406 0.45619 0.71154 0.88177 0.50281
GCN con HPO 0.81 0.87116 0.78082 0.563 0.77081 0.75119 0.89045

(Nota: MCC es el coeficiente de correlación de Matthews; https://en.wikipedia.org/wiki/Phi_coefficient.)

Limpiar

Una vez que haya terminado de usar este bloc de notas, elimine los artefactos del modelo y otros recursos para evitar incurrir en cargos adicionales. Debe eliminar manualmente los recursos que haya creado mientras ejecutaba el cuaderno, como depósitos de S3 para artefactos de modelos, conjuntos de datos de entrenamiento, artefactos de procesamiento y Reloj en la nube de Amazon grupos de registro.

Resumen

En esta publicación, presentamos una solución de puntuación de crédito basada en gráficos en JumpStart para ayudarlo a acelerar su proceso de aprendizaje automático de gráficos. El cuaderno proporciona una canalización que puede modificar y explotar gráficos con modelos tabulares existentes para obtener un mejor rendimiento.

Para comenzar, puede encontrar la solución de calificación crediticia basada en gráficos en JumpStart en Estudio SageMaker.


Acerca de los autores

Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Dr. Sanjiv Das es becario de Amazon y profesor Terry de finanzas y ciencia de datos en la Universidad de Santa Clara. Tiene títulos de posgrado en Finanzas (M.Phil y Ph.D. de la Universidad de Nueva York) y Ciencias de la Computación (MS de UC Berkeley), y un MBA del Indian Institute of Management, Ahmedabad. Antes de ser académico, trabajó en el negocio de derivados en la región de Asia-Pacífico como vicepresidente de Citibank. Trabaja en aprendizaje automático multimodal en el área de aplicaciones financieras.

Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Dra. Xin Huang es un científico aplicado para JumpStart de Amazon SageMaker y Algoritmos integrados de Amazon SageMaker. Se centra en el desarrollo de algoritmos escalables de aprendizaje automático. Sus intereses de investigación se encuentran en las áreas de procesamiento de lenguaje natural, aprendizaje profundo en datos tabulares y análisis robusto de agrupamiento de espacio-tiempo no paramétrico.

Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Soji Adeshina es científico aplicado en AWS, donde desarrolla modelos basados ​​en redes neuronales gráficas para aprendizaje automático en tareas de gráficos con aplicaciones para fraude y abuso, gráficos de conocimiento, sistemas de recomendación y ciencias de la vida. En su tiempo libre le gusta leer y cocinar.

Cree un clasificador de calificaciones crediticias corporativas mediante el aprendizaje automático de gráficos en Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.patricio yang es ingeniero de desarrollo de software en Amazon SageMaker. Se centra en la creación de herramientas y productos de aprendizaje automático para los clientes.

Sello de tiempo:

Mas de Aprendizaje automático de AWS