یک رویکرد خفنِ درخواست‌محور برای سیستم‌های پیشنهاددهنده!

Fall Back

امروز می‌خوام درباره یه موضوع جذاب و جدید تو دنیای هوش مصنوعی صحبت کنم که حسابی سر و صدا کرده: «بهینه‌سازی فقط بر اساس درخواست» برای سیستم‌های پیشنهاددهنده.

خب اول از همه، بذارین یکم درمورد سیستم‌های پیشنهاددهنده حرف بزنیم. این همون مدلیه که مثلاً وقتی تو اینستاگرام یا فیسبوک می‌چرخین، با توجه به چیزایی که قبلاً دیدین یا دوست داشتین، بهتون پست یا محصول پیشنهاد می‌ده. این سیستم‌ها رو با اصطلاح DLRM می‌شناسن، یعنی Deep Learning Recommendation Models – یعنی مدل‌هایی بر پایه یادگیری عمیق که مخصوص پیشنهاد دادن هستن.

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

توی این مقاله‌ای که می‌گم، یه مدل و روش آموزش جدید معرفی شده به اسم ROO یعنی Request-Only Optimization یا همون بهینه‌سازی فقط براساس درخواست. ولی این به چی معنیه؟

تا حالا معمول بود که برای آموزش این مدل‌ها، هر «نمایش» یا Impressions رو واحد داده در نظر می‌گرفتن. منظور از Impression اینه که هر وقت یه چیزی، مثلاً یه پست، به شما نشون داده می‌شه. اما تو ROO هر «درخواست» کاربر رو به‌عنوان واحد آموزش در نظر می‌گیرن. یعنی چی؟ یعنی مثلاً وقتی شما وارد یه سایت می‌شین و داوطلبانه چیزی سرچ می‌کنین یا درخواست محتوا می‌دین، فقط همون مجموعه از کارها به‌عنوان یک واحد اصل قرار می‌گیره، نه هر عنصر به تنهایی.

این کار چند مزیت جالب داره:

  1. صرفه‌جویی توی فضا و ذخیره‌سازی داده‌ها: چون اطلاعات تکراری دیگه ذخیره نمی‌شن. مثلاً اگر توی یک درخواست چندتا پیشنهاد مشابه باشه، فقط یک بار اون ویژگی‌ها ذخیره می‌شن. به این می‌گن feature deduplication که یعنی حذف ویژگی‌های تکراری برای داده‌ها.

  2. صرفه‌جویی توی محاسبات و ارتباطات بین سرور و سیستم‌ها: وقتی اطلاعات تکراری حذف می‌شن، دیگه لازم نیست بارها محاسبه یا فرستاده بشن. این یعنی مصرف کمتر منابع و سرعت بیشتر.

  3. اجازه به مدل‌های خیلی بزرگ و پیچیده‌تر که بهتر سلیقه کاربر رو بفهمن: چون حالا مدل‌ها می‌تونن تمرکزشون رو روی تحلیل درخواست واقعی کاربر بذارن و راحت‌تر بفهمن واقعاً دنبال چی هست. حتی این مدل جدید کمک می‌کنه سبک‌هایی مثل Generative Recommenders بهتر کار کنن. Generative Recommenders یعنی مدل‌هایی که خودشون می‌تونن محتوا یا پیشنهاد جدید تولید کنن، نه فقط از قبل آماده‌ها.

این تغییر از Impression-based به Request-based بودن فقط یه ترفند کوچیک نیست؛ بلکه کل چرخه کار سیستم‌های پیشنهاددهنده رو از سه جهت بهینه کرده:

  • طراحی داده‌ها: داده‌هایی که فقط بر اساس درخواست ثبت می‌شن و تکراری نیستن
  • زیرساخت: سیستم‌هایی که مخصوص این نوع داده‌ها طراحی شدن
  • معماری مدل: شبکه‌های عصبی‌ای (همون Neural Networks!) که مخصوص این سبک داده طراحی شدن و بهتر می‌تونن رفتار کاربر رو تحلیل کنن.

در نهایت اگر بخوام جمع‌بندی کنم، ROO باعث شده کل ماجرای آموزش مدل‌های پیشنهاددهنده هم سریع‌تر بشه، هم بهینه‌تر و هم خود مدل‌ها باهوش‌تر و سازگارتر با خواسته‌های کاربر. مخصوصاً وقتی با داده‌های خیلی بزرگ و سنگین طرف باشیم، دستاوردش بیشتر معلوم می‌شه!

خلاصه، اگه شما هم یه زمانی بخواین برای میلیون‌ها یا حتی میلیاردها نفر، به سبک الگوریتم‌های اینستاگرام و آمازون، پیشنهادهای هوشمند نشون بدین، این ایده ROO حسابی می‌تونه کمکتون کنه!

منبع: +