تدريب Wide &Deep Recommender

توضح هذه المقالة كيفية استخدام مكون Train Wide & Deep Recommender في مصمم Azure التعلم الآلي، لتدريب نموذج توصية. يعتمد هذا المكون على التعلم الواسع والعميق، والذي اقترحته Google.

يقرأ المكون Train Wide & Deep Recommender مجموعة بيانات من ثلاثة أضعاف تصنيف عنصر المستخدم، واختياريا، بعض ميزات المستخدم والعنصر. يقوم بإرجاع توصية واسعة وعميقة مدربة. يمكنك بعد ذلك استخدام النموذج المدرب لإنشاء تنبؤات أو توصيات بالتقييم باستخدام مكون Score Wide وDeep Recommender.

المزيد حول نماذج التوصية والتوصية العريضة والعميقة

الهدف الرئيسي من نظام التوصيات هو التوصية بعنصر أو أكثرلمستخدمي النظام. يمكن أن تكون أمثلة أحد العناصر فيلماً أو مطعماً أو كتاباً أو أغنية. يمكن أن يكون المستخدم شخصاً أو مجموعة من الأشخاص أو كياناً آخر له تفضيلات العناصر.

هناك طريقتان رئيسيتان لأنظمة التوصية.

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

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

كيف يعمل هذا: عندما يكون المستخدم جديداً نسبياً على النظام، يتم تحسين التنبؤات من خلال الاستفادة من معلومات الميزة حول المستخدم، وبالتالي معالجة مشكلة "البداية غير السريعة" المعروفة. ومع ذلك، بمجرد قيامك بجمع عدد كافٍ من التقييمات من مستخدم معين، فمن الممكن عمل تنبؤات مخصصة بالكامل لهم بناءً على تقييماتهم المحددة بدلاً من ميزاتهم وحدها. وبالتالي، هناك انتقال سلس من التوصيات المستندة إلى المحتوى إلى التوصيات المستندة إلى التصفية التعاونية. حتى إذا لم تتوفر ميزات المستخدم أو العنصر، فسيظل Wide & Deep recommender يعمل في وضع التصفية التعاوني الخاص به.

يمكن العثور على مزيد من التفاصيل حول أداة التوصية العريضة والعميقة والخوارزمية الاحتمالية الأساسية في ورقة البحث ذات الصلة: التعلم الواسع والعميق لأنظمة التوصية.

كيفية تكوين Train Wide و Deep Recommender

إعداد البيانات

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

مجموعة البيانات المطلوبة لتصنيفات عناصر المستخدم

يجب أن تحتوي بيانات الإدخال المستخدمة للتدريب على النوع الصحيح من البيانات بالتنسيق الصحيح:

  • يجب أن يحتوي العمود الأول على معرفات المستخدم.
  • يجب أن يحتوي العمود الثاني على معرفات العناصر.
  • يحتوي العمود الثالث على تصنيف زوج عنصر المستخدم. يجب أن تكون قيم التصنيف من النوع الرقمي.

على سبيل المثال، قد تبدو مجموعة نموذجية من تقييمات عناصر المستخدم كما يلي:

معرف المستخدم MovieId التقييم
1 68646 10
223 31381 10

مجموعة بيانات ميزات المستخدم (اختياري)

يجب أن تحتوي مجموعة بيانات ميزات المستخدم على معرفات للمستخدمين، وأن تستخدم نفس المعرفات التي تم توفيرها في العمود الأول من مجموعة بيانات المستخدمين-عناصر-تقييمات. يمكن أن تحتوي الأعمدة المتبقية على أي عدد من الميزات التي تصف المستخدمين.

على سبيل المثال، قد تبدو مجموعة نموذجية من ميزات المستخدم كما يلي:

معرف المستخدم العمر النوع الفائدة الموقع
1 25 ‏‏ذكر Drama ‏‏أوروبا
223 40 أنثى Romance آسيا

مجموعة بيانات ميزات العنصر (اختياري)

يجب أن تحتوي مجموعة البيانات الخاصة بميزات العنصر على معرفات العناصر في عمودها الأول. يمكن أن تحتوي الأعمدة المتبقية على أي عدد من الميزات الوصفية للعناصر.

على سبيل المثال، قد تبدو مجموعة نموذجية من ميزات العنصر كما يلي:

MovieId المسمى الوظيفي اللغة الأصلية Genres Year
68646 الأب الروحي العربية Drama 1972
31381 ذهب مع الريح العربية محفوظات 1939

التدريب على النموذج

  1. أضف مكوِّن Train Wide and Deep Recommender إلى تجربتك في المصمم، وربطها بمجموعة بيانات التدريب.

  2. إذا كانت لديك مجموعة بيانات منفصلة لميزات المستخدم و/أو ميزات العنصر، فقم بتوصيلها بمكوِّن Train Wide and Deep التوصية.

    • مجموعة بيانات ميزات المستخدم: قم بتوصيل مجموعة البيانات التي تصف المستخدمين بالإدخال الثاني.
    • مجموعة بيانات ميزات العنصر: قم بتوصيل مجموعة البيانات التي تصف العناصر بالإدخال الثالث.
  3. Epochs: تشير إلى عدد المرات التي يجب أن تعالج فيها الخوارزمية بيانات التدريب بالكامل.

    وكلما زاد هذا العدد، كان التدريب أكثر ملاءمة؛ ومع ذلك، فإن التدريب يكلف المزيد من الوقت وقد يتسبب في فرط التجهيز.

  4. Batch size: اكتب عدد أمثلة التدريب المستخدمة في خطوة تدريب واحدة.

    يمكن أن تؤثر هذه المعلمة الفائقة على سرعة التدريب. يؤدي حجم الدُفعة الأكبر إلى فترة زمنية أقل تكلفة، ولكنه قد يزيد من وقت التقارب. وإذا كانت الدُفعة كبيرة جداً بحيث لا تتناسب مع GPU/CPU، فقد يظهر خطأ في الذاكرة.

  5. Wide part optimizer: حدد مُحسِّناً واحداً لتطبيق التدرجات اللونية على الجزء العريض من النموذج.

  6. Wide optimizer learning rate: أدخل رقماً بين 0.0 و2.0 يحدد معدل التعلم لمحسن الجزء الواسع.

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

  7. Crossed feature dimension: اكتب البُعد عن طريق إدخال معرفات المستخدم المطلوبة وميزات معرف العنصر.

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

  8. Deep part optimizer: حدد مُحسِّناً واحداً لتطبيق التدرجات اللونية على الجزء العميق من النموذج.

  9. Deep optimizer learning rate: أدخل رقماً بين 0.0 و2.0 يحدد معدل التعلم لمحسن الأجزاء العميقة.

  10. User embedding dimension: اكتب عدداً صحيحاً لتحديد بُعد تضمين معرف المستخدم.

    يقوم التوصي العريض والعميق بإنشاء تضمينات معرف المستخدم المشترك وتضمين معرف العنصر لكل من الجزء العريض والجزء العميق.

  11. Item embedding dimension: اكتب عدداً صحيحاً لتحديد بُعد تضمين معرف العنصر.

  12. Categorical features embedding dimension: أدخل عدداً صحيحاً لتحديد أبعاد عمليات تضمين المعالم المصنفة.

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

  13. الوحدات المخفية: اكتب عدد العقد المخفية للمكون العميق. يتم فصل رقم العقد في كل طبقة بفاصلات. على سبيل المثال، حسب النوع "1000500100"، فإنك تحدد المكون العميق الذي يحتوي على ثلاث طبقات، حيث تحتوي الطبقة الأولى حتى الأخيرة على 1000 عقدة و500 عقدة و100 عقدة على التوالي.

  14. وظيفة التنشيط: حدد وظيفة تنشيط واحدة مطبقة على كل طبقة، والوظيفة الافتراضية هي ReLU.

  15. التسرب: أدخل رقماً بين 0.0 و1.0 لتحديد احتمال إسقاط النواتج في كل طبقة أثناء التدريب.

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

  16. تسوية الدُفعات: حدد هذا الخيار لاستخدام تسوية الدُفعات بعد كل طبقة مخفية في المكون العميق.

    تطبيع الدُفعات هو أسلوب لمحاربة مشكلة التحول المتغير الداخلي أثناء تدريب الشبكات. بشكل عام، يمكن أن يساعد في تحسين سرعة وأداء واستقرار الشبكات.

  17. تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.

الملاحظات التقنية

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

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

الخطوات التالية

راجع مجموعة المكونات المتوفرة للتعلم الآلي من Microsoft Azure.