Xây dựng trình phân loại xếp hạng tín dụng doanh nghiệp bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Xây dựng bộ phân loại xếp hạng tín dụng công ty bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart

Hôm nay, chúng tôi phát hành một giải pháp mới cho máy học đồ thị tài chính (ML) trong Khởi động Amazon SageMaker. JumpStart giúp bạn nhanh chóng bắt đầu với ML và cung cấp một bộ giải pháp cho các trường hợp sử dụng phổ biến nhất có thể được đào tạo và triển khai chỉ với một vài cú nhấp chuột.

Giải pháp JumpStart mới (Tính điểm tín dụng dựa trên đồ thị) trình bày cách xây dựng mạng công ty từ hồ sơ SEC (dữ liệu văn bản dạng dài), kết hợp điều này với tỷ lệ tài chính (dữ liệu dạng bảng) và sử dụng mạng nơ-ron biểu đồ (GNN) để xây dựng tín dụng đánh giá các mô hình dự đoán. Trong bài đăng này, chúng tôi giải thích cách bạn có thể sử dụng giải pháp hoàn toàn có thể tùy chỉnh này để tính điểm tín dụng, vì vậy bạn có thể đẩy nhanh hành trình ML biểu đồ của mình. Graph ML đang trở thành một lĩnh vực hiệu quả cho ML tài chính vì nó cho phép sử dụng dữ liệu mạng kết hợp với các bộ dữ liệu dạng bảng truyền thống. Để biết thêm thông tin, hãy xem Amazon tại WSDM: Tương lai của mạng nơ-ron đồ thị.

Tổng quan về giải pháp

Bạn có thể cải thiện việc chấm điểm tín dụng bằng cách khai thác dữ liệu về các mối liên kết kinh doanh, từ đó bạn có thể xây dựng một biểu đồ, được ký hiệu là CorpNet (viết tắt của mạng công ty) trong giải pháp này. Sau đó, bạn có thể áp dụng phân loại ML biểu đồ bằng cách sử dụng GNN trên biểu đồ này và bộ tính năng dạng bảng cho các nút, để xem liệu bạn có thể xây dựng mô hình ML tốt hơn bằng cách khai thác thêm thông tin trong các mối quan hệ mạng hay không. Do đó, giải pháp này cung cấp một khuôn mẫu cho các mô hình kinh doanh khai thác dữ liệu mạng, chẳng hạn như sử dụng đồ thị mối quan hệ chuỗi cung ứng, đồ thị mạng xã hội, v.v.

Giải pháp phát triển một số tạo tác mới bằng cách xây dựng mạng công ty và tạo dữ liệu tài chính tổng hợp, đồng thời kết hợp cả hai dạng dữ liệu để tạo mô hình sử dụng biểu đồ ML.

Giải pháp chỉ ra cách xây dựng một mạng lưới các công ty được kết nối bằng cách sử dụng phần MD&A từ hồ sơ 10-K / Q của SEC. Các công ty có tuyên bố hướng tới tương lai tương tự có khả năng được kết nối cho các sự kiện tín dụng. Các kết nối này được biểu diễn dưới dạng đồ thị. Đối với các tính năng của nút đồ thị, giải pháp sử dụng các biến trong mô hình điểm Z của Altman và danh mục ngành của từng công ty. Chúng được cung cấp trong một tập dữ liệu tổng hợp có sẵn cho mục đích trình diễn. Dữ liệu biểu đồ và dữ liệu dạng bảng được sử dụng để phù hợp với bộ phân loại xếp hạng bằng cách sử dụng GNN. Với mục đích minh họa, chúng tôi so sánh hiệu suất của các mô hình có và không có thông tin biểu đồ.

Sử dụng giải pháp Chấm điểm Tín dụng Dựa trên Đồ thị

Để bắt đầu sử dụng JumpStart, hãy xem Bắt đầu với Amazon SageMaker. Thẻ JumpStart cho giải pháp Tính điểm Tín dụng Dựa trên Đồ thị có sẵn thông qua Xưởng sản xuất Amazon SageMaker.

Xây dựng trình phân loại xếp hạng tín dụng doanh nghiệp bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

  1. Chọn thẻ mô hình, sau đó chọn Khởi động để bắt đầu giải pháp.
    Xây dựng trình phân loại xếp hạng tín dụng doanh nghiệp bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Giải pháp tạo ra một mô hình để suy luận và một điểm cuối để sử dụng với một sổ ghi chép.

  1. Chờ cho đến khi chúng sẵn sàng và trạng thái hiển thị là Complete.
  2. Chọn Mở Notebook để mở sổ ghi chép đầu tiên, dành cho đào tạo và triển khai điểm cuối.
    Xây dựng trình phân loại xếp hạng tín dụng doanh nghiệp bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Bạn có thể làm việc thông qua sổ ghi chép này để tìm hiểu cách sử dụng giải pháp này và sau đó sửa đổi nó cho các ứng dụng khác trên dữ liệu của riêng bạn. Giải pháp đi kèm với dữ liệu tổng hợp và sử dụng một tập hợp con của nó để làm ví dụ về các bước cần thiết để đào tạo mô hình, triển khai nó tới một điểm cuối và sau đó gọi điểm cuối để suy luận. Sổ tay cũng chứa mã để triển khai một điểm cuối của riêng bạn.

  1. Để mở sổ ghi chép thứ hai (dùng để suy luận), hãy chọn Sử dụng Endpoint trong Notebook bên cạnh tạo tác điểm cuối.

Trong sổ tay này, bạn có thể xem cách chuẩn bị dữ liệu để gọi điểm cuối ví dụ để thực hiện suy luận trên một loạt ví dụ.
Xây dựng trình phân loại xếp hạng tín dụng doanh nghiệp bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Điểm cuối trả về xếp hạng dự đoán, được sử dụng để đánh giá hiệu suất của mô hình, như được hiển thị trong ảnh chụp màn hình sau của khối mã cuối cùng của sổ ghi chép suy luận.
Xây dựng trình phân loại xếp hạng tín dụng doanh nghiệp bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Bạn có thể sử dụng giải pháp này làm mẫu cho mô hình xếp hạng tín dụng nâng cao bằng biểu đồ. Bạn không bị giới hạn đối với bộ tính năng trong ví dụ này — bạn có thể thay đổi cả dữ liệu biểu đồ và dữ liệu bảng cho trường hợp sử dụng của riêng mình. Mức độ thay đổi mã được yêu cầu là tối thiểu. Chúng tôi khuyên bạn nên làm việc thông qua ví dụ mẫu của chúng tôi để hiểu cấu trúc của giải pháp và sau đó sửa đổi nó nếu cần.

Giải pháp này chỉ dành cho mục đích trình diễn. Đây không phải là lời khuyên tài chính và không nên dựa vào đó là lời khuyên tài chính hoặc đầu tư. Các sổ ghi chép liên quan, bao gồm cả mô hình được đào tạo, sử dụng dữ liệu tổng hợp và không nhằm mục đích sử dụng cho sản xuất. Mặc dù văn bản từ hồ sơ SEC được sử dụng, dữ liệu tài chính được tạo ra một cách tổng hợp và ngẫu nhiên và không liên quan đến tài chính thực sự của bất kỳ công ty nào. Do đó, xếp hạng được tạo tổng hợp cũng không có bất kỳ liên quan nào đến xếp hạng thực sự của bất kỳ công ty thực sự nào.

Dữ liệu được sử dụng trong giải pháp

Tập dữ liệu có dữ liệu dạng bảng tổng hợp như các tỷ lệ kế toán khác nhau (số) và mã ngành (phân loại). Tập dữ liệu có 𝑁= 3286 hàng. Nhãn xếp hạng cũng được thêm vào. Đây là các tính năng nút được sử dụng với biểu đồ ML.

Tập dữ liệu cũng chứa một biểu đồ công ty, không có định hướng và không có trọng số. Giải pháp này cho phép bạn điều chỉnh cấu trúc của biểu đồ bằng cách thay đổi cách bao gồm các liên kết. Mỗi công ty trong tập dữ liệu dạng bảng được biểu thị bằng một nút trong biểu đồ công ty. Chức năng construct_network_data() giúp xây dựng biểu đồ, bao gồm danh sách các nút nguồn và nút đích.

Nhãn xếp hạng được sử dụng để phân loại bằng cách sử dụng GNN, có thể là nhiều danh mục cho tất cả xếp hạng hoặc nhị phân, được phân chia giữa cấp độ đầu tư (AAA, AA, A, BBB) và cấp độ phi đầu tư (BB, B, CCC, CC, C, D). D ở đây là viết tắt của defaulted.

Mã hoàn chỉnh để đọc dữ liệu và chạy giải pháp được cung cấp trong sổ ghi chép giải pháp. Ảnh chụp màn hình sau đây cho thấy cấu trúc của dữ liệu dạng bảng tổng hợp.

Xây dựng trình phân loại xếp hạng tín dụng doanh nghiệp bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Thông tin biểu đồ được chuyển đến Thư viện đồ thị sâu và kết hợp với dữ liệu dạng bảng để thực hiện ML biểu đồ. Nếu bạn mang biểu đồ của riêng mình, chỉ cần cung cấp nó dưới dạng một tập hợp các nút nguồn và nút đích.

Đào tạo người mẫu

Để so sánh, trước tiên chúng tôi chỉ đào tạo một mô hình dựa trên dữ liệu dạng bảng bằng cách sử dụng AutoGluon, bắt chước cách tiếp cận truyền thống để xếp hạng tín dụng của các công ty. Sau đó, chúng tôi thêm vào dữ liệu biểu đồ và sử dụng GNN để đào tạo. Chi tiết đầy đủ được cung cấp trong sổ ghi chép và tổng quan ngắn gọn được cung cấp trong bài đăng này. Sổ tay cũng cung cấp một cái nhìn tổng quan nhanh về biểu đồ ML với các tài liệu tham khảo được chọn.

Việc đào tạo GNN được thực hiện như sau. Chúng tôi sử dụng một bản điều chỉnh của Mô hình GraphSAGE được triển khai trong Thư viện đồ thị sâu.

  1. Đọc dữ liệu biểu đồ từ Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3) và tạo danh sách nút nguồn và nút đích cho CorpNet.
  2. Đọc trong bộ tính năng nút đồ thị (đào tạo và kiểm tra). Chuẩn hóa dữ liệu theo yêu cầu.
  3. Đặt siêu tham số có thể điều chỉnh được. Gọi đồ thị chuyên dụng ML vùng chứa chạy PyTorch để phù hợp với GNN mà không cần tối ưu hóa siêu tham số (HPO).
  4. Lặp lại đồ thị ML với HPO.

Để làm cho việc triển khai đơn giản và ổn định, chúng tôi chạy đào tạo mô hình trong một vùng chứa bằng cách sử dụng mã sau (mã thiết lập trước mã đào tạo này nằm trong sổ ghi chép giải pháp):

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

Quá trình đào tạo hiện tại được thực hiện trong một cài đặt chuyển đổi, trong đó các tính năng của tập dữ liệu kiểm tra (không bao gồm cột mục tiêu) được sử dụng để xây dựng biểu đồ và do đó các nút kiểm tra được đưa vào quá trình đào tạo. Khi kết thúc đào tạo, các dự đoán trên tập dữ liệu kiểm tra được tạo và lưu vào output_location trong nhóm S3.

Mặc dù quá trình đào tạo mang tính chuyển đổi, các nhãn của tập dữ liệu thử nghiệm không được sử dụng để đào tạo và bài tập của chúng tôi nhằm dự đoán các nhãn này bằng cách sử dụng các nút nhúng cho các nút của tập dữ liệu thử nghiệm. Một tính năng quan trọng của GraphSAGE là việc học quy nạp trên các quan sát mới không thuộc biểu đồ cũng có thể thực hiện được, mặc dù không được khai thác trong giải pháp này.

Tối ưu hóa siêu tham số

Giải pháp này được mở rộng hơn nữa bằng cách tiến hành HPO trên GNN. Điều này được thực hiện trong SageMaker. Xem đoạn mã sau:

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

Sau đó, chúng tôi thiết lập mục tiêu đào tạo, để tối đa hóa điểm F1 trong trường hợp này:

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

Thiết lập môi trường đã chọn và tài nguyên đào tạo trên 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,
)

Cuối cùng, chạy công việc đào tạo với tối ưu hóa siêu tham số:

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

Kết quả

Việc bao gồm dữ liệu mạng và tối ưu hóa siêu thông số mang lại kết quả được cải thiện. Các số liệu hiệu suất trong bảng sau đây cho thấy lợi ích của việc thêm trong CorpNet vào bộ dữ liệu dạng bảng tiêu chuẩn được sử dụng để chấm điểm tín dụng.

Kết quả cho AutoGluon không sử dụng biểu đồ, chỉ sử dụng dữ liệu dạng bảng. Khi chúng tôi thêm vào dữ liệu biểu đồ và sử dụng HPO, chúng tôi sẽ nhận được lợi ích đáng kể về hiệu suất.

Điểm F1 ROC AUC tính chính xác MCC Độ chính xác cân bằng Độ chính xác Nhớ lại
AutoGluon 0.72 0.74323 0.68037 0.35233 0.67323 0.68528 0.75843
GCN Không có HPO 0.64 0.84498 0.69406 0.45619 0.71154 0.88177 0.50281
GCN với HPO 0.81 0.87116 0.78082 0.563 0.77081 0.75119 0.89045

(Lưu ý: MCC là Hệ số tương quan Matthews; https://en.wikipedia.org/wiki/Phi_coefficient.)

Làm sạch

Sau khi bạn sử dụng xong sổ ghi chép này, hãy xóa phần tạo tác mô hình và các tài nguyên khác để tránh bị tính thêm phí. Bạn cần xóa thủ công các tài nguyên mà bạn có thể đã tạo trong khi chạy sổ ghi chép, chẳng hạn như nhóm S3 cho các tạo tác mô hình, tập dữ liệu đào tạo, xử lý tạo tác, và amazoncloudwatch các nhóm nhật ký.

Tổng kết

Trong bài đăng này, chúng tôi đã giới thiệu giải pháp tính điểm tín dụng dựa trên biểu đồ trong JumpStart để giúp bạn đẩy nhanh hành trình ML biểu đồ của mình. Sổ tay cung cấp một đường dẫn mà bạn có thể sửa đổi và khai thác các biểu đồ với các mô hình bảng hiện có để có được hiệu suất tốt hơn.

Để bắt đầu, bạn có thể tìm thấy giải pháp Chấm điểm Tín dụng Dựa trên Đồ thị trong JumpStart trong Studio SageMaker.


Về các tác giả

Xây dựng trình phân loại xếp hạng tín dụng doanh nghiệp bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Tiến sĩ Sanjiv Das là Học giả Amazon và Terry Giáo sư Tài chính và Khoa học Dữ liệu tại Đại học Santa Clara. Ông có bằng sau đại học về Tài chính (M.Phil và Tiến sĩ từ Đại học New York) và Khoa học Máy tính (MS từ UC Berkeley), và bằng MBA của Học viện Quản lý Ấn Độ, Ahmedabad. Trước khi là một học giả, ông đã làm việc trong lĩnh vực kinh doanh phái sinh ở khu vực Châu Á - Thái Bình Dương với tư cách là Phó Chủ tịch tại Citibank. Anh ấy làm việc trên máy học đa phương thức trong lĩnh vực ứng dụng tài chính.

Xây dựng trình phân loại xếp hạng tín dụng doanh nghiệp bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Tiến sĩ Xin Huang là một nhà khoa học ứng dụng cho Khởi động Amazon SageMakerCác thuật toán tích hợp sẵn của Amazon SageMaker. Ông tập trung vào việc phát triển các thuật toán học máy có thể mở rộng. Mối quan tâm nghiên cứu của anh ấy là trong các lĩnh vực xử lý ngôn ngữ tự nhiên, học sâu về dữ liệu dạng bảng và phân tích mạnh mẽ phân nhóm không-thời gian phi tham số.

Xây dựng trình phân loại xếp hạng tín dụng doanh nghiệp bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Soji Adeshina là Nhà khoa học ứng dụng tại AWS, nơi ông phát triển các mô hình dựa trên mạng nơ-ron đồ thị cho các nhiệm vụ máy học trên đồ thị với các ứng dụng để gian lận và lạm dụng, biểu đồ tri thức, hệ thống khuyến nghị và khoa học đời sống. Khi rảnh rỗi, anh ấy thích đọc sách và nấu ăn.

Xây dựng trình phân loại xếp hạng tín dụng doanh nghiệp bằng cách sử dụng máy học đồ thị trong Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Patrick Yang là Kỹ sư phát triển phần mềm tại Amazon SageMaker. Ông tập trung vào việc xây dựng các công cụ và sản phẩm máy học cho khách hàng.

Dấu thời gian:

Thêm từ Học máy AWS