Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence에서 그래프 기계 학습을 사용하여 기업 신용 등급 분류기를 구축합니다. 수직 검색. 일체 포함.

Amazon SageMaker JumpStart에서 그래프 기계 학습을 사용하여 기업 신용 등급 분류기 구축

오늘 우리는 금융 그래프 머신 러닝(ML)을 위한 새로운 솔루션을 출시합니다. Amazon SageMaker 점프스타트. JumpStart는 ML을 빠르게 시작하는 데 도움이 되며 몇 번의 클릭으로 교육 및 배포할 수 있는 가장 일반적인 사용 사례에 대한 솔루션 세트를 제공합니다.

새로운 JumpStart 솔루션(Graph-Based Credit Scoring)은 SEC 서류(긴 형식 텍스트 데이터)에서 기업 네트워크를 구성하고 이를 재무 비율(표 형식 데이터)과 결합하고 그래프 신경망(GNN)을 사용하여 신용을 구축하는 방법을 보여줍니다. 평가 예측 모델. 이 게시물에서는 신용 점수를 위해 완전히 사용자 지정 가능한 이 솔루션을 사용하여 그래프 ML 여정을 가속화할 수 있는 방법을 설명합니다. Graph ML은 기존의 테이블 형식 데이터 세트와 함께 네트워크 데이터를 사용할 수 있기 때문에 금융 ML의 유익한 영역이 되고 있습니다. 자세한 내용은 WSDM의 Amazon: 그래프 신경망의 미래.

솔루션 개요

이 솔루션에서 CorpNet(기업 네트워크의 약자)으로 표시된 그래프를 구성할 수 있는 비즈니스 연결에 대한 데이터를 활용하여 신용 점수를 향상시킬 수 있습니다. 그런 다음 이 그래프의 GNN과 노드에 대한 표 형식 기능 세트를 사용하여 그래프 ML 분류를 적용하여 네트워크 관계의 정보를 추가로 활용하여 더 나은 ML 모델을 구축할 수 있는지 확인할 수 있습니다. 따라서 이 솔루션은 공급망 관계 그래프, 소셜 네트워크 그래프 등을 사용하는 등 네트워크 데이터를 활용하는 비즈니스 모델에 대한 템플릿을 제공합니다.

이 솔루션은 기업 네트워크를 구성하고 종합 재무 데이터를 생성하여 몇 가지 새로운 아티팩트를 개발하고 두 가지 형태의 데이터를 결합하여 그래프 ML을 사용하여 모델을 생성합니다.

이 솔루션은 SEC 10-K/Q 파일링의 MD&A 섹션을 사용하여 연결된 회사 네트워크를 구성하는 방법을 보여줍니다. 유사한 미래 예측 진술을 가진 회사는 신용 이벤트에 연결될 가능성이 높습니다. 이러한 연결은 그래프로 표시됩니다. 그래프 노드 기능의 경우 솔루션은 Altman Z-점수 모델의 변수와 각 회사의 산업 범주를 사용합니다. 이는 데모용으로 제공되는 합성 데이터 세트로 제공됩니다. 그래프 데이터와 표 데이터는 GNN을 사용하여 등급 분류기를 맞추는 데 사용됩니다. 설명을 위해 그래프 정보가 있는 모델과 없는 모델의 성능을 비교합니다.

그래프 기반 신용 점수 솔루션 사용

JumpStart 사용을 시작하려면 다음을 참조하십시오. Amazon SageMaker 시작하기. 그래프 기반 신용 점수 솔루션용 JumpStart 카드는 다음을 통해 제공됩니다. 아마존 세이지 메이커 스튜디오.

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() 소스 노드 및 대상 노드 목록으로 구성된 그래프를 구성하는 데 도움이 됩니다.

등급 라벨은 투자 등급(AAA, AA, A, BBB)과 비투자 등급(BB, B, CCC, CC, C, 디). 여기서 D는 기본값을 나타냅니다.

데이터를 읽고 솔루션을 실행하는 전체 코드는 솔루션 노트북에 제공됩니다. 다음 스크린샷은 합성 테이블 형식 데이터의 구조를 보여줍니다.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence에서 그래프 기계 학습을 사용하여 기업 신용 등급 분류기를 구축합니다. 수직 검색. 일체 포함.

그래프 정보는 다음으로 전달됩니다. 딥 그래프 라이브러리 그래프 ML을 수행하기 위해 표 형식의 데이터와 결합됩니다. 자신의 그래프를 가져오는 경우 소스 노드와 대상 노드 세트로 제공하기만 하면 됩니다.

모델 훈련

비교를 위해 먼저 다음을 사용하여 테이블 형식 데이터에 대해서만 모델을 훈련합니다. 오토글루온, 기업의 신용 평가에 대한 전통적인 접근 방식을 모방합니다. 그런 다음 그래프 데이터를 추가하고 훈련에 GNN을 사용합니다. 전체 세부 정보는 노트북에 제공되며 이 게시물에서는 간략한 개요를 제공합니다. 노트북은 또한 선택된 참조와 함께 그래프 ML에 대한 빠른 개요를 제공합니다.

GNN 훈련은 다음과 같이 진행됩니다. 우리는 적응을 사용합니다 GraphSAGE 모델 Deep Graph Library에서 구현되었습니다.

  1. 다음에서 그래프 데이터 읽기 아마존 단순 스토리지 서비스 (Amazon S3) 및 CorpNet에 대한 소스 및 대상 노드 목록을 생성합니다.
  2. 그래프 노드 기능 세트를 읽습니다(훈련 및 테스트). 필요에 따라 데이터를 정규화합니다.
  3. 조정 가능한 하이퍼파라미터를 설정합니다. 하이퍼파라미터 최적화(HPO) 없이 GNN에 맞게 PyTorch를 실행하는 특수 그래프 ML 컨테이너를 호출합니다.
  4. HPO로 그래프 ML을 반복합니다.

구현을 간단하고 안정적으로 만들기 위해 다음 코드를 사용하여 컨테이너에서 모델 교육을 실행합니다(이 교육 코드 이전의 설정 코드는 솔루션 노트북에 있음).

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의 중요한 기능은 그래프의 일부가 아닌 새로운 관찰에 대한 귀납적 학습도 가능하지만 이 솔루션에서는 활용되지 않는다는 것입니다.

하이퍼 파라미터 최적화

이 솔루션은 GNN에서 HPO를 수행하여 더욱 확장됩니다. 이것은 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 점수 ROC AUC 정확성 MCC 균형 잡힌 정확도 Precision 소환
오토글루온 0.72 0.74323 0.68037 0.35233 0.67323 0.68528 0.75843
HPO가 없는 GCN 0.64 0.84498 0.69406 0.45619 0.71154 0.88177 0.50281
HPO가 있는 GCN 0.81 0.87116 0.78082 0.563 0.77081 0.75119 0.89045

(참고: MCC는 Matthews 상관 계수입니다. https://en.wikipedia.org/wiki/Phi_coefficient.)

정리

이 노트북 사용을 마친 후에는 추가 요금이 발생하지 않도록 모델 아티팩트 및 기타 리소스를 삭제하십시오. 모델 아티팩트, 교육 데이터 세트, 처리 아티팩트 및 아마존 클라우드 워치 로그 그룹.

요약

이 게시물에서는 그래프 ML 여정을 가속화하는 데 도움이 되는 JumpStart의 그래프 기반 신용 점수 솔루션을 소개했습니다. 노트북은 더 나은 성능을 얻기 위해 기존 테이블 형식 모델로 그래프를 수정하고 활용할 수 있는 파이프라인을 제공합니다.

시작하려면 다음의 JumpStart에서 그래프 기반 신용 점수 솔루션을 찾을 수 있습니다. SageMaker 스튜디오.


저자에 관하여

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence에서 그래프 기계 학습을 사용하여 기업 신용 등급 분류기를 구축합니다. 수직 검색. 일체 포함.산지브 다스 박사 아마존 학자이자 산타클라라 대학교의 재무 및 데이터 과학 테리 교수입니다. 그는 재무(뉴욕 대학교에서 석사 및 박사) 및 컴퓨터 공학(UC 버클리에서 석사)으로 대학원 학위를 취득했으며 아메다바드에 있는 인도 경영 연구소에서 MBA를 취득했습니다. 학자가 되기 전에는 Citibank에서 부사장으로 아시아 태평양 지역의 파생 상품 비즈니스에서 근무했습니다. 그는 금융 응용 분야에서 다중 모드 머신 러닝에 대해 연구하고 있습니다.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence에서 그래프 기계 학습을 사용하여 기업 신용 등급 분류기를 구축합니다. 수직 검색. 일체 포함.황신 박사 는 응용 과학자입니다. Amazon SageMaker 점프스타트Amazon SageMaker 내장 알고리즘. 그는 확장 가능한 기계 학습 알고리즘 개발에 중점을 둡니다. 그의 연구 관심 분야는 자연어 처리, 표 형식 데이터에 대한 딥 러닝, 비모수적 시공간 클러스터링에 대한 강력한 분석입니다.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence에서 그래프 기계 학습을 사용하여 기업 신용 등급 분류기를 구축합니다. 수직 검색. 일체 포함.아데시나 소지 그는 AWS의 응용 과학자로서 사기 및 남용, 지식 그래프, 추천 시스템, 생명 과학에 대한 애플리케이션을 사용하여 그래프 작업에 대한 기계 학습을 위한 그래프 신경망 기반 모델을 개발하고 있습니다. 여가 시간에는 독서와 요리를 즐깁니다.

Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence에서 그래프 기계 학습을 사용하여 기업 신용 등급 분류기를 구축합니다. 수직 검색. 일체 포함.패트릭 양 Amazon SageMaker의 소프트웨어 개발 엔지니어입니다. 그는 고객을 위한 머신 러닝 도구 및 제품 구축에 중점을 두고 있습니다.

타임 스탬프 :

더보기 AWS 기계 학습