قم بإنشاء خط أنابيب توصية الدُفعات باستخدام Amazon Personalize بدون رمز PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

قم بإنشاء خط أنابيب لتوصية الدُفعات باستخدام Amazon Personalize بدون رمز

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

ومع ذلك ، قد يكون من الصعب إنشاء نظام توصية فعال بسبب التعقيدات في تدريب النموذج واختيار الخوارزمية وإدارة النظام الأساسي. تخصيص أمازون تمكن المطورين من تحسين تفاعل العملاء من خلال توصيات مخصصة للمنتج والمحتوى دون الحاجة إلى خبرة في التعلم الآلي (ML). يمكن للمطورين البدء في إشراك العملاء على الفور باستخدام بيانات سلوك المستخدم الملتقطة. وراء الكواليس ، تفحص Amazon Personalize هذه البيانات ، وتحدد ما هو ذي مغزى ، وتختار الخوارزميات الصحيحة ، وتدرب ، وتحسن نموذج التخصيص المخصص لبياناتك ، وتقدم توصيات عبر نقطة نهاية API.

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

يوضح لك هذا المنشور كيفية استخدام خدمات AWS ليس فقط لإنشاء التوصيات ولكن أيضًا لتفعيل خط أنابيب توصية الدُفعة. نسير عبر الحل الشامل بدون سطر واحد من التعليمات البرمجية. نناقش موضوعين بالتفصيل:

حل نظرة عامة

في هذا الحل ، نستخدم موفي لينس مجموعة البيانات. تتضمن مجموعة البيانات هذه 86,000 تصنيفًا للأفلام من 2,113 مستخدمًا. نحاول استخدام هذه البيانات لإنشاء توصيات لكل من هؤلاء المستخدمين.

يعد إعداد البيانات أمرًا مهمًا للغاية لضمان حصولنا على بيانات سلوك العميل بتنسيق جاهز لتخصيص Amazon. تستخدم البنية الموصوفة في هذا المنشور AWS Glue ، وهي خدمة تكامل بيانات بدون خادم ، لإجراء تحويل البيانات الأولية إلى تنسيق جاهز لاستهلاك Amazon Personalize. يستخدم الحل Amazon Personalize لإنشاء توصيات مجمعة لجميع المستخدمين باستخدام الاستدلال الدفعي. نستخدم بعد ذلك سير عمل Step Functions بحيث يمكن تشغيل سير العمل الآلي عن طريق استدعاء Amazon Personalize APIs بطريقة قابلة للتكرار.

يوضح الرسم البياني التالي هذا الحل.مخطط العمارة

سنبني هذا الحل بالخطوات التالية:

  1. أنشئ وظيفة تحويل بيانات لتحويل بياناتنا الأولية باستخدام AWS Glue.
  2. قم ببناء حل Amazon Personalize باستخدام مجموعة البيانات المحولة.
  3. بناء سير عمل Step Functions لتنظيم توليد الاستدلالات المجمعة.

المتطلبات الأساسية المسبقة

أنت بحاجة إلى ما يلي لهذه الإرشادات التفصيلية:

أنشئ وظيفة تحويل البيانات لتحويل البيانات الأولية باستخدام AWS Glue

مع Amazon Personalize ، تحتاج بيانات الإدخال إلى مخطط معين وتنسيق ملف. يجب أن تكون البيانات من التفاعلات بين المستخدمين والعناصر بتنسيق CSV مع أعمدة محددة ، بينما يجب أن تكون قائمة المستخدمين الذين تريد إنشاء توصيات لهم بتنسيق JSON. في هذا القسم ، نستخدم AWS Glue Studio لتحويل بيانات الإدخال الأولية إلى الهياكل والتنسيق المطلوبين لتخصيص Amazon.

يوفر AWS Glue Studio واجهة رسومية مصممة لتسهيل إنشاء وظائف الاستخراج والتحويل والتحميل (ETL) وتشغيلها. يمكنك إنشاء أحمال عمل تحويل البيانات بشكل مرئي من خلال عمليات السحب والإفلات البسيطة.

نقوم أولاً بإعداد بيانات المصدر الخاصة بنا بتنسيق خدمة تخزين أمازون البسيطة (Amazon S3) ، ثم نقوم بتحويل البيانات بدون كود.

  1. في وحدة التحكم Amazon S3 ، أنشئ حاوية S3 بثلاثة مجلدات: خام ، ومُحَوَّل ، ومنسق.
  2. تحميل مجموعة بيانات MovieLens وقم بتحميل الملف غير المضغوط المسمى user_ratingmovies-timestamp.dat إلى الحاوية الخاصة بك ضمن المجلد الخام.
  3. في وحدة تحكم AWS Glue Studio ، اختر المشــاريــع في جزء التنقل.
  4. أختار مرئي مع المصدر والهدف، ثم اختر إنشاء.
  5. اختر العقدة الأولى المسماة مصدر البيانات - دلو S3. هذا هو المكان الذي نحدد فيه بيانات الإدخال الخاصة بنا.
  6. على خصائص مصدر البيانات علامة التبويب، حدد موقع S3 وتصفح للوصول إلى الملف الذي تم تحميله.
  7. في حالة تنسيق البيانات، اختر CSVولل محدد، اختر علامة التبويب.
    AWS الغراء ستوديو - S3
  8. يمكننا اختيار علامة تبويب مخطط الإخراج للتحقق من أن المخطط قد استنتج الأعمدة بشكل صحيح.
  9. إذا كان المخطط لا يتطابق مع توقعاتك ، فاختر تعديل لتحرير المخطط.
    AWS Glue Studio - الحقول

بعد ذلك ، نقوم بتحويل هذه البيانات لتتبع متطلبات مخطط Amazon Personalize.

  1. اختيار التحويل - تطبيق التعيين العقدة وعلى تحول علامة التبويب ، قم بتحديث مفتاح الهدف وأنواع البيانات.
    تتوقع Amazon Personalize ، على الأقل ، الهيكل التالي لـ مجموعة بيانات التفاعلات:
    • user_id (خيط)
    • item_id (خيط)
    • timestamp (طويل ، بتنسيق وقت عصر يونكس)
      AWS Glue Studio - تعيين الحقول

في هذا المثال ، نستبعد الأفلام ذات التصنيف الضعيف في مجموعة البيانات.

  1. للقيام بذلك ، قم بإزالة العقدة الأخيرة المسماة دلو S3 وأضف عقدة مرشح في ملف تحول علامة التبويب.
  2. اختار أضف حالة وتصفية البيانات حيث تصنيف <3.5.
    AWS Glue Studio - الإخراج

نعيد الآن كتابة الإخراج إلى Amazon S3.

  1. توسيع الهدف القائمة واختيار الأمازون S3.
  2. في حالة S3 الهدف الموقع، اختر المجلد المسمى transformed.
  3. اختار CSV كتنسيق ولاحقة الموقع المستهدف مع interactions/.

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

  1. اختيار التقديم العقدة مرة أخرى ، ثم قم بتوسيع تحول القائمة واختيار التقديم.
  2. قم بإسقاط كافة الحقول باستثناء user_id وأعد تسمية هذا الحقل إلى userId. تتوقع Amazon Personalize أن يتم تسمية هذا الحقل معرف المستخدم.
  3. توسيع الهدف القائمة مرة أخرى واختيار الأمازون S3.
  4. هذه المرة اختر JSON كتنسيق ، ثم اختر مجلد S3 المحول وألحقه بـ batch_users_input/.

ينتج عن هذا ملف JSON قائمة المستخدمين كمدخلات لتخصيص Amazon. يجب أن يكون لدينا الآن رسم تخطيطي مشابه لما يلي.

AWS Glue Studio - سير العمل بالكامل

نحن الآن جاهزون لتشغيل وظيفة التحويل الخاصة بنا.

  1. في وحدة تحكم IAM ، أنشئ دورًا يسمى دور خدمة الغراء وأرفق السياسات المُدارة التالية:
    • AWSGlueServiceRole
    • AmazonS3FullAccess

لمزيد من المعلومات حول كيفية إنشاء أدوار خدمة IAM ، ارجع إلى إنشاء دور لتفويض الأذونات لخدمة AWS.

  1. انتقل مرة أخرى إلى مهمة AWS Glue Studio الخاصة بك ، واختر ملف تفاصيل الوظيفة علامة التبويب.
  2. عيّن اسم الوظيفة كـ batch-personalize-input-transform-job.
  3. اختر دور IAM الذي تم إنشاؤه حديثًا.
  4. احتفظ بالقيم الافتراضية لكل شيء آخر.
    AWS Glue Studio - تفاصيل الوظيفة
  5. اختار حفظ.
  6. عندما تكون جاهزًا ، اختر يجري ومراقبة الوظيفة في أشواط علامة التبويب.
  7. عند اكتمال المهمة ، انتقل إلى وحدة التحكم Amazon S3 للتحقق من أن ملف الإخراج الخاص بك قد تم إنشاؤه بنجاح.

لقد قمنا الآن بتشكيل بياناتنا في الشكل والهيكل الذي يتطلبه Amazon Personalize. يجب أن تحتوي مجموعة البيانات المحولة على الحقول والتنسيق التاليين:

  • مجموعة بيانات التفاعلات - تنسيق CSV مع الحقول USER_ID, ITEM_ID, TIMESTAMP
  • مجموعة بيانات إدخال المستخدم - تنسيق JSON مع عنصر userId

قم ببناء حل Amazon Personalize باستخدام مجموعة البيانات المحولة

من خلال مجموعة بيانات التفاعلات وبيانات إدخال المستخدم بالتنسيق الصحيح ، يمكننا الآن إنشاء حل Amazon Personalize الخاص بنا. في هذا القسم ، نقوم بإنشاء مجموعة البيانات الخاصة بنا ، واستيراد البيانات الخاصة بنا ، ثم إنشاء وظيفة الاستدلال الدفعي. تنظم مجموعة البيانات الموارد في حاويات لمكونات Amazon Personalize.

  1. في وحدة تحكم Amazon Personalize ، اختر إنشاء مجموعة البيانات.
  2. في حالة نطاق، حدد Custom.
  3. اختار إنشاء مجموعة البيانات والمتابعة.
    تخصيص Amazon - أنشئ مجموعة بيانات

بعد ذلك ، قم بإنشاء مجموعة بيانات التفاعلات.

  1. أدخل اسم مجموعة البيانات وحدد إنشاء مخطط جديد.
  2. اختار إنشاء مجموعة البيانات والمتابعة.
    تخصيص Amazon - قم بإنشاء مجموعة بيانات التفاعلات

نقوم الآن باستيراد بيانات التفاعلات التي أنشأناها سابقًا.

  1. انتقل إلى حاوية S3 التي أنشأنا فيها مجموعة بيانات CSV للتفاعلات.
  2. على أذونات علامة التبويب ، أضف سياسة الوصول إلى الحاوية التالية حتى يتمكن Amazon Personalize من الوصول. قم بتحديث السياسة لتضمين اسم المستودع الخاص بك.
    {
       "Version":"2012-10-17",
       "Id":"PersonalizeS3BucketAccessPolicy",
       "Statement":[
          {
             "Sid":"PersonalizeS3BucketAccessPolicy",
             "Effect":"Allow",
             "Principal":{
                "Service":"personalize.amazonaws.com"
             },
             "Action":[
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject"
             ],
             "Resource":[
                "arn:aws:s3:::<your-bucket-name>",
                "arn:aws:s3:::<your-bucket-name> /*"
             ]
          }
       ]
    }

انتقل مرة أخرى إلى Amazon Personalize واختر قم بإنشاء مهمة استيراد مجموعة البيانات الخاصة بك. يجب الآن استيراد مجموعة بيانات التفاعلات الخاصة بنا إلى Amazon Personalize. انتظر حتى تكتمل مهمة الاستيراد بحالة نشطة قبل المتابعة إلى الخطوة التالية. يجب أن يستغرق هذا حوالي 8 دقائق.

  1. في وحدة تحكم Amazon Personalize ، اختر نبذة في جزء التنقل واختر خلق الحل.
    تخصيص أمازون - لوحة القيادة
  2. أدخل اسم الحل.
  3. في حالة نوع الحل، اختر توصية البند.
  4. في حالة وصفة، اختر ال aws-user-personalization وصفة.
  5. اختار إنشاء وتدريب الحل.
    تخصيص أمازون - ابتكر الحل

يتدرب الحل الآن مقابل مجموعة بيانات التفاعلات التي تم استيرادها باستخدام وصفة تخصيص المستخدم. مراقبة حالة هذه العملية تحت إصدارات الحل. انتظر حتى يكتمل قبل المتابعة. يجب أن يستغرق هذا حوالي 20 دقيقة.
تخصيص أمازون - الحالة

نقوم الآن بإنشاء وظيفة الاستدلال الجماعي الخاصة بنا ، والتي تولد توصيات لكل مستخدم موجود في إدخال JSON.

  1. في جزء التنقل ، أسفل موارد مخصصة، اختر وظائف الاستدلال دفعة واحدة.
  2. أدخل اسم الوظيفة ، و الحلول، اختر الحل الذي تم إنشاؤه مسبقًا.
  3. اختار إنشاء وظيفة استدلال دفعي.
    تخصيص Amazon - أنشئ وظيفة استدلال مجمعة
  4. في حالة تكوين بيانات الإدخال، أدخل مسار S3 حيث ملف batch_users_input يقع الملف.

هذا هو ملف JSON الذي يحتوي على userId.

  1. في حالة تكوين بيانات الإخراج مسار، اختر المسار المنسق في S3.
  2. اختار إنشاء وظيفة استدلال دفعي.

تستغرق هذه العملية حوالي 30 دقيقة. عند انتهاء المهمة ، يتم حفظ التوصيات الخاصة بكل مستخدم محدد في ملف إدخال المستخدم في موقع إخراج S3.

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

بناء سير عمل Step Functions لتنظيم سير عمل استدلال الدُفعة

لتنظيم خط الأنابيب الخاص بك ، أكمل الخطوات التالية:

  1. في وحدة التحكم في وظائف الخطوة ، اختر إنشاء آلة الدولة.
  2. أختار صمم سير عملك بشكل مرئي، ثم اختر التالى.
    AWS Step Functions - إنشاء سير العمل
  3. اسحب CreateDatasetImportJob العقدة من اليسار (يمكنك البحث عن هذه العقدة في مربع البحث) على اللوحة القماشية.
  4. اختر العقدة ، وسترى معلمات واجهة برمجة تطبيقات التكوين على اليمين. سجل ARN.
  5. أدخل القيم الخاصة بك في ملف معلمات API مربع الكتابة.

هذا يدعو إنشاء DatasetImportJob API مع قيم المعلمات التي تحددها.

سير عمل وظائف خطوات AWS

  1. اسحب CreateSolutionVersion عقدة على اللوحة القماشية.
  2. قم بتحديث معلمات API باستخدام ARN للحل الذي قمت بتدوينه.

يؤدي هذا إلى إنشاء إصدار حل جديد بالبيانات المستوردة حديثًا عن طريق استدعاء CreateSolutionVersion API.

  1. اسحب CreateBatchInferenceJob عقدة على اللوحة القماشية وتحديث بالمثل معلمات API مع القيم ذات الصلة.

تأكد من استخدام ملف $.SolutionVersionArn بناء الجملة لاسترداد معلمة ARN لإصدار الحل من الخطوة السابقة. يتم تمرير معلمات API هذه إلى ملف إنشاء BatchInferenceJob API.

سير عمل وظائف خطوات AWS

نحتاج إلى إنشاء منطق انتظار في سير عمل Step Functions للتأكد من انتهاء مهمة استنتاج دفعة التوصية قبل اكتمال سير العمل.

  1. ابحث عن عقدة الانتظار واسحبها.
  2. في التكوين ل ، أدخل 300 ثانية.

هذه قيمة اعتباطية. يجب عليك تغيير وقت الانتظار هذا وفقًا لحالة الاستخدام المحددة الخاصة بك.

  1. اختيار CreateBatchInferenceJob العقدة مرة أخرى وانتقل إلى ملف معالجة الخطأ علامة التبويب.
  2. في حالة يو كاتش أخطاء، أدخل Personalize.ResourceInUseException.
  3. في حالة الدولة الاحتياطية، اختر .

تمكننا هذه الخطوة من التحقق بشكل دوري من حالة الوظيفة ولا تخرج من الحلقة إلا عند اكتمال المهمة.

  1. في حالة مسار النتيجة، أدخل $.errorMessage.

هذا يعني بشكل فعال أنه عند تلقي استثناء "المورد قيد الاستخدام" ، تنتظر المهمة لمدة x ثانية قبل المحاولة مرة أخرى باستخدام نفس المدخلات.

سير عمل وظائف خطوات AWS

  1. اختار حفظ، ثم اختر ابدأ التنفيذ.

لقد نسقنا بنجاح خط أنابيب توصيات الدُفعات الخاص بنا لتخصيص Amazon. كخطوة اختيارية ، يمكنك استخدام أمازون إيفينت بريدج لجدولة مشغل سير العمل هذا على أساس منتظم. لمزيد من التفاصيل ، يرجى الرجوع إلى EventBridge (أحداث CloudWatch) لتغيير حالة تنفيذ وظائف الخطوة.

تنظيف

لتجنب تكبد رسوم في المستقبل ، احذف الموارد التي قمت بإنشائها لهذه الإرشادات التفصيلية.

وفي الختام

في هذا المنشور ، أوضحنا كيفية إنشاء خط أنابيب لتوصيات الدُفعات باستخدام مزيج من AWS Glue و Amazon Personalize و Step Functions ، دون الحاجة إلى سطر واحد من التعليمات البرمجية أو تجربة ML. استخدمنا AWS Glue لإعداد بياناتنا بالتنسيق الذي يتطلبه Amazon Personalize. ثم استخدمنا Amazon Personalize لاستيراد البيانات ، وإنشاء حل مع وصفة تخصيص المستخدم ، وإنشاء وظيفة استدلال جماعي تنشئ افتراضيًا من 25 توصية لكل مستخدم ، بناءً على التفاعلات السابقة. قمنا بعد ذلك بتنسيق هذه الخطوات باستخدام وظائف الخطوة حتى نتمكن من تشغيل هذه الوظائف تلقائيًا.

بالنسبة للخطوات التي يجب مراعاتها بعد ذلك ، يعد تقسيم المستخدم إحدى أحدث الوصفات في Amazon Personalize ، والتي قد ترغب في استكشافها لإنشاء شرائح مستخدم لكل صف من بيانات الإدخال. لمزيد من التفاصيل ، يرجى الرجوع إلى الحصول على توصيات مجمعة وشرائح المستخدم.


عن المؤلف

ماكسين وي

ماكسين وي هو مهندس حلول معمل البيانات في AWS. تعمل Maxine مع العملاء في حالات الاستخدام الخاصة بهم ، وتصمم حلولًا لحل مشاكل أعمالهم ، وتوجههم من خلال بناء نماذج أولية قابلة للتطوير. قبل رحلتها مع AWS ، ساعدت Maxine العملاء في تنفيذ مشاريع ذكاء الأعمال وتخزين البيانات وبحيرة البيانات في أستراليا.

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

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