كيف أنشأنا البنية التحتية لتشغيل توقعات المستخدم في Spotify

TL؛ DR مع التوسع العالمي السريع لـ Spotify إلى أكثر من 180 دولة، من الأهمية بمكان أن تلبي البنية التحتية لتوقعات المستخدم احتياجات العمل.
مع تطور الأعمال التجارية، نحتاج إلى بنية تحتية يمكن أن تلبي الاحتياجات المتنوعة لأصحاب المصلحة عبر الشركة. لتمكين التكرارات السريعة وتسهيل تدريب النموذج، قمنا ببناء نظام يسمح لتوقعات المستخدم بالعمل عند الطلب وتلقائيًا كل أسبوع، مع تشغيل جزء الضبط الثقيل للمعلمات الفائقة في عطلة نهاية الأسبوع.
ينشئ النظام تصورات ورؤى آلية للمعلومات السطحية، ويوفر أدوات سهلة الاستخدام للتدخلات اليدوية لكل من علماء البيانات وأصحاب المصلحة في الأعمال.
خلفية
في Spotify ، يتم توقع العديد من المقاييس الرئيسية للشركة كل ثلاثة أشهر أو أسبوعيًا أو يوميًا لمساعدة الأعمال في مراقبة أداء الأعمال واتخاذ قرارات العمل وتحسين عروض منتجاتنا.
قد يكون من الصعب التنبؤ ببعض هذه المقاييس نظرًا لخصائصها المتقلبة وتشكل مشكلات التنبؤ بالسلسلة الزمنية المثيرة للاهتمام.
تعد توقعات المستخدم أحد هذه المقاييس، وهي مهمة بشكل خاص للحصول على أكبر قدر ممكن من الدقة نظرًا لأنها تساعد في اتخاذ القرارات التجارية وتعد واحدة من أكثر مؤشرات صحة الأعمال استخدامًا.
في الربع الأول من عام 2020، بدأنا عملية ترقية بنيتنا التحتية بهدف الحصول على تنبؤات آلية عالية الجودة على مستوى السوق يمكن تشغيلها أسبوعيًا وعند الطلب.
بحلول الربع الرابع من عام 2020، تم تنفيذ النماذج المكتملة بالكامل مع ضبط متقدم للمعلمات الفائقة، مما يسمح بتكرار أسرع وتحسين مراقبة الجودة – العمليات التي تستغرق عادةً عدة أشهر للتشغيل على جهاز واحد يتم ضبطها الآن في غضون ساعات قليلة.
لضمان خلو النظام من الأخطاء، قمنا بفصل المنطق الأساسي عن تعديلات وقت التشغيل والتجارب، وقمنا ببناء اختبارات تكامل وتصورات للمساعدة في اكتشاف الحالات الشاذة من منظور الأعمال.
بنية تحتية

على مستوى عالٍ، بعد تشغيل ضمان الجودة على بيانات الإدخال، ينقسم خط الأنابيب إلى ثلاث مسارات عمل: الأسواق الناضجة والأسواق الجديدة والنماذج المخصصة.
الأسواق الناضجة
تتمتع الأسواق الناضجة بتاريخ قوي وهي قادرة على تشغيل نماذج السلاسل الزمنية، مما يسمح لنا بتعلم الأنماط من التاريخ بما في ذلك تغييرات الاتجاه، والتغيرات الموسمية، وتأثير العطلات، وما إلى ذلك.
الخطوة الأولى في مسار عمل السوق الناضج هي معالجة البيانات.
نقوم بإزالة الاضطرابات التي تحدث لمرة واحدة والتي تؤدي إلى تحيز التوقعات، وبالتالي لا تنشر النماذج النمط في المستقبل. بعد ذلك، يبدأ التدريب النموذجي والاستدلال.
أسواق جديدة
تم إطلاق أسواق جديدة مؤخرًا، أو سيتم إطلاقها قريبًا، أسواق، وبالتالي لديها مجموعة محدودة من البيانات التي يمكن لعلماء البيانات العمل معها. بالنسبة لهذه الأسواق، قمنا بتطوير نموذج داخلي قائم على الوكيل.
تُستخدم البيانات الخارجية مثل الاقتصاد الكلي والبيانات المتعلقة بالموسيقى لتدريب نماذج المجموعات لمعرفة أسواق “الوكيل” بين الأسواق التي تم إطلاقها. بعد ذلك، نستخدم البيانات الداخلية للتعلم من أنماط الإطلاق والنمو من وكلاءهم، أي المظهر المتشابه.
هذه هي مشكلات التنبؤ “بالبداية الباردة” الكلاسيكية، ويمكن أن تكون الأكثر صعوبة لحلها من أجل الدقة العالية. ومع ذلك، فقد رأينا أن النماذج القائمة على الوكيل حققت موثوقية عالية واتساقًا في نمو المستخدم المتوقع بعد الدخول إلى أسواق جديدة.
نماذج مخصصة
يتم تصنيف العديد من الحالات في إطار فريق العمل هذا على أنها أسواق مخصصة أو أسواق “متخصصة”. تميل إلى أن تكون أكثر دقة، وتتطلب مشاركة بشرية من أجل: 1) اختبار نماذج بحثية جديدة.
2) إنتاج تنبؤات دقيقة عندما تكون مدخلات الأعمال مطلوبة؛ و3) مراجعة نتائج النموذج. على سبيل المثال، قد يكون السوق مدفوعًا بشكل كبير بالحملة ويتطلب مدخلات تجارية لإنشاء تنبؤات دقيقة.
الأدوات
يتم استخدام Dataflow (Apache Beam المُدار من Google) عند الحاجة إلى الموازاة لمعالجة كميات كبيرة من البيانات أو عمليات تشغيل النموذج. تتم أتمتة المهام الأصغر باستخدام وظائف Python المنفذة على Kubernetes.
نظرة فاحصة: مكونات تنبؤات السوق الجديدة والناضجة

الجزء الأكثر ثقلاً هندسيًا من البنية التحتية هو توقعات الأسواق الناضجة. يعد ضبط Hyperparameter ثقيلًا من الناحية الحسابية ويحتاج إلى معالجة بيانات مخصصة ووضع العلامات لإعداد البيانات.
تتضمن بعض المكونات الرئيسية لتوقعات الأسواق الناضجة كما هو موضح في الشكل 2 أعلاه ما يلي:
Parameter-Space Creator: يسمح للمستخدم بتعيين المعلمات التشعبية ليتم تقييمها عبر التحقق المتبادل (CV) وتخزينها في Google BigQuery.
أداة تسمية البيانات: تسميات بيانات السلاسل الزمنية (تدريب / اختبار / التحقق من الصحة) وتعيد تنسيق البيانات المسماة بمعلمات فائقة للتوازي.
ضبط Hyperparameter: يعمل على تشغيل النماذج بالتوازي في جميع الأسواق المختلفة، وتقسيم وقت التحقق من الصحة، ومجموعات المعلمات الفائقة، وتقييم الخطأ المرتبط بكل منها.
بينما تم ذلك في الأصل من خلال Apache Beam API مباشرة، تم تلخيص البحث الشبكي لاحقًا بواسطة حزمة داخلية، والتي تتيح تنبؤات السلاسل الزمنية على نطاق واسع.
محدد النموذج: باستخدام الإخراج من خطوة ضبط المعلمة الفائقة، يقوم هذا المكون بتقييم الخطأ الموزون لكل نموذج لتحديد أفضل نماذج X وتقييمها مقابل مجموعة الانتظار النهائية.
تطبيق النموذج: تشغيل “أفضل” نموذج محدد على مدار الفترة الزمنية بأكملها لكل سوق لإنتاج التنبؤ.
مراقبة الجودة والتدخل اليدوي: ينتج سلسلة من عمليات التحقق على المخرجات النهائية التي يتم مشاركتها مع أصحاب المصلحة الداخليين من خلال قنوات مخصصة.
لقد صنعنا أيضًا أدوات سهلة الاستخدام لأصحاب المصلحة التجاريين لتقديم مدخلات تطلعية للمساهمة في نتائج أكثر دقة، على سبيل المثال، إطلاق حملة تسويق أو مبيعات كبيرة في ربع تالٍ لم تستطع نماذجنا توقعها.
النشر والتصور: ينتج الملخص التلقائي والرؤى. يجد العديد من أصحاب المصلحة قيمة من توقعات المستخدم، لذلك كانت الرؤية الداخلية المتزايدة أولوية رئيسية أثناء إعادة تصميم بنيتنا التحتية.
تم توفير التصورات الآلية، التي تم توفيرها من خلال قنوات متعددة، لاستخدام جميع Spotify.

في الشكل 3 أعلاه، نرسم التوقعات الأسبوعية التلقائية الجديدة (الخط الأحمر) للسوق مقارنةً بالتنبؤين الرسميين السابقين (Q1 2022 وQ4 2021) لمعرفة اتجاه هذا السوق.
التعلم
توازن بين مراقبة الجودة مع التكرار السريع
هناك توازن دقيق بين مراقبة الجودة الصارمة والتكرار السريع، حيث أن مراقبة الجودة الصارمة تخلق الكثير من النفقات العامة للتطوير.
قررنا تطبيق رقابة صارمة على الجودة على “المنطق الأساسي” (على سبيل المثال، تنفيذ النموذج)، والذي اعتبرنا أنه من المهم للغاية أن تكون خالية من الأخطاء وصحيحة منطقيًا، مما يسمح بمزيد من المرونة في “المنطق المحيطي” (على سبيل المثال، إنشاءات الرسم البياني / البريد الإلكتروني).
يتم تجميع المنطق الأساسي في مكتبة Python ، والتي تم اختبارها على أساس الوحدة، ومراجعتها بدقة من قبل الأقران، وموثقة جيدًا لكل إصدار جديد، بينما يمكن للمطورين إنشاء امتدادات في النظام أو تجربة النماذج التي لا تخضع لمثل هذه المعايير.
التحجيم أمر سحري، لكنه ليس الحل دائمًا
يمكننا أن نكون أذكياء في خياراتنا النموذجية وأن نحد من العبء الحسابي باستخدام نماذج مناسبة تمامًا للمشكلة المطروحة.
يمكن أن يساعد البحث أيضًا في تضييق مساحة المعلمة الفائقة وتقليل عمليات البحث بالقوة الغاشمة من خلال جزء من الفضاء له تأثير محدود أو ليس له تأثير على النتيجة النهائية.
نظرًا لوجود حمل ثقيل متضمن في الموازاة، يجب ألا نستخدمه إلا عند الضرورة.
بساطة
علينا أن نحقق توازنًا بين البساطة والتحسين التدريجي لدقة النموذج.
غالبًا ما يتعين اتخاذ قرارات بشأن بناء منطق إضافي في جوهر النظام، أو بناءه كملحق، أو تجاهل التغيير لأن التكاليف تفوق الفوائد.
قد تميل الفرق إلى الميل نحو بناء ميزات إضافية على حساب سلامة النظام، ولكن من المهم دائمًا وضع الصورة الكبيرة في الاعتبار.
شكر وتقدير
تم إنشاء البنية التحتية للتنبؤ بواسطة Molly Zhu و Grant Webb و Michael Frings و Paul Levande و Gabriel Araujo de Almeida ، بمساهمة من Kelly Ho و Kathy Gao.
هل أنت متحمس للهندسة المالية (FINE) في Spotify؟ نحن نوظف!
ابحث عن المشاركات القادمة حول المنهجيات والبحث والعمل في مجال التطوير.
قد يهمك: