قم ببناء مصنف تصنيفات ائتمانية للشركات باستخدام التعلم الآلي للرسم البياني في Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

قم ببناء مصنف تصنيفات ائتمانية للشركات باستخدام التعلم الآلي للرسم البياني في Amazon SageMaker JumpStart

اليوم ، نطلق حلاً جديدًا للتعلم الآلي للرسم البياني المالي (ML) في أمازون سيج ميكر جومب ستارت. تساعدك JumpStart على البدء بسرعة مع ML وتوفر مجموعة من الحلول لحالات الاستخدام الأكثر شيوعًا التي يمكن تدريبها ونشرها ببضع نقرات فقط.

يوضح حل JumpStart الجديد (التقييم الائتماني المستند إلى الرسم البياني) كيفية إنشاء شبكة شركة من ملفات SEC (بيانات نصية طويلة الشكل) ، ودمجها مع النسب المالية (البيانات الجدولية) ، واستخدام الشبكات العصبية للرسم البياني (GNNs) لبناء الائتمان نماذج التنبؤ التصنيف. في هذا المنشور ، نشرح كيف يمكنك استخدام هذا الحل القابل للتخصيص بالكامل لتسجيل الائتمان ، حتى تتمكن من تسريع رحلة تعلم الرسم البياني. أصبح Graph ML مجالًا مثمرًا للتعلم المالي لأنه يتيح استخدام بيانات الشبكة جنبًا إلى جنب مع مجموعات البيانات المجدولة التقليدية. لمزيد من المعلومات، راجع أمازون في WSDM: مستقبل الشبكات العصبية للرسم البياني.

حل نظرة عامة

يمكنك تحسين درجة الائتمان من خلال استغلال البيانات الموجودة على الروابط التجارية ، والتي يمكنك إنشاء رسم بياني لها ، يُشار إليه باسم CorpNet (اختصار لشبكة الشركة) في هذا الحل. يمكنك بعد ذلك تطبيق تصنيف ML للرسم البياني باستخدام GNNs في هذا الرسم البياني ومجموعة ميزات جدولة للعقد ، لمعرفة ما إذا كان يمكنك بناء نموذج ML أفضل من خلال زيادة استغلال المعلومات في علاقات الشبكة. لذلك ، يقدم هذا الحل نموذجًا لنماذج الأعمال التي تستغل بيانات الشبكة ، مثل استخدام الرسوم البيانية لعلاقة سلسلة التوريد والرسوم البيانية للشبكات الاجتماعية والمزيد.

يطور الحل العديد من القطع الأثرية الجديدة من خلال إنشاء شبكة شركة وإنشاء بيانات مالية تركيبية ، ويجمع كلا شكلي البيانات لإنشاء نماذج باستخدام الرسم البياني ML.

يوضح الحل كيفية إنشاء شبكة من الشركات المتصلة باستخدام قسم MD&A من ملفات SEC 10-K / Q. من المرجح أن تكون الشركات التي لديها بيانات تطلعية مماثلة مرتبطة بأحداث ائتمانية. يتم تمثيل هذه الاتصالات في رسم بياني. بالنسبة لميزات عقدة الرسم البياني ، يستخدم الحل المتغيرات في نموذج Altman Z-Score وفئة الصناعة لكل شركة. يتم توفيرها في مجموعة بيانات تركيبية متاحة لأغراض العرض التوضيحي. تُستخدم بيانات الرسم البياني والبيانات المجدولة لتلائم مصنف التصنيف باستخدام شبكات 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() يساعد في إنشاء الرسم البياني ، الذي يتألف من قوائم العقد المصدر وعقد الوجهة.

تُستخدم ملصقات التصنيف للتصنيف باستخدام GNNs ، والتي يمكن أن تكون متعددة الفئات لجميع التصنيفات أو ثنائية ، مقسمة بين الدرجة الاستثمارية (AAA ، AA ، A ، BBB) والدرجة غير الاستثمارية (BB ، B ، CCC ، CC ، C ، د). D هنا تعني المتعثرين.

يتم توفير الكود الكامل لقراءة البيانات وتشغيل الحل في دفتر ملاحظات الحل. تُظهر لقطة الشاشة التالية بنية البيانات الجدولية التركيبية.

قم ببناء مصنف تصنيفات ائتمانية للشركات باستخدام التعلم الآلي للرسم البياني في Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

يتم تمرير معلومات الرسم البياني إلى مكتبة الرسم البياني العميق ودمجت مع البيانات المجدولة لإجراء ML الرسم البياني. إذا قمت بإحضار الرسم البياني الخاص بك ، فما عليك سوى توفيره كمجموعة من العقد المصدر وعقد الوجهة.

تدريب نموذجي

للمقارنة ، نقوم أولاً بتدريب نموذج فقط على البيانات الجدولية باستخدام AutoGluon، بمحاكاة النهج التقليدي للتصنيف الائتماني للشركات. ثم نضيف بيانات الرسم البياني ونستخدم شبكات GNN للتدريب. يتم توفير التفاصيل الكاملة في دفتر الملاحظات ، ويتم تقديم نظرة عامة موجزة في هذا المنشور. يوفر الكمبيوتر المحمول أيضًا نظرة عامة سريعة على الرسم البياني ML مع المراجع المختارة.

يتم تدريب GNN على النحو التالي. نحن نستخدم تكييف نموذج GraphSAGE تم تنفيذها في مكتبة الرسم البياني العميق.

  1. قراءة في بيانات الرسم البياني من خدمة تخزين أمازون البسيطة (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 هي أن التعلم الاستقرائي على الملاحظات الجديدة التي ليست جزءًا من الرسم البياني ممكن أيضًا ، على الرغم من عدم استغلاله في هذا الحل.

تحسين Hyperparameter

يتم تمديد هذا الحل عن طريق إجراء 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 روك الجامعة الأمريكية دقة MCC دقة متوازنة دقة تذكر
AutoGluon 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 للقطع الأثرية للنماذج ومجموعات بيانات التدريب ومعالجة العناصر الأثرية و الأمازون CloudWatch مجموعات السجل.

نبذة عامة

في هذا المنشور ، قدمنا ​​حلاً لتسجيل الائتمان قائم على الرسم البياني في JumpStart لمساعدتك على تسريع رحلة تعلم الرسم البياني الخاصة بك. يوفر الكمبيوتر الدفتري خط أنابيب يمكنك تعديله واستغلال الرسوم البيانية باستخدام النماذج المجدولة الحالية للحصول على أداء أفضل.

للبدء ، يمكنك العثور على حل تسجيل الائتمان المستند إلى الرسم البياني في JumpStart في استوديو SageMaker.


حول المؤلف

قم ببناء مصنف تصنيفات ائتمانية للشركات باستخدام التعلم الآلي للرسم البياني في Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. البحث العمودي. عاي.د. سانجيف داس هو باحث في أمازون وأستاذ تيري للتمويل وعلوم البيانات في جامعة سانتا كلارا. وهو حاصل على درجات دراسات عليا في العلوم المالية (ماجستير ودكتوراه من جامعة نيويورك) وعلوم الكمبيوتر (ماجستير من جامعة كاليفورنيا في بيركلي) ، وماجستير في إدارة الأعمال من المعهد الهندي للإدارة ، أحمد آباد. قبل أن يصبح أكاديميًا ، عمل في مجال المشتقات في منطقة آسيا والمحيط الهادئ كنائب رئيس في Citibank. يعمل على التعلم الآلي متعدد الوسائط في مجال التطبيقات المالية.

قم ببناء مصنف تصنيفات ائتمانية للشركات باستخدام التعلم الآلي للرسم البياني في Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. البحث العمودي. عاي.الدكتور شين هوانغ هو عالم تطبيقي ل أمازون سيج ميكر جومب ستارت و خوارزميات Amazon SageMaker المضمنة. إنه يركز على تطوير خوارزميات التعلم الآلي القابلة للتطوير. تتركز اهتماماته البحثية في مجالات معالجة اللغة الطبيعية ، والتعلم العميق على البيانات المجدولة ، والتحليل القوي لتجميع الزمكان غير المعياري.

قم ببناء مصنف تصنيفات ائتمانية للشركات باستخدام التعلم الآلي للرسم البياني في Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. البحث العمودي. عاي.سوجي أديشينا هو عالم تطبيقي في AWS ، حيث طور نماذج قائمة على الشبكة العصبية للرسم البياني للتعلم الآلي في مهام الرسوم البيانية مع تطبيقات الاحتيال وإساءة الاستخدام والرسوم البيانية المعرفية وأنظمة التوصية وعلوم الحياة. في أوقات فراغه ، يستمتع بالقراءة والطبخ.

قم ببناء مصنف تصنيفات ائتمانية للشركات باستخدام التعلم الآلي للرسم البياني في Amazon SageMaker JumpStart PlatoBlockchain Data Intelligence. البحث العمودي. عاي.باتريك يانغ هو مهندس تطوير برمجيات في Amazon SageMaker. يركز على بناء أدوات ومنتجات التعلم الآلي للعملاء.

الطابع الزمني:

اكثر من التعلم الآلي من AWS