في هذا المنشور ، سوف نتحدث عن دراسة تجريبية حول ML في سوبر ماركت Utkonos عبر الإنترنت ، حيث توقعنا إعادة شراء البضائع القابلة للتلف. في الوقت نفسه ، أخذنا في الاعتبار البيانات ليس فقط على أرصدة الأسهم ، ولكن أيضًا تقويم الإنتاج مع عطلات نهاية الأسبوع والعطلات ، وحتى الطقس (الحرارة والثلج والمطر والبرد ليست سوى Taft Three Weathers ، ولكن ليس العملاء). نعلم الآن ، على سبيل المثال ، أن "الروح الروسية الغامضة" جائعة بشكل خاص للحوم يوم السبت ، وتقدر البيض الأبيض فوق البيض. لكن أول الأشياء أولا.

طيار التجزئة أكثر من الطيار
في تجارة التجزئة ، التعلم الآلي في وضع مزدوج. من ناحية ، تراكمت تجار التجزئة كميات هائلة من البيانات على مدى فترات مثيرة للإعجاب للغاية: إيصالات الشراء الفردية ، والبيانات من بطاقات الولاء ... من ناحية أخرى ، لقد وجد تجار التجزئة لفترة طويلة حتى أن مشكلة التنبؤ بالطلب بدأت في حلها قبل وقت طويل من ظهور أزياء علم البيانات واليوم أصبح تحت تصرفها أدوات BI اللازمة.
اتضح أن البيع بالتجزئة هو واحد من أكثر المجالات الواعدة لتجارب عالم البيانات وإدخال التعلم الآلي ، لكن الأعمال تبحث في كل هذا بالشك: هل هذا جيد حقًا بالنسبة لي؟ بعد كل شيء ، هناك بالفعل حلول تعمل ثبت من خلال سنوات عديدة من الخبرة.
ثم حان الوقت للاتفاق على دراسة تجريبية!
الطيارون أنفسهم ، بالمقارنة مع مشروع ML كامل ، لديهم قيود وخصائص مفهومة.
- يُنفق وقت كافٍ على دراسة تجريبية لتُظهر للعملاء إمكانيات التعلم الآلي على بياناتهم ، لكن ليس لخسارة المال.
- بالإضافة إلى ذلك ، كقاعدة عامة ، لن يكون لدى مسؤولي البيانات فرصة ثانية: إذا لم تكن النتائج الأولى للعمل مثيرة للاهتمام ، فسوف تظل متشككة وفية لطرق التنبؤ القديمة. لذلك تحتاج إلى الهدف بدقة.
- أثناء المشروع التجريبي ، قد لا تنشأ علاقة ثقة بين العميل ومركز البيانات. وعلى الأرجح لن يتم الوصول إلى الوحدات والمتخصصين الذين يمتلكون البيانات المهمة في التفسير أثناء التجربة ، وكذلك الأفكار الهامة تجاريًا.
بالطبع ، لا تظهر هذه الميزات في كل مشروع تجريبي ، لكنها تشكل جزءًا مهمًا من مخاطره.
قليلا عن المهمة
قبل وقت طويل من التعرف على التعلم الآلي ، استخدم Utkonos بالفعل نظامه التحليلي ، الذي تنبأ بسداد البضائع لمدة أسبوع بدقة عالية للغاية. ومع ذلك ، يهتم تاجر التجزئة بإمكانية زيادة فعالية التخطيط. يتعلق هذا في المقام الأول بالمنتجات القابلة للتلف ، والتي يعد الكثير منها باهظ الثمن أيضًا. الشوكة التقليدية: إذا اشتريت الكثير - ستكون هناك خسائر ، إذا اشتريت لا يكفي - فسوف يذهب المشتري إلى منافس من أجل رقة العجل المحبوبة التي يتم حصادها باستخدام قمر كامل ومطر قليل المطر. للحصول على توقعات دقيقة بما يكفي ليوم غد ، تعد الحلول القائمة على التعلم الآلي أكثر ملاءمة ، مما يسمح بأخذ مزيد من العوامل في الاعتبار من الأدوات التقليدية BI. وافقت Utkonos على العمل كشريك لنا لتجربة تهدف إلى اختبار فرضيات قابلية تطبيق Machine Learning على التجارة الإلكترونية.
لإظهار إمكانيات التعلم الآلي لحل هذه المشكلة ، بالاتفاق مع الشركة ، تم اختيار العديد من الأسماء التجارية:
- منتجان من فئة "اللحوم المبردة" - كمنتجات قابلة للتلف ، البيانات الأكثر أهمية لتحديثها على الفور ؛
- ومنتجان من فئة "بيض الدجاج" - كسلع ذات طلب موسمي محدد ، والتي لا يمكن التنبؤ بها ببساطة "في يوم الخميس ، يشتري الجميع X ، ويوم الجمعة - X تتضاعف بمعامل". على الرغم من أن بيض الدجاج ليس من الصعب التنبؤ بحبس حبس الرهن ، وفقط بالنسبة إليهم يعتبر التخطيط الأسبوعي مقبولًا تمامًا ، وكان من الضروري في هذه المنتجات إظهار أن تعلم الآلة يشهد بالفعل علاقات معقدة ويقوم بتوقعات غير تافهة.
لقد اخترنا منتجات محددة حسب ذوقنا ، معتمدين على اكتمال البيانات التاريخية. تم إدخال بعض البضائع إلى السطر مؤخرًا ، بعضها - على العكس من ذلك ، تم بيعها مرة واحدة ، ولكن في الوقت الحالي تم إخراجها بالفعل من المجموعة المتنوعة ، لذلك كانت قيمة البيانات عليها تاريخية فقط.
تضمنت البيانات التي قدمتها Utkonos معلومات عن مبيعات أربعة أسماء للسلع الأساسية خلال السنتين السابقتين وعن مدى توفر هذه البضائع في المخازن في الفترات ذات الصلة. من مجموعة البيانات العامة ، قمنا على الفور "بقطع" الأشهر الستة الأخيرة ، من بداية نوفمبر وحتى نهاية أبريل - ستكون هذه مجموعة الاختبارات الخاصة بنا. وشملت كل من أشهر الخريف هادئة نسبيا وسلسلة من العطلات الشتوية وعطلة الربيع.
مغامرة قصيرة ولكن مثيرة تنتظرنا.
البيانات من المستودعات: غامضة وضرورية
عند العمل مع البيانات التاريخية ، كان السؤال الأول الذي طرح أمامنا هو كيفية فصل المبيعات الحقيقية عن "الحد الأقصى للمبيعات المتاحة" (أي ، الحالات التي تم فيها استرداد البضائع المنتهية في المستودع بنسبة 100٪ ، ولكن إن توفرت ، يمكن أن يكون حجم المبيعات يكون أعلى)؟ لا يتم عرض رغبات المشترين غير المحققة في البيانات.
توافر البضائع في المخازن. بالمناسبة ، من تجربة المشاريع السابقة في مجال البيع بالتجزئة ، توقعنا أن تكون هذه أرصدة في وحدات القياس. ومع ذلك ، في هذه الحالة ، كنا نتعامل مع المؤشر النسبي "إمكانية الوصول" ، والذي تم قياسه في المئة خلال اليوم. بالنسبة لتوفر البضائع في المستودع ، فإن هذا المؤشر نسبي للغاية: حقيقة أن هناك أي سلع في أي وقت لا تعني أنها ترغب في شرائها.
بعد تجربة خيارات مختلفة (إعادة بناء "الطلب الحقيقي" استنادًا إلى معاملات محسوبة بطريقة مختلفة وتصفية مجموعة بيانات المبيعات بعتبات وصول مختلفة) ، اخترنا في النهاية الحد الأمثل الذي لم يجعل مجموعة البيانات ضيقة جدًا. المثل الأعلى - توفر البضائع طوال اليوم - قلل بشكل كبير من البيانات حتى بالنسبة للسلع الأكثر مبيعًا.
البند 1: اللحوم المبردة (الدواجن غير عادية)
بدأنا العمل مع اللحوم المبردة ، حيث لم نكن نشك في القدرة التنبؤية للنموذج ، بمجرد أن كان جاهزًا في شكل مسودة. (المفسد: ولكن دون جدوى - في مجموعة البيانات مع مبيعات البيض ، كانت هناك مفاجأة مثيرة للاهتمام تنتظرنا ، ولكن المزيد عن ذلك لاحقًا).
من أجل توفير الوقت "خارج الصندوق" ، حصلنا على مكتبة جاهزة تعمل بشكل جيد مع سلسلة زمنية - Prophet من Facebook .

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

لدينا اللحوم المبردة لدينا اتجاه تصاعدي واضح في العدد الإجمالي للمشتريات ، وعدد المشتريات يرتفع من الاثنين إلى السبت ، ويقع في يوم الأحد ، في الصيف المشتريات بشكل ملحوظ "تبلد". إنه لأمر سيء أن الصيف لا يقع في فترة الاختبار لدينا ؛ من ناحية أخرى ، تذكر أن فترة الإجازات والعطلات مهمة لمستوى المبيعات ، لأن الإجازات الصيفية بعيدة عن الأعياد الوحيدة في روسيا.
السؤال المنطقي هو: هل من الممكن استخدام هذا النموذج فورًا للتنبؤ بالأشهر الستة القادمة؟
بشكل حدسي ، لا يبدو ذلك. أظهرت التجربة أنها كذلك. النمط العام للموسمية خلال الأسبوع صحيح. ولكن أصبح من الواضح على الفور أنه يوجد مليون انحراف عن النمط الموسمي العام ، للأعلى والأسفل ، ومتوسط الانحراف بنسبة 45.71٪ أعلى بكثير من النتائج على بيانات التدريب. من الواضح أن هذا ليس جيدًا.
بادئ ذي بدء ، دعونا نحاول تدريب النموذج يوميًا ، متخيلًا أنه في كل يوم بعد الانتهاء من المتجر ، يتم استكمال مجموعة البيانات بمبيعات لـ "اليوم". نحن نعلم بالفعل أنه في المبيعات هناك اتجاه تصاعدي بشكل عام - من الممكن أن يرتفع معدل دوران بيانات الاختبار الخاصة بنا بكثافة أكبر بسبب نشاط التسويق الأكثر نشاطًا مما كان عليه الحال في مجموعة التدريب.
النجاح النسبي: مع إعادة التدريب اليومي للنموذج ، يكون الانحراف النسبي هو 33.79٪. لقد استكملنا المعلمات النموذجية بمعلومات حول عطلات نهاية الأسبوع المؤجلة والصيام الديني والعطلات التقليدية لروسيا (مثل السنة الجديدة وعيد الفصح وعدد آخر). تمت إضافة التغييرات المناخية المفاجئة أيضًا: الأيام التي ارتفعت فيها درجة الحرارة لأعلى أو لأسفل بمقدار 10 درجات أو ببساطة كانت أعلى أو أقل بشكل ملحوظ عن الأيام الأخرى من هذا الشهر. الآن ، في المتوسط لمدة ستة أشهر ، انحرفت توقعاتنا عن المبيعات الحقيقية بنسبة 28.48 ٪ ، وبشكل عام ، بدأ النموذج يأخذ بعين الاعتبار الزيادات الحادة في نشاط المستهلك. قمنا بتحسين متوسط الانحراف بنسبة خمسة في المئة! على الرغم من حقيقة أن النبي ، من حيث المبدأ ، يعمل بشكل سيئ ويوصى بمسح البيانات منه ، إلا أنه كان حركة إلى الأمام ملحوظة.


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

كان معامل الارتباط بين متوسط سعر الوحدة في اليوم وعدد من حجم بيع هذا النوع من اللحوم المبردة ¬ - 0.61 في P <0.01. من الواضح أن "متوسط سعر الوحدة" ليس مؤشرًا مثاليًا: إذا كان هناك الكثير من عمليات الشراء من ، على سبيل المثال ، شركاء لديهم خصم كبير ثابت ، فإن الضوضاء الخطيرة سوف تتسلل إلى البيانات. لكننا أردنا أن نسلط الضوء على الأيام التي كانت فيها تأثيرات تسويقية: خصومات عامة على مجموعة من السلع ، وخصومات لكل من يقدم شفرة ترويجية مجانية للتوزيع ، إلخ.
ومع ذلك ، حتى بعد الأيام التي تم فيها تخصيص متوسط السعر في الكمية 5٪ كأيام ترويجية ، لم تحدث زيادة في دقة النموذج. زادت الدقة في أيام المبيعات الشديدة ، وظل متوسط الانحراف النسبي لمدة ستة أشهر كما هو.
ولكن تم الحفاظ على فكرة وجود علاقة إحصائية واضحة مع السعر للمستقبل.

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

بشكل عام ، يتوقع نموذجنا أن يكون هناك زيادة طفيفة في الطلب في عيد الفصح ، ولكن توقعاته أقل تقريبًا مرتين من المؤشر الحقيقي (وهذا الانحراف بنسبة 100٪ تقريبًا خلال أسبوع عيد الفصح يجعل متوسط الانحراف لمدة ستة أشهر كبيرًا بشكل لا يصدق). لماذا؟ بعد كل شيء ، يحدث أسبوع عيد الفصح سنويًا - يجب أن يكون هناك نمط في بيانات العامين السابقين!
وقد أظهر تحليل البحوث أنه لا يوجد نمط. في 2018 (هذه هي بيانات الاختبار الخاصة بنا) ، تتراجع ذروة المشتريات طوال الأسبوع قبل عيد الفصح حتى 7 أبريل. في عيد الفصح نفسه (8 أبريل 2018) ، تسقط مشتريات البيض دائمًا ، وهو ما يراه النموذج بشكل صحيح. ولكن في عام 2017 ، يصادف عيد الفصح في 16 أبريل ، وبلغت ذروة عمليات الشراء في البيانات التاريخية يوم 8 أبريل ، وفي هذا العام بلغت الذروة يومًا واحدًا. في عام 2016 ، يصادف عيد الفصح في 1 مايو. ذروة المشتريات هي 29 أبريل ، مع ارتفاع يوم واحد وقبل يوم واحد. في عام 2015 ، يصادف عيد الفصح في 12 أبريل ، ذروة المشتريات مرة أخرى يوم واحد ، 9 أبريل.

كانت روايتنا الأولى هي تأثير أيام الأسبوع (والخيال يرسم الآباء الذين يحتاجون إلى رسم أكثر من عشرة بيض بحلول يوم غد ، لأنه درس موضوعي ، وقد قاله الطفل اليوم). للأسف ، هذا ليس كذلك. ربما ، خلال عيد الفصح ، هناك بعض العوامل التي لم نعثر عليها بعد (ولم نأخذها في الاعتبار) - سواء الخارجية والمتعلقة بتسويق الشركة نفسها.
يمكننا أن نفعل أفضل!
تدور هذه القصة حول العمل مع بيانات بائع التجزئة لفترة محدودة ، وليس حول تقنيات التعلم الآلية السرية. ولكن في العمل مع البيانات هناك فرصة لتحسين النتيجة.
بعد العمل مع منتجات من فئة "دجاج البيض" ، أصبح من الواضح أنه يمكن تحسين النموذج عن طريق إضافة عوامل لم نستخدمها في المشروع الرائد. لذلك ، تقرر إجراء تجربة صغيرة مع مجموعة عشوائية وبيانات يمكننا جمعها من مصادر مفتوحة. بالإضافة إلى ذلك ، سنكون قادرين على رؤية كيف يتصرف النموذج ، حيث سيكون لأيام البيع مجموعة متنوعة من العلامات ، وليس فقط مجموعة من "الأيام الخاصة" المخصصة على أساس واحد أو آخر.
تم جمع المعلومات التالية في مجموعة البيانات حول "العالم الخارجي":
- تقويم إنتاج كامل لكل عام ؛
- المشاركات الدينية والأعياد ، الأعياد العلمانية.
- الظروف الجوية وانحرافاتها عن متوسط القيم لمدة شهر في المنطقة ، وكذلك التقلبات خلال الشهر الماضي واليوم والأسبوع ؛
- أسعار صرف الدولار واليورو للبنك المركزي وتقلباتها كمؤشرات للحالة الاقتصادية العامة.
بشكل منفصل ، تم إضافة علامات لإجراء حملات تسويقية منفصلة وسعر كل وحدة من البضائع.
على مجموعة البيانات الموسعة ، قمنا مرة أخرى ببناء نموذج يتم تدريبه يوميًا على بيانات جديدة ، باستخدام RandomForestRegressor الآن. تحسن الانحراف النسبي بشكل طفيف: إلى 27.29 ٪. يوضح الرسم البياني أن النموذج الجديد يتنبأ بشكل أفضل بتأثير الحملات التسويقية ، ولكن الأسوأ هو الموسمية الأسبوعية.

بالنظر إلى أهم 5 علامات من وجهة نظر RandomForestRegressor المستخدمة ، يمكنك التأكد من أن هناك بالفعل علامتان تتعلقان بقيمة البضاعة - السعر الحالي وتغيراته مقارنة بالشهر الماضي. من الواضح ، حقيقة أن النطاق السعري لا يمكن وضعه جيدًا في FB Prophet أثرت في دقته.

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