پیش‌بینی بهترین زمان برای ارسال خبرنامه/نوتیفیکیشن

در کسب و کار هر یک از ما الگوهایی مخفی از رفتار کاربران نهفته است. کشف و شناسایی این الگو‌ها قدمی بزرگ در بهره‌برداری از فرصت‌های طلایی کسب‌و‌کار است. یکی از خدماتی که استک یادگیری‌ماشین ما عرضه می‌کند، کشف الگو‌های شخصی‌ تعامل کاربران با کسب‌و‌کار شماست.

طبیعت و آدم‌ها الهام بخش بهترین ایده‌های مهندسی هستند. تیم ما مدت‌هاست که بهترین ایده‌های خود را از بهترین‌ کسب‌و‌کار‌های آنلاین ایرانی در قالب صورت مسئله، انتقاد، ایده یا نیازمندی دریافت می‌کند.

به خواسته یکی از مشتریان، برای زمانبندی ارسال نوتیفیکیشن و خبرنامه زمان و انرژی محسوسی صرف کردیم. صورت مسئله عبارت بود از شناسایی بهترین محتوا و بهترین زمان برای ارسال نوتیفیکیشن یا خبرنامه در ساعات پیش‌رو.

برای انتخاب محتوای شخصی‌سازی شده که اندپوینت‌های (Endpoint) متعددی را در قالب ویجت در اختیار کسب‌و‌کارها مشتری قرار می‌دادیم. مشکلی در حوزه انتخاب محتوای شخصی برای هر کاربر نداشتیم. ولی در زمانبندی ارسال نیازمند توسعه سرویس بودیم.

مسئله

مشتری از ما خواسته بود: فرض کن می‌خواهیم برای یک میلیون کاربر طی ۲۴ ساعت آینده تونتیفیکشن ارسال کنیم، بهترین زمان برای ارسال به هریک چه ساعتی‌ست؟

راه‌حل

به دنبال دریافت نیاز از مشتری، زمان بسیاری صرف تحقیق و توسعه در حوزه پیش‌بینی سطح تعامل کاربر انجام دادیم. آنچه تا آن‌زمان پیش‌بینی می‌کردیم عبارت بود از آيتم‌هایی که کاربر ندیده است و به آن‌ها علاقمند است، جنسیت کاربر، سن، اولویت‌ها و …

در حوزه پیش‌بینی زمان‌های مناسب برای تعامل با کاربر کاری نکرده بودیم. در نهایت پس از سعی‌و‌خطای بسیار زیاد (بسیار زیاد) به روشی کارامد و ترکیبی از تکنیک‌های آماری و احتمالاتی و پردازش سری‌های زمانی دست یافتیم که سرویس را قادر به ارائه پیشبینی بر روی سطح تعامل کاربر با کسب‌و‌کار آنلاین شما می‌کند.

timeBasedForecast

پیاده سازی

در سرویس ما پیام‌های دریافتی به سری‌های زمانی (Time-series) تبدیل می‌شوند. به کمک الگوریتم و ساختمان‌داده‌های مناسب و گاه ابتکاری توانستیم گذشته تعامل کاربران را در حجم محدودی از حافظه با کارایی فراخوانی مطلوب نگهداری کنیم. سپس به کمک الگوریتم‌های ویژه پردازش سری‌های زمانی به حذف استثنا‌های (Anomaly) در زندگی کاربر پرداختیم. فصل‌های تکرار (Seasonality) هر کاربر را جداگانه شناسایی کردیم. برای برخی کابران تکرار در بازه‌های ۲۴ ساعت، برای برخی در بازه‌های هفتگی است. این فصل‌ها متاثر از سبک‌زندگی، شغل، طبقه اقتصادی و … برای هر فرد متفاوت و یکتاست.

فراخوانی

فراخوانی سرویس پیش‌بینی زمانی، مثل بقیه اندپوینت‌های سرویس ما بسادگی آب خوردن است. تصویر زیر یک نمونه فراخوانی و پاسخ سرویس را نمایش می‌دهد. در صورتی که بازه زمانی ذکر نشود، به صورت پیش فرض برای ۲۴ ساعت پیش رو در قاب‌های ۱ ساعته، پیش‌بینی ارائه می‌شود:

Screen Shot 2017-03-05 at 6.46.39 PM

این اندپوینت نیز بلادرنگ (Real-Time) است. x زمان پیش رو از اکنون بر حسب ساعت و y سطح تعامل کاربر با کسب‌و‌کار شماست.

تصویر زیر نمونه‌ای مقایسه‌ای از پیش بینی برای سه کاربر را نمایش می‌دهد:

Screen Shot 2017-03-05 at 6.46.32 PM

و تصویر زیر چارتی تنظیم شده بر اساس داده‌های جدول فوق است:

Screen Shot 2017-03-05 at 6.46.18 PM

آنچه در محاسبه نتایج اثر گذار است، رفتار گذشته کاربر (افرادی) رفتار جمعی کاربران نزدیک (در خوشه) و پیش‌بینی برای ساعات آینده (انفرادی).

نمونه‌هایی از پرسش‌ها:

  • ساعت ۱۰ صبح فردا برای کدام ۱۰۰ کابر نوتیفیکشن ارسال کنم که مشاهده کند؟ (بلاک نکند)
  • در ۲۴ ساعت آینده برای این ۱۰۰ کاربر چه زمان‌هایی مناسب ارسال نوتیفیکیشن است؟
  • طی ۱۲ ساعت آینده بهترین ساعت برای ارسال نوتیفیکیشن با حداکثر اثر گذاری کدام است؟

 

با ما در تماس باشید

همانطور که در ابتدا گفتیم، الهام بخش ما در پیش‌برد سرویس‌ها و فناوری‌‌مان ایده‌ها، انتقاد‌ها و نیازمندی‌های شما عزیزان است. لطفا ایده‌ها و نیازمندی‌های خود را با ما مطرح کنید.

0 پاسخ

برای ما بنویسید

دوست داریم نظر شما رو بدونیم

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *