یک سیستم پیشنهاد دهنده با جمع آوری دادههای مورد نیاز خود سعی میکنند پیشنهادهای مناسبی را برای کاربران تولید کنند. طی چند دهه گذشته با ظهور یوتیوب، آمازون، آپارات و دیگر سایتهایی که خدمات مبتنی بر وب ارائه میدهند، سیستمهای پیشنهاد دهنده جایگاه ویژهای در فضای مجازی پیدا کردهاند. همچنین با گسترش اینترنت و افزایش دادههای موجود در آن نیاز به ابزارهایی که بتواند کاربران را به سمت علایق خود راهنمایی کند، بیش از گذشته احساس میشود.
این موضوع به ویژه در وب سایتهای تجاری برای اموری چون بازاریابی و فروش اهمیت زیادی دارد. از تجارت الکترونیکی (پیشنهاد کالا و یا خدماتی که ممکن است مورد علاقه خریداران باشد) تا تبلیغات آنلاین (پیشنهاد محتوای مناسب به کاربران، مطابق با علایق آنها)، امروزه وجود انواع سیستم پیشنهاد دهنده در استفاده روزمره از فضای آنلاین اجتناب ناپذیر است.
سیستمهای پیشنهاد دهنده در برخی از صنایع واقعا حیاتی هستند زیرا در صورت کارآیی میتوانند درآمد زیادی ایجاد کنند و یا راهی برای پیشی گرفتن از رقبا باشند. به همین دلیل در ادامه قصد داریم به معرفی انواع سیستم پیشنهاد دهنده بپردازیم، نحوه کارکرد آن را توضیح دهیم و در مورد نقاط قوت و ضعف آنها بحث کنیم.
منظور از سیستم پیشنهاد دهنده چیست؟
به زبان ساده، یک سیستم پیشنهاد دهنده یا سامانه پیشنهادگر (Recommender System) نوعی الگوریتم است که هدف آن پیشنهاد دادن اقلام مورد علاقه کاربر به اوست. مواردی مانند فیلم برای تماشا، متن برای خواندن، محصول برای خرید یا هر چیز دیگری که در صنعت یافت میشود.
هدف سیستم پیشنهاد دهنده ارائه توصیههای معنیدار به مجموعهای از کاربران برای استفاده از کالا یا خدماتی است که ممکن است مورد علاقه آنها باشد. پیشنهاداتی برای خرید کتاب در آمازون و یا فیلم در نتفلیکس، نمونههای واقعی از کاربرد سیستمهای پیشنهاد دهنده در صنعت میباشد.
روش طراحی یک موتور پیشنهاد دهنده (Recommendation Engine) به نوع دامنه اینترنتی و محتوای آن بستگی دارد. به عنوان مثال، تماشاگران فیلم در نتفلیکس اغلب در مقیاس ۱ (دوست نداشتن یا Disliked) تا ۵ (دوست داشتن یا Liked) نظر خود را ارائه میدهند. به کمک این دادهها میتوان میزان علایق کاربران به اقلام مختلف را ثبت کرد. علاوه بر این، سیستم ممکن است به اطلاعات دیگری چون مشخصات کاربر و ویژگی اقلام مانند مشخصات جمعیتی و توضیحات محصول دسترسی داشته باشد. سیستم پیشنهاد دهنده چنین منابع دادهای را به منظور شناسایی جفت کاربر- آیتم تجزیه و تحلیل میکند که نشان دهنده یک کاربر و علاقیش میباشد.
معرفی انواع سیستم پیشنهاد دهنده
سیستمهای پیشنهاد دهنده بر اساس سه رویکرد اصلی زیر ساخته میشوند.
- روشهای مشارکت محور (Collaborative based methods) یا پالایش گروهی (Collaborative filtering)
- روشهای محتوا محور (Content based methods)
- روشهای ترکیبی (Hybrid methods): در این روش از ترکیب روشهای مشارکت محور و محتوا محور استفاده میشود.
روشهای مشارکت محور یا پالایش گروهی خود به انواع زیر تقسیم میشوند.
۱- رویکردهای مبتنی بر حافظه (Memory based approaches): این رویکرد دارای انواع زیر است.
- کاربر – کاربر (user-user)
- آیتم – آیتم (item-item)
۲- رویکردهای مبتنی بر مدل (Model based approaches): این رویکرد دارای انواع زیر است.
- فاکتور گیری ماتریسی (matrix factorization)
همان طور که گفتیم هدف از راه اندازی یک سیستم پیشنهاد دهنده ارائه پیشنهاد به کاربر با توجه به علایق وی میباشد. به طور کلی، روشهای مشارکت محور یا پالایش گروهی با توجه به عملکرد گذشته کاربران پیشنهاد جدید ارائه میدهند، در حالی که روشهای محتوا محور از مشخصات و ویژگیهای کاربر و آیتم (کالا، خدمات) جهت پیش بینی و پیشنهاد استفاده میکنند. در ادامه انواع سیستم پیشنهاد دهنده را معرفی میکنیم.
معرفی روشهای مشارکت محور
انواع سیستم پیشنهاد دهنده مبتنی بر الگوریتمهای مشارکت محور یا پالایش گروهی بر اساس تعاملات گذشته کاربران و انتخابهای پیشین آنها، توصیههای جدید ارائه میدهند. این تعاملات در ساختاری با عنوان «ماتریس تعاملات کاربر–آیتم» ذخیره میشوند.
ایده اصلی حاکم بر روشهای مشارکت محور این است که تعاملات گذشته کاربر-آیتم برای شناسایی موارد مشابه و پیشنهادهای بعدی کفایت میکند. پالایش مشارکتی یکی از روشهای مطرح در این زمینه است که با تحلیل امتیازات کاربران سعی میکند امتیاز بعدی را بر اساس کاربران مشابه پیش بینی کند. الگوریتمهای مشارکت محور به دو زیر مجموعه اصلی زیر تقسیم میشوند.
- رویکردهای مبتنی بر حافظه (Memory based approaches)
- رویکردهای مبتنی بر مدل (Model based approaches)
رویکردهای مبتنی بر حافظه به طور مستقیم بر اساس تعاملات ثبت شده عمل میکنند و چون اساسا هیچ گونه مدلی ندارند جهت ارائه پیشنهاد به جستجوی نزدیکترین همسایههای کاربر مورد نظر خود میپردازند، به این معنی که شبیهترین کاربران به کاربر مد نظر خود را پیدا کرده و محبوبترین آیتمها در نزد آنها را به کاربر جدید پیشنهاد میدهند.
در رویکردهای مبتنی بر مدل، یک مدل پایه ایجاد میشود که در آن تعاملات کاربر–آیتم شرح داده شده است و برای ارائه پیشنهادات جدید به جستجو در آن پرداخته میشود.
مزیت اصلی:
مزیت اصلی روشهای مشارکت محور این است که به هیچ گونه اطلاعاتی در مورد کاربران یا آیتمها نیاز ندارند و بنابراین میتوان در موقعیتهای زیادی از آنها استفاده کرد. علاوه بر این، هر چه کاربران بیشتر با آیتمها تعامل داشته باشند، توصیههای جدیدتر دقیقتر میشوند، به طوری که برای یک مجموعه ثابت از کاربران و آیتمها، تعاملات جدیدی که با گذشت زمان ثبت میشوند، اطلاعات جدیدی به ارمغان میآورند و سیستم را بهتر و موثرتر میکنند.
با این حال، از آنجا که در این روش برای ارائه پیشنهاد فقط تعاملات گذشته در نظر گرفته میشود، دارای مشکلی به نام «مشکل شروع سرد یا Cold Start problem» است. به این معنا که نمیتوان چیزی را به کاربران جدید توصیه کرد چرا که سیستم هیچ گونه اطلاعی از نظرات یا علایق آنها ندارد و همچنین یک آیتم (کالا) جدید را هم نمیتوان به کاربران پیشنهاد داد زیرا که هیچ کاربری در مورد آن نظر نداده است.
مشکل شروع سرد را میتوان به کمک روشهای زیر رفع کرد.
- راهبرد تصادفی: به صورت تصادفی چند آیتم را به کاربران جدید پیشنهاد کرد و یا آیتمهای جدید را به کاربران تصادفی پیشنهاد داد
- راهبرد چشمداشت حداکثری: آیتمهای پرطرفدار را به کاربران جدید توصیه کرد و یا آیتم جدید را به کاربران فعالتر پیشنهاد داد
- راهبرد اکتشافی: مجموعهای از آیتمهای مختلف را به کاربران جدید توصیه کرد و یا یک آیتم جدید به مجموعهای از کاربران مختلف پیشنهاد داد
- عدم استفاده از روشهای مشارکت محور: میتوان جهت ارائه پیشنهاد به کاربران جدید و یا توصیه آیتمهای جدید به کاربران از یک روش روش غیر مشارکتی استفاده کرد
بررسی روشهای مشارکت محور مبتنی بر حافطه
روشهای کاربر-کاربر و آیتم-آیتم شباهت زیادی به هم دارند و هر دو روش تنها از اطلاعات ماتریس تعامل کاربر-آیتم استفاده میکنند و هیچ مدلی را برای ارائه پیشنهادهای جدید در نظر نمیگیرند. در ادامه به معرفی این دو روش میپردازیم.
روش کاربر-کاربر (User-User)
این روش جهت ارائه پیشنهاد جدید به یک کاربر سعی در شناسایی کاربران با مشخصات تعاملی مشابه با او (نزدیکترین همسایهها) دارد و آیتمی را پیشنهاد میدهد که بیشترین محبوبیت را در بین این همسایهها داشته باشد اما برای کاربر مورد نظر جدید است. به این روش «کاربر محور» گفته میشود چرا که کاربران را بر اساس تعامل آنها با آیتمها دسته بندی میکند و به بررسی علایق آنها میپردازد.
روش آیتم-آیتم (Item-Item)
ایده اصلی روش آیتم-آیتم جهت ارائه پیشنهاد جدید به یک کاربر، پیدا کردن آیتمهایی شبیه به علایق گذشته کاربر است. در این روش دو آیتم را در صورتی مشابه در نظر میگیرند که در گذشته بیشتر کاربران تعامل مشابهی با آنها داشتهاند. به این روش «آیتم محور» گفته میشود چرا که آیتمها را بر اساس تعامل کاربران با آنها دسته بندی میکند و با توجه به نوع تعامل کاربر با آیتمهای موجود در یک دسته، علایق او را پیش بینی میکند.
بررسی روشهای مشارکت محور مبتنی بر مدل
در این دسته از روشها جهت ارائه پیشنهاد یک مدل بر اساس علایق کاربر ساخته میشود. روش فاکتور گیری ماتریسی یکی از روشهای پرکاربرد مشارکت محور مبتنی بر مدل است که در ادامه آن را بررسی میکنیم.
روش فاکتور گیری ماتریسی
روش فاکتور گیری ماتریسی از تجزیه و تحلیل دادههای یک ماتریس جهت پیش بینی استفاده میکند. بسیاری از انواع سیستم پیشنهاد دهنده مشارکت محور با مشکل کم بودن دادهها مواجه هستند. یکی از مهمترین مزایای این روش، عدم نیاز به کسب اطلاعات اضافی جهت ارائه پیشنهاد و پیش بینی است. به این معنی که لازم نیست دادههایی در مورد مشخصات کاربران و آیتمها داشته باشیم. در روش فاکتور گیری ماتریسی فرض بر این است که با تعداد محدودی از ویژگیهای نهفته میتوان علایق کاربران را پیدا کرد.
هدف این روش، نگاشت کاربران و آیتمها به یک فضای مشترک از طریق نمایش آنها در قالب بردارهایی در آن فضاست. ابعاد این فضا فاکتور نامیده میشود. در این روش هر یک از کاربران و اقلام به صورت یک بردار ویژگی نمایش داده میشوند که ابعاد آن با تعداد ویژگیهای نهفته برابر است. به عنوان مثال امتیازی که کاربر به یک فیلم میدهد، معمولا به تعداد محدودی ویژگی نهفته مانند ژانر مورد علاقع کاربر وابسته است. روش فاکتور گیری ماتریسی با مدل کردن ویژگیهای نهفته تلاش دارد تا یک تقریب وزندار برای ماتریس پیدا کند که از آن برای پیش بینی امتیازات نامعلوم استفاده میشود.
معرفی روشهای محتوا محور
برخلاف روشهای مشارکت محور که فقط به تعاملات کاربر-آیتم متکی هستند، رویکردهای مبتنی بر محتوا از دیگر اطلاعات مربوط به کاربر و یا آیتم نیز استفاده میکنند. به عنوان مثال در یک سیستم پیشنهاد دهنده فیلم این اطلاعات میتواند شامل مواردی چون سن، جنسیت، شغل و دیگر اطلاعات شخصی برای کاربر و همچنین ژانر، بازیگران اصلی، مدت زمان و غیره برای فیلم باشد.
ایده اصلی روشهای محتوا محور تلاش برای ساخت یک مدل مبتنی بر ویژگی های موجود است که تعاملات کاربر-آیتم مشاهده شده را توجیح میکند. در این روش، آیتمهای پیشنهادی به این دلیل انتخاب شدهاند که با مواردی که کاربر مد نظر ما در گذشته انتخاب کرده و یا به آنها علاقه نشان داده است، شباهتهایی دارند.
مثال:
به عنوان یک نمونه سیستم کاربران و فیلمها را در نظر بگیرید، اگر برای مثال این واقعیت را مد نظر قرار دهیم که زنان جوان به برخی از فیلمها امتیاز بیشتری میدهند، مردان جوان به فیلمهای دیگری امتیاز بیشتری میدهند و غیره. اگر موفق به ایجاد چنین مدلی شویم، انجام پیش بینیهای جدید برای کاربر بسیار آسان است. در این صورت ما فقط باید به مشخصات کاربر مورد نظر خود (مانند سن، جنسیت، غیره) نگاه کنیم و بر اساس این اطلاعات، فیلمهای مربوطه را به وی پیشنهاد دهیم.
روشهای مبتنی بر محتوا به مراتب کمتر از روشهای مشارکت محور از مشکل شروع سرد رنج می برند چرا که کاربران یا آیتمهای جدید را میتوان با استفاده از ویژگیهایشان توصیف کرد و بر این اساس پیشنهادهایی ارائه داد. از این رو رویکرد محتوا محور یک روش برای رفع مشکل شروع سرد است که برای کالاهای جدید رخ میدهد که به تازگی به سیستم اضافه شدهاند و هیچ کاربری در مورد آنها نظری نداده است.
در این روش تنها در خصوص کاربران یا آیتمهای جدیدی که هنوز به ویژگیهایشان دسترسی نداریم، ممکن است با مشکل مواجه شویم. اما اگر سیستم به اندازه کافی قدیمی باشد، چنین اتفاقاتی به ندرت رخ میدهد. در رویکردهای محتوا محور میتوان از مدل های مختلف دسته بندی یا رگرسیون ساده تا بسیار پیچیده استفاده کرد.
معرفی سیستم پیشنهاد دهنده ترکیبی
برخی از سیستمهای پیشنهاد دهنده از ترکیب روشهای مبتنی بر محتوا و مشارکت محور استفاده میکنند تا هم از مزایای این دو روش بهره ببرند و میزان تاثیر نقاط ضعف هر یک از آنها را کاهش دهند. امروزه راههای مختلفی برای ترکیب این روشها ارائه شده است. به عنوان مثال، میتوان ویژگیها را از سیستمهای پیشنهاد دهنده مختلف دریافت کرد و در یک الگوریتم از آنها استفاده کرد و یا خروجی یک سیستم به عنوان ورودی سیستم دیگر استفاده شود.
جمع بندی و نتیجه گیری
یک سیستم پیشنهاد دهنده با جمع آوری دادههای مورد نیاز خود سعی میکنند پیشنهادهای مناسبی را برای کاربران تولید کنند. هدف از راه اندازی یک سیستم پیشنهاد دهنده ارائه پیشنهاد آیتمهای مختلف مانند کالا، فیلم، کتاب، نرم افزار و غیره به کاربران با توجه به علایق آنهاست. سیستمهای پیشنهاد دهنده بر اساس رویکرد خود به سه دسته محتوا محور، مشارکت محور و ترکیبی تقسیم بندی میشوند.
رویکردهای مشارکت محور یا پالایش گروهی که شامل روشهای کاربر-کاربر، آیتم-آیتم و فاکتور گیری ماتریسی است، تنها بر اساس ماتریس تعامل کاربر-آیتم عمل میکنند. این روشها با توجه به عملکرد گذشته کاربران پیشنهاد جدید ارائه میدهند. رویکردهای محتوا محور مانند مدلهای رگرسیون یا دسته بندی که از از مشخصات و ویژگیهای کاربر و آیتم (کالا، خدمات) جهت پیش بینی و پیشنهاد استفاده میکنند. روشهای ترکیبی یا هیبرید از ترکیب روشهای مشارکت محور و محتوا محور بهره میبرند.