سیستم های توصیه گیر
شرکتهای خردهفروشی و فروشگاههای آنلاین مختلفی در دنیا، سعی دارند با استفاده از سیستم های توصیه گر و با بهرهگیری از قدرت بینظیر داده، تجربهی مطلوبی برای مشتریان خلق کنند و از این راه، فروش خود را افزایش دهند. در سالهای اخیر، استفاده از سیستم پیشنهاد دهنده بسیار رواج یافته است و وقت آن رسیده تا به بررسی عمیقتر این تکنیک جالب یادگیری ماشین بپردازیم.
سیستم پیشنهاد دهنده چیست؟
در سیستم های توصیه گر سعی بر این است که علایق یک کاربر خاص در وبسایت شما را شناسایی و پیشبینی کند و آیتمهایی متناسب با علایقش به وی نشان دهد. سیستم پیشنهاد دهنده از الگوریتمهای بسیار قدرتمند یادگیری ماشین (machine learning) است که خردهفروشیهای آنلاین متعددی از آن برای افزایش فروش خود استفاده میکنند. دیتای مورد نیاز برای آموزش (train) یک سیستم پیشنهاد دهنده از کانالهای مختلفی جمعآوری میشوند؛ برخی از این کانالها عبارتند از:
- امتیازدهی کاربر پس از تماشای یک فیلم یا گوش دادن به یک موسیقی
- جستجوهای انجامشده در موتورهای جستجو
- تاریخچهی خرید
سایتهایی مانند یوتیوب، نتفلیکس یا اسپاتیفای از سیستم Recommendation System استفاده میکنند تا روزانه به کاربران خود، لیستهایی که موردعلاقهی آنهاست نشان دهند.
چرا به سیستمهای پیشنهاد دهنده (recommender systems) نیاز داریم؟
هدف شرکتهایی که از سیستم توصیهگر استفاده میکنند، بهبود تجربهی کاربر با نشاندادن پیشنهادهای کاملا خصوصیسازیشده به وی است؛ این امر در نهایت سبب افزایش فروش شرکت خواهد شد. یک سیستم پیشنهاددهنده سبب میشود تا کاربر خیلی سریعتر و بدون سرچهای اضافی به محصول یا محتوای مد نظر خود دست یابد و با دیدن پیشنهادهایی که مورد علاقهی اوست، شگفتزده شود. علاوه بر این، شرکتها میتوانند با ارسال ایمیلهایی که حاوی آیتمهای مورد علاقهی یک کاربر خاص است، وی را به سایت بکشانند تا خریدهای جدیدی انجام دهد.
با دانستن علاقهی هر یک از مشتریان، خطر از دست دادن آن مشتری یا جذب وی توسط رقبا کاهش مییابد. در واقع سیستم پیشنهاد دهنده، یک ارزش افزودهای است که به مشتری ارائه میکنیم تا وی را وفادار نگه داریم.
سیستم Recommendation System (سیستم توصیهگر) چگونه کار میکند؟
سیستم های توصیه گر با دو دستهی کلی اطلاعات (information) کار میکند:
- اطلاعات مشخصه (Characteristic information): اطلاعاتی در مورد محصولات (دستهبندیها، کلیدواژهها و …) و کاربران (علایق و ترجیحات، پروفایل و …)
- تعاملات کاربر-آیتم (User-item interactions): اطلاعاتی مانند امتیازدهی کاربر به آیتم، تعداد خرید یک محصول، تعداد لایکها و …
بر اساس این دو دسته اطلاعات، از سه الگوریتم مختلف در سیستمهای پیشنهاددهنده استفاده میشود:
- مدل مبتنی بر محتوا (content based): که از اطلاعات مشخصه استفاده میکند.
- مدل مبتنی بر فیلترینگ مشارکتی (collaborative filtering based): که از تعاملات کاربر-آیتم استفاده میکند.
- مدل ترکیبی (hybrid): که از هر دو دسته اطلاعات استفاده میکند تا به نتایج بهتری دست یابد.
مدل مبتنی بر محتوا (content based)
سیستم توصیه گر مبتنی بر محتوا، با استفاده از آیتمهای یک کاربر یا ویژگیهای پروفایل اختصاصی وی، پیشنهادهایی به او ارائه میکند. در واقع این نوع سیستم فرض میکند که اگر کاربری در گذشته به یک آیتم خاص علاقه داشته، احتمالا الان هم به آن آیتم علاقهمند است. آیتمهای مشابه در گروههای یکسانی قرار داده میشوند؛ همچنین پروفایلهای کاربران نیز با توجه به تاریخچهی خرید آنها یا با پرسیدن علایق کاربر به صورت صریح و در غالب سوالاتی از وی تکمیل میشود؛ البته روشهایی نیز وجود دارند که کاملا محتوامحور محسوب نمیشوند و از اطلاعات شخصی کاربر و اطلاعات وی در شبکههای اجتماعی استفاده میکنند. به طور خلاصه، در مدل محتوامحور، آیتمها گروهبندی میشوند؛ سپس اگر کاربر آیتمی از یک گروه را بپسندد، سایر آیتمهای آن گروه به وی پیشنهاد میشود.
سیستمهای پیشنهاددهندهی محتوا محور دو اشکال اساسی دارند:
۱-یک مشتری خاص ممکن است به آیتمی علاقهمند باشد که در گروهبندی آیتمهای مورد علاقهی قبلی او قرار نمیگیرد؛ اگر سیستم پیشنهاددهندهی ما بر اساس مدل محتوامحور آموزش دیده باشد، آن آیتم خاص به کاربر نشان داده نمیشود و این یک ضعف بزرگ به حساب میآید.
۲-مشکل دوم مدل محتوامحور آن است که برای کاربران جدیدی که هیچ سابقهی خرید و پروفایلی در وبسایت ما ندارند، کارایی مناسبی از خود نشان نمیدهد. البته با پرسیدن سوالاتی خاص و فهمیدن علایق کاربر میتوان این مشکل را تا حدودی حل کرد.
مدل مبتنی بر فیلترینگ مشارکتی (collaborative filtering based)
مدل فیلترینگ مشارکتی یکی از بهترین مدلهای مورد استفاده در سیستمهای پیشنهاددهنده است که کاربرد فراوانی دارد و معمولا نتایج بهتری نسبت به مدل محتوامحور از خود نشان میدهد. شرکتهایی مانند یوتیوب، نتفلیکس و اسپاتیفای، از این مدل استفاده میکنند.
سیستمهای مبتنی بر فیلترینگ مشارکتی از تاریخچه تعاملات کاربر استفاده میکنند و آیتمهایی که احتمالا مورد علاقهی اوست را به وی نمایش میدهند. تعاملات کاربر-آیتم را میتوان با استفاده از یک ماتریس نمایش داد؛ در این ماتریس، درایهی (i,j) نشاندهندهی تعامل بین کاربر i و آیتم j است. فیلترینگ مشارکتی در واقع ترکیبی از روشهای دستهبندی (classification) و رگرسیون است. در این دو روش، ما با در اختیار داشتن متغیرهایی، سایر متغیرهای وابسته را به دست میآوریم؛ اما در ماتریس ذکرشده در روش فیلترینگ مشارکتی، تلاش ما بر این است که مقدار هر یک از درایهها را پیشبینی کنیم.
به طور خلاصه، بر اساس مدل فیلترینگ مشارکتی اگر کاربری آیتم الف را دوست داشته باشد و کاربری دیگر نیز آیتمهای الف و ب را دوست داشته باشد، احتمالا کاربر اول نیز آیتم ب را دوست دارد. برای ساخت مدل فیلترینگ مشارکتی، از دو متد عمده استفاده میشود:
- متد مبتنی بر حافظه (memory-based)
- متد مبتنی بر مدل (model-based)
متد مبتنی بر حافظه
در این متد دو رویکرد اصلی وجود دارد:
۱-در این رویکرد، ما کاربران را گروهبندی میکنیم و از تعامل آیتم-کاربر یکی از کاربران، سایر تعاملات را پیشبینی میکنیم.
۲-در این رویکرد، ما آیتمها را گروهبندی میکنیم و بر اساس امتیازاتی که کاربر به آیتمهای موجود در یک گروه میدهد، علایق او را پیشبینی میکنیم.
متد مبتنی بر مدل
این متد، مبتنی بر تکنیکهای یادگیری ماشین و دادهکاوی (data mining) است. هدف ما آموزش (train) مدلهایی است که پیشبینیهایی انجام دهند. به عنوان مثال میتوان از دادههای موجود درباره تعاملات کاربر-آیتم استفاده کرد و ۵ آیتم احتمالی مورد علاقهی کاربر را پیشبینی نمود.
مشکلات مدل مبتنی بر فیلترینگ مشارکتی
این مدل دو اشکال اساسی دارد:
۱-شروع سرد: برای آنکه مدل به خوبی کار کند نیاز به میزانی داده از تعاملات میان کاربر-آیتم داریم؛ بنابراین، قبل از آنکه یک حجم خوب از تعاملات کاربر با آیتمها به دست بیاوریم، نمیتوانیم پیشبینیهای خوبی انجام دهیم.
۲-اضافه کردن آیتم یا کاربر جدید به این مدل مشکلات فراوانی برای ما ایجاد میکند.
تکنیکهای مورد استفاده در Recommendation System
دو تکنیک اصلی برای ساخت سیستم پیشنهاد دهنده مبتنی بر مدل فیلترینگ مشارکتی وجود دارد:
- شبکههای عصبی کاملا به هم پیوسته (fully-connected neural networks)
- Item2vec
شبکههای عصبی کاملا به هم پیوسته (fully-connected neural networks)
یک روش کلاسیک، فاکتورگیری ماتریسی است. فرض کنید ماتریس R، همان ماتریس تعاملات کاربر-آیتم باشد. اگر به روشی بتوانیم ماتریسهای U و I را به دست آوریم به گونهای که R=U*I شود، میتوانیم ادعا کنیم، ماتریس تعاملات کاربر-آیتم را ساختهایم؛ از روی این ماتریس، آیتمهای مورد علاقهی هر کاربر پیشبینی میشود.
یک روش هوشمندانه برای یافتن ماتریسهای U و I، استفاده از شبکهی عصبی است. با استفاده از یک سری حدس اولیه و استفاده از شبکه عصبی میتوان ماتریس R را به دست آورد.
چه زمانی از سیستم های توصیه گر (recommender systems) استفاده کنیم؟
تا این جای کار، اطلاعات خوبی از سیستمهای توصیه گر و نحوهی عملکرد آنها به دست آوردیم. حال بیایید بررسی کنیم و ببینیم چه زمانی باید از یک سیستم توصیهگر استفاده کرد. اگر صاحب یک کسبوکار موفق هستید، احتمالا بدون سیستم پیشنهاد دهنده هم به کار خود با موفقیت ادامه میدهید؛ اما اگر میخواهید از قدرت دادهها استفاده کنید و تجربهی خارقالعادهای برای کاربران خلق کنید و از این راه درآمد خود را افزایش دهید، باید به شکل جدی به سیستم پیشنهاد دهنده فکر کنید.
برخی از تجربههای موفق استفاده از سیستمهای توصیه گر:
- ۳۵ درصد خریدهایی که در آمازون صورت میگیرند، خروجی سیستم پیشنهاد دهنده هستند.
- علیبابا با استفاده از لندینگهای شخصیسازیشده توانسته است تا ۲۰ درصد نرخ تبدیل خود را افزایش دهد.
- ۷۰ درصد زمان افراد در یوتیوب صرف تماشای خروجی سیستمهای پیشنهاد دهنده میشود.
- ۷۵ درصد زمان افراد در نتفلیکس صرف تماشای خروجی سیستمهای پیشنهاد دهنده میشود.
- استفاده از سیستم Recommendation System، سالیانه ۱ میلیارد دلار هزینههای نتفلیکس را کاهش داده است.
پیشنیازهای ساخت سیستم های توصیه گیر چیست؟
داده تنها منبع ارزشمند و مورد نیاز ماست. شما به عنوان صاحب یک کسبوکار باید دادههای تعاملات کاربر-آیتم را داشته باشید. بسته به نوع دادههایی که در اختیار دارید میتوانید از یکی از مدلهای محتوا-محور یا فیلترینگ مشارکتی استفاده کنید. هر چقدر دیتای بیشتری داشته باشید، مدلهای شما بهتر کار خواهند کرد. علاوه بر این، باید به فکر استخدام افرادی باشید که میدانند چگونه دادهها را جمعآوری و تمیز کنند.
دربارهی تعاملات کاربر-آیتم، این موارد را مد نظر داشته باشید:
- تعاملات کاربر-آیتم را باید با توجه به نوع کسبوکار خود تعریف کنید. برای مثال اگر صاحب یک E-Commerce هستید، کنشهایی مانند کلیک بر روی یک آیتم، سرچ، بازدید یک صفحه، آیتمهای مورد علاقه، خریدها و …، تعامل به حساب میآیند.
- هر چقدر تعاملات به ازای هر کاربر یا هر آیتم، بیشتر باشد، نتیجهی نهایی بهتر خواهد بود.
ساخت یک سیستم پیشنهاد دهنده از صفر کار راحتی نیست و مانند ساخت یک محصول جدید است. شروع کار با یک سیستم محتوا-محور و حتی پرسیدن سوالات مستقیم از کاربر دربارهی علایقش روش مناسبی است؛ رفته رفته و با زیاد شدن تعاملات کاربر-آیتم، امکان استفاده از سیستمهای مبتنی بر فیلترینگ مشارکتی نیز فراهم میشود.
چگونه یک سیستم Recommendation System را ارزیابی کنیم؟
بسته به هدف شما، روشهای مختلفی برای ارزیابی سیستم پیشنهاد دهنده وجود دارند. به عنوان مثال اگر تنها ۵ آیتم مورد علاقهی کاربر برای شما مهم است، احتمالا آیتمهای دیگر و کیفیت پیشبینی آنها بررسی نمیکنید؛ یا اگر ترتیب این ۵ آیتم مهم باشد، آن را بررسی و ارزیابی میکنید. دو روش کلی برای ارزیابی سیستمهای توصیه گر وجود دارد: آنلاین و آفلاین.
روشهای آنلاین
نام دیگر این روشها A/B testing است. در روشهای آنلاین، با نمایش آیتمهای پیشنهادی به کاربر و اندازهگیری مواردی مانند نرخ تبدیل و چگونگی تعامل کاربر با آن آیتم، سیستم را ارزیابی میکنید. این روشها علاوه بر دشواریهای پیادهسازی، به علت اثرگذاری مستقیم بر مشتریان، ممکن است باعث کاهش درآمد شما شوند. علاوه بر این، به علت تعامل با مشتری واقعی و ارزیابی از طریق رفتار او، روشهای آنلاین معمولا زمانبر هستند.
روشهای آفلاین
در روشهای آفلاین، بر خلاف متدهای آنلاین، کاربر مستقیما در فرایند ارزیابی درگیر نمیشود. در این روش، با استفاده از یک دیتاست نمونه، میتوان مدل را ارزیابی نمود.
جمعبندی
سیستمهای پیشنهاد دهنده موجودات بسیار جذاب و هیجانآوری هستند! از دید مشتریان، این سیستمها سبب بهبود تجربه کاربری و افزایش درگیری مخاطب میشود. از دید صاحبان کسبوکار نیز استفاده از سیستمهای توصیهگر باعث افزایش فروش میشود.
مهمترین چالش در به کارگیری یک سیستم پیشنهاد دهنده، چالش داده است. اگر هنوز دادهها را به صورت مرتب جمعآوری نمیکنید، بدون از دست دادن هیچ فرصتی، این کار را شروع نمایید.
منبع : علیرضا کریمی – فنولوژی