خب بیاین یه داستان باحال درباره سیستمهای توصیهگر (همون سیستمهایی که توی سایتها بهت میگن “این فیلم رو هم شاید دوست داشته باشی” یا “بیا این آهنگ رو هم گوش بده”) تعریف کنم. مشکل اکثر این سیستمها اینه که یا لازم دارن کلی اطلاعات شخصی از کاربر جمع کنن (که خب واسه حریم شخصی اصلاً خوب نیست)، یا اگه کاربری جدید باشه و سابقه علاقهمندی نداشته باشه، اصلاً نمیدونن چی باید معرفی کنن!
حالا فکر کن یه جامعه کوچیک داری که هر کسی سلیقه خاص خودش رو داره، مهمونا همه ناشناس هستن و خیلیاشون هم حتی لاگین نکردن! اینجور مواقع دو تا مشکل اساسی داریم: یکی مسئله cold start (یعنی وقتی یا کاربر جدید بیاد یا یه آیتم جدید وارد سیستم بشه و هیچ اطلاعات قبلی ازش نداریم) و دومین چالش هم کمبود داده (data sparsity) هست که یعنی اطلاعات تعامل کاربرا و آیتمها کمه.
تا حالا روشهای مختلفی امتحان شده، مثل collaborative filtering (یعنی پیشنهاد بر اساس شباهت سلیقهها یا کاربرهایی که رفتار مشابه دارن) و content-based (که یعنی بر اساس ویژگیهای خود آیتمها پیشنهاد میده). ولی اینا چند ایراد دارن: یا حریم شخصی رو نقض میکنن چون اطلاعات زیادی میخوان، یا اگه اطلاعات گذشته نباشه، تقریباً فلج میشن!
حالا محققای باحال یه روشی ابداع کردن به اسم DeepNaniNet که حسابی خلاقانهست. DeepNaniNet یه مدل توصیهگر مبتنی بر گرافه (graph-based) که اساساً ساختاری مثل شبکه اجتماعی داره و از ارتباط بین کاربرا و آیتمها (مثلاً یکی چه انیمههایی رو دیده یا چه نظراتی داده)، روابط بین خود آیتمها و حتی متون نقد و بررسیها (review embeddings که با BERT ساخته میشه. خود BERT هم یه مدل زبانی هوشمنده که معنی جملهها رو خوب میفهمه) استفاده میکنه.
نکته جذابش اینجاست: این مدل واسه کاربرا نیاز نداره که بره تو پروفایلشون دنبال سرک کشیدن باشه! فقط با توجه به چیزهایی که کاربر نشون داده دوست داره، یه “سبد محتوا” (content basket) براش میسازه. این یعنی حتی اگه کسی فقط به عنوان مهمون اومد و نه ثبتنام کرد نه تقریبا هیچ تعاملی انجام داد، باز هم DeepNaniNet تا حد قابل توجهی میتونه براش محتوای مناسب پیشنهاد بده!
برای اینکه ببینن واقعاً کار میکنه یا نه، یه دیتاست خفن ساختن به اسم AnimeULike (یعنی مجموعهای از ۱۰ هزار عنوان انیمه و ۱۳ هزار کاربر). این دیتاست جوری طراحی شده که تقریباً نصف کاربرا ناشناس و خیلی کمفعالیت هستن، که تقریباً بدترین حالت برای سیستمهای توصیهگره!
نتیجهها چطور بود؟ DeepNaniNet چندتا رقابت اساسی با معروفترین مدلها انجام داد. توی تست CiteULike (که یکی از بنچمارکهای معروفه)، مدل DeepNaniNet توی فضای cold start تونست بهترین نتیجه رو بگیره. تو recall (که یعنی چقدر خوب میتونه چیز محبوب برای کاربر حدس بزنه)، تقریباً به اندازه DropoutNet خوب بود، بدون اینکه برای کاربرای غریبه نسبت به کاربرای داخلی پسرفت داشته باشه. تازه تو AnimeULike هم تونست مدل WMF (Weighted Matrix Factorization. یه مدل رایج توصیهگر) رو تا هفت برابر و DropoutNet رو ۱.۵ برابر تو «Recall@100» شکست بده (Recall@100 یعنی تو لیست صدتایی پیشنهادی، چندتا از آیتمای واقعاً مورد علاقه کاربر پیدا شده).
خلاصه که با ابداع DeepNaniNet نشون دادن حتی توی شرایطی که حریم خصوصی مهمه، دادههات کم و کاربرات ناشناسن یا تازه وارد، باز هم میشه توصیهگرهایی ساخت که هم قوی باشن، هم با محتوای متنوع و منابع مختلف خوب کار کنن، و هم به حریم خصوصی کاربر احترام بذارن. واسه کسایی که دنبال تکنولوژیهای توصیهگر امن و خصوصی با عملکرد بالا میگردن، DeepNaniNet یه گزینه کاملاً جدیده!
منبع: +