recommender systems و شبکه های اجتماعی

/
/
/

اخیرا رشد قابل توجهی در سایت های شبکه های اجتماعی یا SNS ها رخ داده که تاثیر قابل توجهی بر جوانب مختلف زندگی داشته است. Recommender System ها یا RS ها هم به شدت در حال رشد هستند که تاثیر خود را در فعالیت های مالی فوری با توجه به اینکه یک توصیه خوب اغلب تبدیل به یک خرید واقعی می شود، نشان داده اند. اگر چه هم شبکه های اجتماعی و هم RS ها در ابتدای کار مسیر کاملا جداگانه ای داشتند و محققان هم با آنها جداگانه برخورد می کردند اخیرا این دو  بسیار به هم نزدیک شده اند.
یکی از مهم ترین جوانب به کار برده شده در تجارت الکترونیک موفق، توانایی تشخیص محصولات و خدماتی است که افراد یا کاربران ممکن است به آنها علاقه مند باشند و سپس پیشنهاد این آیتم ها به کاربران، به منظور اینکه ترغیب به خرید شوند، می باشد.
این همان مسئله اصلی است که RS آن را هدف گرفته و مسئله مهمی نیز هست. هنگامی که بحث بازرگانی مطرح است مزایای اقتصادی مهم و فوری در یک پیشنهاد خوب در زمینه افزایش فروش و ایجاد بازار مشهود است. زمانی که بحث کاربر یا خریداران بالقوه مطرح است این روزها خریداران اغلب با تنوع انتخاب ها و گزینه ها در دنیای کسب و کار آنلاین روبرو هستند در حالی که زمان و منابع کمی برای سرمایه گذاری در فرایند انتخابی دارند. بنابراین نیازی روز افزون به پشتیبانی از پیشنهاد به کاربر، برای فائق آمدن بر این مشکلات و پیشنهاداتی به کاربران خصوصی در زمینه آیتم های گوناگون مانند کتاب، فیلم، موسیقی و اخبار احساس می شود. به علاوه ایده اصلی که در پس Recommender System ها وجود دارد را می توان نه تنها در تماس مستقیم با خرید و کسب و کار به کار برد بلکه می توان آنها را به مفاهیم گسترده تری نیز بسط داد، برای مثال به دنیای شبکه های اجتماعی که در آن این سیستم ها می توانند بسیار مفید باشند.
به عبارتی می توان گفت که سیستم های پیشنهاد دهنده سیستم هایی هستند که در پیدا کردن و انتخاب نمودن آیتم های مورد نظر کاربران به آنها کمک می کنند. طبیعی است که این سیستم ها بدون در اختیار داشتن اطلاعات کافی و صحیح در مورد کاربران و آیتم های مورد نظر آنها (بعنوان مثال فیلم، موزیک، کتاب و …)  قادر به پیشنهاد دادن نمی باشند. بنابراین یکی از اساسی ترین اهداف آنها جمع آوری اطلاعات گوناگون در رابطه با سلایق کاربران و آیتم های موجود در سیستم است. منابع و روش های گوناگونی برای جمع آوری چنین اطلاعاتی وجود  دارد. یک روش جمع آوری اطلاعات بصورت صریح که در آن کاربر صراحتا اعلام می کند که به چه چیز هایی علاقه دارد ( بعنوان نمونه با امتیاز دادن (rate) به یک موزیک). روش دیگر روش ضمنی  است که کمی دشوار تر است و در آن سیستم باید سلایق کاربر را با کنترل و دنبال کردن رفتار ها و فعالیت های او بیابد ( بعنوان مثال باید ببینید کاربر به چه موزیک هایی بیشتر گوش می دهد، چه صفحاتی را بازدید می کند، با چه کسانی در ارتباط است و …). علاوه بر اطلاعات ضمنی و صریح برخی از سیستم ها نیز هستند که از اطلاعات شخصی کاربران استفاده می کنند. بعنوان مثال سن، جنسیت و ملیت کاربران می تواند منبع خوبی برای شناخت کاربر  و ارائه پیشنهاد به وی باشد. به این گونه از اطلاعات Demographic Information گفته می شود که گروهی از سیستم های پیشنهاد دهنده مبتنی بر همین اطلاعات بنا شده اند. با ظهور web 2و گسترش شبکه های اجتماعی در سال های اخیر محققین به منبع اطلاعاتی دیگری برای بهبود کیفیت پیشنهاد ها پی بردند که همان اطلاعات موجود در شبکه های اجتماعی بود و بر همین اساس کار های تحقیقاتی زیادی در این حوزه پایه ریزی گردید.
اهمیت سیستم های پیشنهاد دهنده وقتی بیش از پیش مشخص می شود که کاربران با انبوهی از اطلاعات و آیتم ها مواجه باشند. در چنین شرایطی سیستم باید پیشنهاد های خود را با در نظر گرفتن موارد زیر به کاربر دهد :
• شرایط و محیطی که کاربر در ان قرار دارد (user context)
• نیاز کاربر
• دانش سیستم در مورد کاربر
• سابقه فعالیت های کاربر
هر کدام از موارد بالا، زمینه ظهور گروهی از سیستم های پیشنهاد دهنده بوده است. بعنوان مثال شرایط و محلی که کاربر در آن قرار  دارد باعث پیدایش گروهی از سیستم های پیشنهاد دهنده بنام context-aware recommender system شده است. و یا دانش سیستم از کاربر، زمینه ظهور سیستم های پیشنهاد دهنده مبتنی بر دانش   (knowledge-based RS)را فراهم آورده است.
رسانه های اجتماعی باعث شده اند که روش های جستجوی اطلاعات، به اشتراک گذاشتن دانش و نحوه ارتباط افراد با یکدیگر تغییر کند. فاکتور مهمی که باعث رشد روز افزون این تکنولوژی شده توانایی تولید آسان محتوا توسط کاربر است. وبلاگها، توییتر، ویکی پدیا، فلیکر و یوتیوب تنها نمونه هایی از رسانه های اجتماعی هستند. هر روز تعداد زیادی از اطلاعات جدید اخبار، تبلیغات، محصولات و وبلاگ ها با سرعت زیادی ایجاد می شوند. متاسفانه انفجار اطلاعات لزوما منجر به پیشرفت در کیفیت زندگی ما نمی شود. پیدا کردن اطلاعات و دانش مرتبط از میان تعداد زیادی اطلاعات موجود می تواند بسیار وقت گیر و حتی نا امید کننده باشد. بنابراین داشتن یک سیستم هوشمند که قادر باشد علایق کاربران را یاد بگیرد و بر اساس این علایق بصورت اتوماتیک علایق غیر مرتبط را فیلتر کند یا اطلاعات مرتبط را در زمان کم به کاربر پیشنهاد دهد و در تصمیم گیری انتخاب کالا به کاربر کمک کند ضروری است. سیستم های پیشنهاد دهنده با مسئله سربار اطلاعات سروکار دارندو پیشنهاد آیتم ها به کاربران در حل این مشکل کمک می کند.
افراد معمولا به نظر افراد قابل اطمینان توجه می کنند. بنابراین سایت های تجارت الکترونیک به منظور افزایش فروش و مدیریت روابط مشتری بر روی تاثیر روابط اجتماعی در تصمیم گیری خرید متمرکز شده اند. روش های بسیاری در جهت استفاده از تاثیرات اجتماعی در سیستم های پیشنهاد دهنده صورت گرفته است. برخی از محققان سیستم های پیشنهاد دهنده اجتماعی را مطرح کرده اند که در زمان کمک به مشتری در تصمیم گیری، روابط اجتماعی را علاوه بر علایق کاربر در نظر می گیرد. در روشی دیگر با استفاده از داده هایی که از سایت Epinion (یک سایت شبکه اجتماعی به آدرس www.Epinion.com ) استخراج شده بود، مدلی را طراحی کردند و با استفاده از آن میزان اعتماد هر کاربر را محاسبه نمودند. به این ترتیب نشان داده شده که سیستم های پیشنهاد دهنده مبتنی بر اعتماد پیش بینی های دقیق تری دارند. مسئله اندازه گیری تاثیر اجتماعی در شبکه های اجتماعی مبتنی بر وب به نظر می رسد که کلید اصلی افزایش صحت سیستم پیشنهاد دهنده و به دنبال آن حمایت از کاربر در تصمیم گیری های خرید باشد.
سیستم های پیشنهاد دهنده یا توصیه گر سعی می کنند از سربار اطلاعات بکاهند و در تصمیم گیری های متنوعی از قبیل تماشا یا عدم تماشای فیلم، خریدن یا نخریدن کالا، گوش دادن یا گوش ندادن به آهنگ و تصمیمات دیگر به کاربران بر اساس علایقشان کمک کنند.
سیستم های پشتیبانی از تصمیم، کلاس خاصی از سیستم های اطلاعاتی کامپیوتری هستند که کاربران و سازمان های مختلف را در فعالیت های تصمیم گیری پشتیبانی می کنند. این سیستم ها داده های خام، اسناد، دانش شخصی و یا مدل های تجاری را به منظور شناسایی و حل مسائل مربوط به تصمیم گیری، مورد پردازش قرار می دهند. در حقیقت یک دیدگاه تکمیلی بر روی سیستم های پیشنهاد دهنده در نظر گرفتن آنها به عنوان سیستم های پشتیبانی از تصمیم است که به کاربران کمک می کند تصمیم ها و انتخاب بهتری داشته باشد. بنابراین سیستم پیشنهاد دهنده یک سیستم پشتیبانی از تصمیم است که می تواند آیتم های مناسب را به کاربران پیشنهاد کند.
سایت های اجتماعی مبتنی بر وب به کاربرانشان اجازه می دهند که کالاهای مختلف را با عددی به عنوان میزان علاقه مندیشان به آن کالا مقداردهی کنند و تجربیات شخصیشان را با نوشتن نظر و مقداردهی نظرات دیگر کاربران بیان نمایند. برای فهمیدن تاثیر روابط اجتماعی در تصمیم گیری خرید مشتریان به منظور مدیریت روابط مشتری و افزایش فروش، شرکت های تجارت الکترونیک جمع آوری داده های ناشی از تعامل اجتماعی کاربران را در سایت هایشان مدنظر قرار داده اند.
حال این سوال مطرح می شود که چگونه اطلاعات مربوط به تعامل اجتماعی کاربران را جمع آوری کنیم تا بتوانیم از این اطلاعات در فرآیند تصمیم گیری خرید و پیشنهاد کالا به کاربران استفاده کنیم؟
یکی از روش ها استفاده از تکنولوژی های به کار رفته در تحلیل شبکه های اجتماعی است که منجر به استفاده از تاثیر تعامل های اجتماعی کاربران در فرآیند تصمیم گیری خرید می شود. تحلیل شبکه های اجتماعی یک متدولوژی برای تحلیل الگوهای ارتباطی و تعامل های بین کاربران به منظور کشف ساختارهای اجتماعی است. تکنولوژی های تحلیل شبکه های اجتماعی سعی می کنند از ۳ طریق تاثیر تعامل های اجتماعی کاربران را نشان دهند:
شناسایی کاربران کلیدی  از قبیل کاربران قابل اعتماد یا خبره در شبکه های اجتماعی
استخراج انجمن ها (گروه های اجتماعی) در شبکه های بزرگ
پیش بینی لینک یا مقادیر اعتماد بین کاربران در شبکه های اجتماعی
با رشد روز افزون تجارت در دنياي وب، آموزش الکترونيکي، افزايش ارتباط و اشتراک کاربران با يکديگر و پيدايش شبکه هاي اجتماعي، لزوم طراحي و پياده سازي سيستمهاي توصیه گر غير قابل انکار است . به اين منظور الگوريتم هاي متعددي مورد استفاده قرار گرفته اند که اکثريت آنها بر پايه دو الگوريتم مبتني بر پالايش مشارکتي و پالايش مبتني بر محتوا هستند.
Recommender System ها بر اساس تئوری که در پس زمینه آنها وجود دارد ریشه در برخی قوانین مانند تئوری های پیش بینی، بازیابی اطلاعات، تئوری تقریب و مدلسازی انتخاب مشتری دارند.

Recommender System ها اکنون در قلب برخی از کسب و کارهای الکترونیکی مالتی میلیارد دلاری مانند آمازون، Netflix و MovieLens قرار دارند. بنابراین برای ایجاد چنین پیشنهادهای موفقی باید اطلاعات (داده ها) را به تصرف در آورده و پردازش کرد: اطلاعات مورد نیاز اغلب شامل دیتابیس هایی از کاربران و آیتم ها به همراه اطلاعات توصیفی درباره آنها و احتمالا similarity space های میان دامین ها (کاربرها و آیتم ها) و همچنین روش های ریاضی/ الگوریتمی  برای ایجاد و به روز رسانی پیش بینی ها بر اساس اطلاعات می باشد.
و این دقیقا اولین نقطه آشکار برتری تماس میان سایت های شبکه های اجتماعی و سیستم های recommender است: اطلاعات ارزشمندی درباره کاربران، سلایق و عادات آنها در شبکه های اجتماعی وجود دارد مثلا در فیسبوک کاربران علایق و تفریحات خود و کتاب ها و فیلم های مورد علاقه خود را وارد میکنند (سینرژی ۱).
به علاوه مشاهده قدرتمند دوم که پایه خوبی برای این همکاری ها یا مشارکت های یا سینرژی ها فراهم می کند این است که شبکه های اجتماعی مکان های محبوب زندگی دیجیتال هستند. مردم بخش اعظمی از زمانی که آنلاین  هستند را در شبکه های اجتماعی می گذرانند. بنا براین شبکه های اجتماعی پلتفرم ایده آلی نه تنها برای جمع آوری اطلاعات مفید برای ارائه پیشنهادات بوده بلکه در واقع برای ارائه این پیشنهادات به کاربر متناسب با آن مفید می باشند (سینرژی ۲).
به علاوه در سایت های شبکه های اجتماعی نیاز به پیشنهاد نه تنها برای محصولات و خدمات بلکه برای اشخاص و گروه ها هم وجود دارد که به این ترتیب کاربر می تواند به شخص یا یک مد حرفه ای به طور بالقوه لینک داده شود. و این موضوع سومین دامین را برای سینرژی ها یا همکاری های قدرتمند میان RS وشبکه های اجتماعی فراهم می کند.

تکنیک های Recommendation آنلاین
فروشنده های آنلاین مانند آمازون و نتفلیکس از برخی از سیستم های recommender برای اهداف تجاری استفاده می کنند. این سیستم ها برای پیش بینی علایق کاربر به یک آیتم جدید بر اساس امتیازی که قبلا به آیتم های دیگر داده است، کار می کنند. زمانی که سیستم ها بیشتر پیش بینی می کنند مشتریان علاقه مندتر می شوند.
این شرکت ها برای ارتقای این سیستم ها سرمایه گذاری های زیادی انجام می دهند تا پیشنهادهای محصولاتشان یکپارچه باشد. برای مثال نتفلیکس در یک رقابت آزاد در سال ۲۰۰۶ جایزه یک میلیون دلاری برای بهترین الگوریتمی که علایق کاربر را پیش بینی کند پیشنهاد کرد.
اصول سیستم های پیشنهاد دهنده :
برای پایه ریزی و ایجاد یک سیستم پیشنهاد دهنده کارا مواردی وجود دارند که باید به آنها توجه نمود و در پروسه طراحی و پیاده سازی سیستم آنها را باید در نظر گرفت. این موارد به شرح ذیل می باشند:
• نوع داده های موجود در بستر سیستم. بنا به کاربرد سیستم ممکن است انواع مختلفی از منابع اطلاعاتی در سیستم وجود داشته باشد. این اطلاعات می توانند امتیاز های کاربران به آیتم ها (ratings)، اطلاعات شخصی کاربران، محتوای مربوط به آیتم های سیستم، ارتباطات موجود در شبکه های اجتماعی و اطلاعات مربوط به موقعیت کاربر(location-aware information) باشند. طبیعی است که در پروسه طراحی یک سیستم پیشنهاد دهنده باید به نوع داده های در اختیار توجه بسیار نمود.

•    الگوریتم فیلترینگ مورد استفاده. هدف سیستم های پیشنهاد دهنده در واقع رتبه بندی آیتم های سیستم به لحاظ نزدیک بودن به علایق کاربران می باشد تا در هنگام ارائه پیشنهاد آیتم هایی با رتبه بالاتر را به کاربر پیشنهاد دهند. برای این منظور الگوریتم های متعددی پیشنهاد شده اند که مهمترین آنها عبارتند از :
o Collaborative Filtering
o Content-based Filtering
o Social-based Filtering
o Knowledge-based Filtering
o Context-aware Filtering
o Hybrid Filtering
• مدل انتخابی برای سیستم. در حال حاظر برای پیاده سازی سیستم های پیشنهاد دهنده دو راهکار استفاده می شود. یکی استفاده مستقیم از داده های موجود سیستم است که به این راهکار، روش مبتنی بر حافظه یا memory-based گفته می شود و دیگری که کمی هوشمند تر است استفاده از یک مدل در سیستم است که بدان راهکار مبتنی بر مدل یا model-based  گفته می شود (استفاده از الگوریتم های ژنتیک، شبکه های عصبی، فازی).
• تکنیک مورد استفاده در پیشنهاد دادن. راهکار ها و تکنیک های مختلفی برای پیاده سازی هسته یک سیستم پیشنهاد دهنده وجود دارد. بعنوان مثال می توان از الگوریتم های ژنتیک، شبکه های عصبی، شبکه های Bayesian، روش های احتمالی و یا الگوریتم های همسایگی برای پیاده سازی هسته چنین سیستم هایی استفاده می شوند.
• مقیاس پذیری مورد انتظار سیستم.
• کارایی مطلوب سیستم ( از نظر میزان حافظ مصرفی و زمان).
• کیفیت نتایج قابل ارائه. نتایجی که یک سیستم پیشنهاد دهنده ارائه می دهد می تواند با توجه به کاربرد آن و اینکه در چه حوزه ای از بازار کسب و کار در حال استفاده است متفاوت باشد. بعنوان مثال در برخی از سیستم ها ممکن است هدف ارائه جدید ترین ها باشد (novelty) در حالی که در برخی دیگر هدف می تواند پوشش دادن به تمامی آیتم ها باشد. بطور کلی در سیستم های پیشنهاد دهنده هدف فراهم آوردن سه فاکتور تازگی(novelty) ، دقت (precision)  و پوشش (coverage) در نتایج پیشنهادی است.
در اینجا چند نمونه از راهکارهای متداول فیلترینگ معرفی خواهند شد:
Collaborative Filtering:
یکی از مهمترین و پراستفاده ترین روش های فیلترینگ در سیستم های پیشنهاد دهنده روش Collaborative Filtering می باشد که پایه و مبنای کار در بسیاری از راهکار های دیگر نیز بشمار می رود. روش کار این الگوریتم در واقع به همان صورتی است که ما در تصمیم گیری های روزمره مان عمل می نماییم. بعنوان مثال کالایی را می خریم که بیشتر مورد پسند دیگران واقع شده باشد (مثلا در دنیای تجارت الکترونیک امتیازهای(rate) بیشتری به آن داده شده باشد). بنابراین می توان گفت در روش Collaborative Filtering آنچه مد نظر قرار داده می شود، بیشتر تجربه دیگران است تا خود فرد.
در این روش ابتدا باید اجازه داد تا کاربران در سیستم مشارکت نمایند و به آیتم های مختلف موجود در سیستم امتیاز دهند. البته این امتیاز دادن ها می توان به صورت ضمنی نیز اتفاق بیفتد و توسط سیستم تشخیص داده شود. بعنوان مثال یک نوع امتیاز دادن ضمنی می توان بدین شکل باشد که آیتم هایی که بیشتر دانلود شده اند احتمالا از محبوبیت بیشتری برخوردار بوده اند و در نتیجه امتیاز بیشتری نسبت به بقیه به آنها داده می شود.
توجه داشته باشید که در این راهکار سیستم بر مبنای امتیازات، آیتم ها را رتبه بندی می کند و آیتم هایی با بیشترین امتیاز را به کاربر پیشنهاد می دهد. بهمین دلیل در صورتی که سیستم تازه شروع به کار کرده باشد و یا آیتم جدیدی به سیستم اضافه شود، اطلاعات کافی از آیتم ها در دسترس نخواهد بود و در نتیجه نمی توان به درستی امتیاز دهی و رتبه بندی را انجام داد. این یکی از مشکلات اساسی و مهم در اینگونه سیستم هاست که با عنوان شروع سرد (Cold Start) شناخته می شود. البته این سیستم ها از مشکل دیگری نیز رنج می برند که پراکندگی داده ها (Data Sparsity) می باشد. بدین معنی که اطلاعات در سیستم وجود دارد اما پراکنده هستند و نمی توان بدرستی و با قطعیت گفت که چه آیتمی مقبولیت بیشتری دارد. در مورد مشکلاتی که در این سیستم ها وجود دارد در انتهای مقاله بیشتر توضیح داده خواهد شد.
پس در رویکرد Collaborative Recommendations یا پیشنهادات مشارکتی به کاربر آیتم هایی پیشنهاد می شود که افرادی با همان سلیقه و همان علایق در گذاشته دوست داشته اند.
برای مثال برای پیشنهاد کتاب i به کابر u سیستم پیشنهاد مشارکتی مجموعه ای از کاربرانی را پیدا می کند که علاقه یکسانی در انتخاب کتاب ها با کاربر u داشته اند سپس کتاب هایی را که توسط این کاربران بیشترین لایک را داشته به کاربر u پیشنهاد می کند.
اولین سیستم collaborative recommender ، Grundy است که از stereotype ها برای ساخت مدل هایی برای کاربران با ساخت مدلهای کاربری و سپس استفاده از آنها برای پیشنهاد کتاب به هر کاربر استفاده می کند. سیستم دیگر Tapestry  است که از کاربران برای تعیین سایر کابران مشابه استفاده می کند. GroupLens هم یکی دیگر از گروه های اولیه ای است که از فیلترینگ collaborative برای اخبار Usenet استفاده کرد. سایر سیستم های collaborative filtering recommender اولیه Video Recommender و Ringo هستند. از دیگر سیستم های recommender می توان به Amazon book recommendation system ، PHOAKS که برای کمک به افراد برای پیداکردن اطلاعات در WWW استفاده می شود و joke recommender system Jester اشاره کرد.
Collaborative recommendation را می توان به دو دسته تقسیم کرد:
۱) مبتنی بر حافظه و ۲) مبتنی بر مدل.
در الگوریتم های مبتنی بر حافظه امتیاز ناشناخته آیتم i برای کاربر u بر اساس امتیاز سایر کاربران که با کاربر u آشنا هستند برای همان آیتم i محاسبه می شود. در الگوریتم های مبتنی بر مدل از امتیازات برای ساخت یک مدل استفاده می شود که پس از آن برای پیش بینی استفاده می شود.
رویکردهای مختلفی برای یادگیری مدل معرفی شده مانند روشی که دو مدل احتمالاتی ارائه می دهد:
کلاستر مدل، که در آن کاربران مشابه در کلاس های مشابه کلاستر می شوند و شبکه بیزین که مقدار امتیازات هر آیتم از طریق حالات هر نود تعیین می شود.
در عکس صفحه قبل به یکی از راهکارهای متداول فیلترینگ سیستم های پیشنهاد دهنده اشاره کردیم، در ادامه به یکی از الگوریتم های معروف این تکنیک اشاره خواهد شد :

الگوریتم KNN  یا K Nearest Neighbors
رایجترین الگوریتم مورد استفاده در روش CF، الگوریتم KNN می باشد. در این الگوریتم دو رویکرد وجود دارد. رویکرد اول نگاهی کاربر به کاربر یا user-to-user به سیستم دارد. الگوریتم هایی که بر مبنای این نگاه پیاده سازی می شوند شامل سه گام هستند :
گام اول –  در این گام بر اساس یک معیار شباهت (cosine، Pearson Correlation،  Mean square difference)  برای کاربر a  تعداد k همسایه انتخاب می شود. این همسایگان، آنهایی هستند که بیشترین شباهت را به کاربر aدارند.
گام دوم – در گام دوم به ازای تمامی آیتم های موجود در سیستم معیاری کمی برای پیش بینی(prediction) آنکه آیا آیتم i مورد پسند کاربر a  قرار خواهد گرفت یا خیر محاسبه می شود.  محاسبه این معیار کمی با استفاده از راهکار های مختلفی (میانگین امتیازات (average)، حاصل جمع وزن دار (weighted sum) و …)  از روی امتیاز هایی که همسایگان کاربر a به آیتم i داده اند حاصل می شود.
گام سوم – بر اساس گام دوم، از بین تمامی آیتم ها N آیتمی که بیشتری مقدار پیش بینی را دارند به کاربر پیشنهاد داده می شوند.
از جمله مزیت های این الگوریتم سادگی و در عین حال دقت نتایج حاصل از آن است. البته دو مشکل اساسی نیز دارد که عبارتند از مقیاس پذیری کم (scalability)  و آسیب پذیری در مقابل پراکندگی داده ها(sparsity) در پایگاه داده. با افزوده شدن کاربر جدید به سیستم معیار های شباهت و مقادیر پیش بینی ها باید مجددا حساب شوند که با افزایش تعداد کاربران و بزرگ شدن سیستم این مسئله سر بار محاسباتی زیادی را به سیستم وارد  می آورد و مشکل ساز می شود.
برای حل مشکل مقیاس پذیری در این الگوریتم، نسخه دیگری از آن با رویکردی متفاوت ارائه شده است. این رویکرد نگاه آیتم به آیتم (item-to-item) دارد و توانسته است مشکل مقیاس پذیری را تا حد قابل توجهی کاهش دهد. در این نسخه نیز سه گام اصلی دیده می شود که به شرح زیر می باشند :
گام اول – ابتدا بر اساس معیارهای شباهت برای هر آیتم i تعداد q همسایه را تعیین می کنیم.
گام دوم – در صورتی که کاربر a به آیتم  i تاکنون امتیازی نداده باشد، بر اساس امتیازاتی که این کاربر به آیتم های همسایه i داده است مقدار پیش بینی (prediction) را محاسبه می کنیم.
گام سوم – بر اساس مقادیر پیش بینی ها (recommendations) آیتم هایی را که بیشترین مقدار پیش بینی را دارند به کاربر a پیشنهاد می کنیم.

تعیین میزان شباهت
اساس کار در سیستم های پیشنهاد دهنده مبتنی بر CF تعیین میزان شباهت بین کاربران و آیتم هاست تا بر اساس آن بتوان همسایگی  را بدست آورد. برای این منظور نیاز به یک معیار شباهت وجود دارد. در روش های سنتی شباهت بر اساس امیتاز دهی (ratings) تعیین می شد. بدین گونه که اگر دو کاربر به یک آیتم رای می دادند سیستم نتیجه می گرفت که شباهتی بین این دو آیتم وجود دارد. در مورد آیتم ها نیز این مسئله به گونه ای دیگر قابل تعریف است. بدین صورت که در صورتی که به دو آیتم توسط کاربران یکسانی رای می دادند سیستم احتمال می داد که شباهتی بین این دو آیتم وجود دارد.
در کنار این معیار، موارد دیگری نیز مطرح هستند که از آنها در تعیین شباهت بین کاربران و آیتم ها استفاده می شود. برخی از این معیار ها عبارتند از :
Pearson Correlation، Cosine ، Adjusted Cosine، Mean Square Difference و Constraint Correlation
با ظهور Web 2 و گسترش شبکه های اجتماعی این روز ها گرایش به سمت استفاده از پتانسیل موجود در این شبکه در امر تعیین میزان شباهت و ارائه پیشنهادات دقیق تر بوجود آمده است. بر همین مسائل مسائلی همچون trust، Credibility و reputation نیز در تعیین میزان شباهت استفاده می شود.
از بین انواع سیستم های توصیه گر گفته شده، درحال حاضر فیلترینگ مشارکتی، فیلترینگ محتوا محور و روش ترکیبی مورد توجه بیشتری هستند.

Demographic Filtering
اطلاعاتی نظیر سن، جنسیت، ملیت و … در گروه اطلاعات دموگرافیک (Demographic) قرار می گیرند. سیستم هایی که از این روش استفاده می کنند بر این اساس عمل می کنند که کاربرانی که صفات دموگرافیک مشابهی دارند (مثلا در یک بازه سنی قرار می گیرند) احتمالا سلایق و خواسته ها مشابهی نیز دارند.

Content-based Filtering
بر خلاف روش قبلی که پیشنهادها بر اساس تجربیات دیگران داده می شد، در Content-based Filtering تکیه بر اطلاعات و سلایق کاربر جاری است، بدین شکل که برای ارائه پیشنهاد، به انتخاب ها و تجربیات وی در گذشته توجه می شود. عموما در چنین روش هایی نیاز به تحلیل و آنالیز اطلاعات و محتویات (contents) مربوط به کاربر و آیتم های موجود در سیستم است تا بتوان میزان شباهت بین کاربر و آیتم های سیستم (و نیز شباهت بین آیتم ها با یکدیگر) را تعیین نمود. در نتایج پیشنهادی به کاربر، آیتم هایی آورده می شوند که شباهت بیشتری به آیتم هایی دارند که قبلا کاربر آنها را انتخاب نموده است. نکته مهم و اساسی در چنین سیستم هایی انتخاب یک معیار شباهت (similarity measure) می باشد. در پایان مقاله در مورد مشکلات این روش نیز صحبت شده است.
همان طور که گفته شد در پیشنهاد بر اساس محتوا بر اساس سلایق و علایق قبلی کاربران به آنها پیشنهاد داده می شود. برای مثال برای پیشنهاد دادن کتاب i به کاربر u سیستم پیشنهاد بر اساس محتوا، به دنبال کتابهای مرتبط قبلی توسط کاربر u می گردد و سپس کتاب هایی را که بیشترین مشابهت را به علایق  قبلی کاربر داشته به او پیشنهاد میکند. در این نوع سیستم پیشنهاد دهنده، پیشنهاد بر اساس خود آیتم است نه علایق کاربران دیگر. به علاوه در این رویکرد کاربران می توانند به سیستم در فراهم نمودن امتیاز های اولیه کمک کنند و سیستم می تواند مشخصه های منحصر به فردی برای علایق کاربر بدون مطابقت دادن آنها با علایق اشخاص دیگر پیدا کند. برای مثال اشخاصی که از کتابخانه آمازون برای خرید کتاب مثلا برای کتابخوان کیندل استفاده می کنند می دانند که ابتدا از  آنها سوالاتی درباره کتاب ها و موضوعات مورد علاقه ایشان  پرسیده می شود و این اطلاعات دسته بندی می شوند و از آن پس هر بار بر اساس همان نظرات، کتاب هایی مربوط به همان ژانر به آنها پیشنهاد می شود.
شکل سمت راست رویکرد مبتنی بر محتوا را نشان می دهد.

گام های روش CBF
در روش Content-based Filtering سه گام اصلی وجود دارد:
• استخراج صفات (attributes) مربوط به آیتم ها – برای آنکه یک سیستم مبتنی بر CBF بخوبی عمل نماید، ابتدا می بایست صفات مربوط به آیتم ها استخراج شوند. عموما بیشتر صفات بطور صریح همراه با آیتم ها در سیستم درج می شوند. بنابراین استخراج اینگونه صفات با مشکل خاصی مواجه نمی باشد. اما گروهی دیگر از صفات هستند که بر اساس دامنه (domain) سیستم، برای استخراج آنها باید از تکنیک های خاصی استفاده نمود. بعنوان مثال در سیستم هایی که آیتم ها اسناد متنی هستند، می بایست از روش های کلاسیک بازیابی اطلاعات(information retrieval) استفاده نمود تا بتوان به صفاتی از قبیل term frequency،  inverse document frequency و document length دست پیدا کرد.
•    مقایسه صفات آیتم ها با سلایق کاربر –  پس از مشخص شدن صفات آیتم ها باید تحلیل هایی صورت پذیرد که نشان دهد آیتم های موجود در سیستم تا چه اندازه با علایق کاربر همخوانی دارند که این کار عموما با استفاده از روش هایی از قبیل روش های اکتشافی (heuristic) و یا الگوریتم های classification انجام می شود.
• پیشنهاد دادن آیتم هایی که شباهت بیشتری به سلایق کاربر دارند.

گرایش موجود در مورد سیستم های CBF ترکیب آنها با شبکه های اجتماعی و استفاده از اطلاعاتی نظیرtag، comment  و social network sharing است. معروف ترین این سیستم ها سیستم های پیشنهاد دهنده تگ (tag recommendation systems) هستند. البته حوزه کار بر روی تگ ها به دو دسته تولید سیستم های پیشنهاد دهنده تگ و استفاده از تگ ها در پیشنهادات تقسیم می شود.

گروه بندی کاربران
سیستم های CBF بدلیل نیاز به اعمال پردازشی و تحلیلی فراوان کارایی کمتری نسبت به بقیه سیستم ها دارند. یکی از راهکار های موثری که برای بهبود کارایی آنها پیشنهاد شده است گروهبندی کاربران و ارائه پیشنهاد به کل گروه است (بجای یک کاربر). اگر چه در این روش بهبودی در دقت و کیفیت نتایج حاصل نمی شود اما در کارایی و کم شدن سربار پردازشی تاثیر بسیاری دارد.

Social-based Filtering
همانطور که گفته شد با گسترش شبکه های اجتماعی گروهی از محققان به سمت استفاده از اطلاعات موجود در این شبکه ها (نظیر trust، followed، Followers، friends، comments، blog و tags) در سیستم های پیشنهاد دهنده رفتند. توجه داشته باشید که این اطلاعات ممکن است بصورت صریح و یا ضمنی جمع آوری شوند. بر اساس نتایج حاصل از بکارگیری این اطلاعات مشخص شده است که این کار باعث بهبود نتایج پیشنهادی و همچنین کاهش مشکل sparsity شده است.
در حوزه استفاده از شبکه های اجتماعی در سیستمهای RS، مطالعات و تحقیقات علمی به دو دسته تقسیم می شوند. گروهی بدنبال استفاده از اطلاعات موجود در این شبکه ها در جهت بهبود کارایی سیستم های موجود رفتند که نتایج حاصل از کارهای آنها گواه بر تاثیر مثبت این اطلاعات در سیستم هایRS دارد. در مقابل گروهی دیگر از محققین به سمت ایجاد یک سیستم پیشنهاد دهنده جدید مبتنی برSocial Filtering رفتند. این گروه دیگر بدنبال ترکیب شبکه های اجتماعی با سایر سیستم های پیشنهاد دهنده نیستند. بلکه قصد دارند از پتانسیل های موجود در چنین شبکه هایی برای ایجاد یک سیستم مستقل استفاده نمایند.

Trust و Reputation
در میان اطلاعات موجود در شبکه های اجتماعی، trust و reputation نسبت به بقیه توجهی بیشتری را به خود جذب کرده اند. معیار trust در واقع میزان اعتبار یک کاربر در بین سایر کاربران است که نقش موثری در پیشنهادات می تواند داشته باشد. بعنوان مثال هرچه میزان trust یک کاربر بیشتر باشد، امتیاز هایی که او به آیتم ها می دهد از درجه اهمیت و وزن بیشتری نسبت به سایرین برخوردار است. دو راه کار برای تعیینTrust کاربران وجود دارد. روش اول از طریق اطلاعاتی است که صریحا از خود کاربر کسب می شود. روش دوم نیز از طریق اطلاعات ضمنی و روابط بین کاربران که در شبکه های اجتماعی موجود است می باشد. برخی از راهکار هایی که تاکنون در مقالات پیشنهاد شده اند عبارتند از : مکانیزم های انتشار trust (trust propagation mechanism)، روش Follow The Leader، شبکه trust (Trust Network)، معیار های شباهت مبتنی بر خصوصیات فردی (personality-based similarity measures)، ِDistrust Analysis.
در مورد آیتم ها، معیار Reputation مورد استفاده قرار می گیرد. می توان این معیار را برای آیتم ها از روی تعداد امتیازاتی که کاربران به یک آیتم می دهند (صریح) و یا با بررسی نحوه کار کاربران با آیتم ها (ضمنی) تعیین نمود.

استفاده از برچسب (tag)
یکی از امکاناتی که در بیشتر سیستم های پیشنهاد دهنده اجتماعی وجود دارد اینست که کاربران امکان اختصاص برچسب (tag) را به آیتم ها دارند. بنابراین در چنین سیستم هایی ما مجموعه از سه تایی های<user, item, tag> را داریم که این مجموعه ها باعث ایجاد فولکسونومی ها (folksonomies) می گردد. پتانسیل بالایی که توسط تگ ها، بعنوان فرا داده (metadata)، در فواکسونومی ها بوجود آمده است منجر شده است به اینکه گروهی از سیستم های پیشنهاد دهنده کاملا بر مبنای تگ ها شکل بگیرند (Tag Recommendation Systems). علاوه بر این گونه از سیستم ها، بدلیل مزایای بسیار استفاده از بر چسب ها، در برخی از سیستم های ترکیبی (hybrid) از این برچسب ها برای تقویت و بهبود کیفیت نتایج پیشنهادی بکارگیری شده است.

Context-aware Filtering
حرکت به سمت Web 3 یا همان Internet Of Things باعث ظهور نسل جدیدی از سیستم های پیشنهاد دهنده شده است. در چنین محیطی دستگاه ها  و سنسور های گوناگونی وجود دارند که اطلاعاتی از شرایط کاربر (context) را جمع آوری می کنند. چنین اطلاعاتی را می توان در سیستم های پیشنهاد دهنده مورد استفاده قرار داد تا نسل جدیدی از سیستم ها بنام سیستم های مبتنی بر Context-aware information شکل بگیرند. تاکید این سیستم ها بر اطلاعاتی از قبیل زمان، مکان، اطلاعات حاصل از دوربین های امنیتی، RFID ها و شبکه های حسگر بیسیم و نیز پارامتر های سلامت، عادات خرید و غذاخوردن فرد می باشد. این اطلاعات را می توان بصورت صریح و یا با استفاده از روش های داده کاوی (data mining)کسب نمود.

Location-aware Recommendation Systems
یکی از موفق ترین این سیستم ها که در سال های اخیر کار های خوبی نیز بر روی آن انجام شده است، سیستم های پیشنهاد دهنده مبتنی بر موقعیت (Location-aware RS) می باشند. این گونه از سیستم ها که عموما در برنامه های تلفن همراه نمود دارند، بر اساس موقعیت فعلی کاربر پیشنهاداتی را در حوزه خاصی به وی می دهند.
دسته ای از این سیستم ها، بصورت ترکیبی با سیستم های CF استفاده می شوند. راهکار رایج در این نوع سیستم های پیشنهاد دهنده بدین صورت است که امتیازدهی بصورت سنتی در قالب یک روش CF به آیتم ها داده می شود. اما هنگامی که پیشنهاد به کاربر داده می شود اطلاعات جغرافیایی او نیز در پروسه ارائه پیشنهاد دخیل می گردند. این مسئله باعث ایجاد پیچیدگی در سیستم می شود. چرا که با تغییر مکان کاربر آیتمی که قبلا مطلوب کاربر بوده و باید به وی پیشنهاد داده می شد، ممکن است دیگر مورد پسند کاربر نباشد. بعنوان مثال فرض کنید فردی که در محل کار است بدنبال رستورانی برای سفارش ناهار می گردد. رستورانی که در نزدیکی محل کارش است به او پیشنهاد داده می شود و فرد به این رستوران امتیاز مثبت می دهد. حال اگر فرد به خانه خود باز گردد که در فاصله دوری نسبت به رستوران قرار گرفته است، آیا در هنگام سفارش غذا بازهم این رستوران باید به وی پیشنهاد داده شود یا خیر؟ اگرچه سیستم بر مبنای الگوریتم CF تشخیص می دهد که این رستوران مورد پسند کاربر است اما بدلیل دوری از محل فعلی کاربر نباید به وی نشان داده شود.

Knowledge-based Filtering
سیستم های پیشنهاد دهنده مبتنی بر دانش، نسل جدیدی از سیستم های RS هستند که مبتنی بر دانش موجود در رابطه با کاربران و آیتم ها هستند. چنین سیستم هایی، پیشنهادات خود را بر پایه تفسیر و استنباط خود از سلایق و نیاز های کاربر ارائه می دهند و از دیدگاه تئوری نسبت به سایر روش های ذکر شده از دقت و کیفیت بیشتری برخوردار هستند. طبیعی است که برای پیاده سازی چنین سیستم هایی نیاز به یک بستر و ساختار مبتنی دانش وجود دارد (آنتولوژی ها، case-based reasoning، constraint-based reasoning، knowledge vectors و social knowledge).
یکی از فیلد های کاری در زمینه knowledge-based filtering، Workflow می باشد که مبتنی بر مدل users-roles-tasks است.  در این مدل تشریح می شود که هر کدام از کاربران در چه نقش هایی چه وظایفی را انجام می دهند. شبکه های نظیر به نظیر (peer-to-peer) نیز حوزه دیگری از تحقیقات را به خود اختصاص می دهند که در آن دانش سیستم در مورد آیتم ها و کاربران در بین peer ها توزیع شده است.

روش های الهام گرفته شده از طبیعت (bio-inspired)
بسیاری از روش های ارائه شده در زمینه سیستم های RS از الگوریتم های مبتنی بر طبیعت الهام گرفته اند. بطور کلی می توان این راهکار ها را به دو گروه راهکارهای الگوریتم تکاملی (GA) و راهکار های شبکه های عصبی (NN) تقسیم بندی نمود. البته مدل هایی نیز هستند که بر پایه شبکه های ایمنی بدن (Artificial Immune Network) پیشنهاد شده اند.
کار هایی که در حوزه الگوریتم های ژنتیک صورت گرفته است عموما در جهت ایجاد مدل های ترکیبی(hybrid) و یا خوشه بندی (clustering) بوده است. در بحث خوشه بندی این راهکار ها بدین صورت عمل می نمایند که کاربران را به گروه هایی دسته بندی می کنند طوری که کاربران مشابه در گروه های یکسانی قرار بگیرند. این کار باعث می شود که بجای فرد پیشنهادات به گروه داده شود و بدین ترتیب از زمان و سربار محاسبات کاسته شود. مدل های ترکیبی کاربران (hybrid user models)، عموما ترکیبی از CF با روش هایی از قبیل Demographic Filtering و یا Content-based Filtering هستند که بعنوان مثال در اینجا کروموزوم های الگوریتم ژنتیک را می توان بعنوان Demographic Information کاربران در نظر گرفت.
الگوریتم های شبکه های عصبی بر پایه عملکرد و رفتار سیستم عصبی بدن شکل گرفته اند که قدرت یادگیری را بر اساس ورودی ها و الگوهای پیشین برای سیستم های پیشنهاد دهنده فراهم می کنند. در راهکار های مبتنی بر شبکه های عصبی هدف برخوردار نمودن سیستم ازاین  قوه یادگیری است. بنابراین پروسه های یادگیری نظری SOM و Case Base Reasoning در کارهای انجام شده پیشین دیده می شوند.
راهکار های مبتنی بر شبکه ایمنی بدن نیز بمنظور رفع مشکل پراکندگی داده ها (data sparsity) و افزایش مقیاس پذیری سیستم  ارائه شده اند. البته همانند راهکارهای دیگر این روش نیز بصورت ترکیبی با روش های CF بیشتر مورد استفاده قرار گرفته است.

Hybrid Recommendations
در hybrid recommendation ها، سیستم ها بیشتر از ترکیبی از دو روش  collaborativeو content-based و بعضا سایر روشها، استفاده می کنند که سعی در از بین بردن محدودیت های همه سیستم ها با ترکیب آنها دارد. این سیستم ها را می توان بصورت زیر دسته بندی کرد:

۱- پیاده سازی روش های collaborative و content-based بصورت جداگانه و سپس ترکیب پیش بینی های آنها
۲- یکپارچه سازی برخی از ویژگی های مبتنی بر محتوا در یک رویکرد collaborative
۳- یکپارچه سازی برخی از ویژگی های collaborative در یک رویکرد content-based
۴- ترکیب روش های collaborative و content-based

سیستم های توصیه دهنده در شبکه های اجتماعی
در زندگی روزمره ما به پیشنهادات آشنایان خود برای خرید بهترین محصول تکیه می کنیم. امروزه افراد برای تصمیم گیری بیشتر بر اینترنت تکیه می کنند. اینترنت به تنهایی نمی تواند پیشنهادات کافی به کاربران ارائه کند زیرا محصولات و  خدمات بی شماری در آن وجود دارد. بنابراین شبکه های اجتماعی در تولید پیشنهادات تبدیل به عنصر مرکزی شده اند لذا یکپارچه سازی و ادغام کردن recommender system ها در شبکه های اجتماعی می تواند درک و شهود جدیدی ایجاد کند که نمی توان آن را از طریق استفاده از پیشنهادات سنتی به دست آورد. کدام یک نتایج پیشنهادات موثرتر و دقیق تری به دست می دهد؟ درک به دست آمده به این صورت تقسیم بندی شده است: ۱)ارتباط میان کاربران ۲) ارتقای کارایی یا عملکرد ۳) پیشنهادات بهتر برای آیتم هایی که امتیاز دهی نشده اند و ۴) محتوای کاربر به عنوان منبع پیشنهاد.
سیستم های Recommender چگونه می توانند از شبکه های اجتماعی برای انجام پیشنهادات استفاده کنند؟
مشخصه های گوناگون شبکه های اجتماعی جستجو در زمینه ادغام آنها با recommender systems را بیشتر ترغیب می کند. این مطالعات در زمینه های مختلفی انجام شده و بسیار گسترده هستند مانند network value، trust، social tagging و غیره. اینها مطالعات مختلفی برای محاسبه ارزش شبکه با آنالیز توانایی کاربران در تاثیر گذاشتن بر روی دوستان خود برای خرید محصولات جدید میباشند. مشتریانی با تاثیر بالاتر می توانند مزایای شرکت را از این رو به آن رو کنند.
بنابراین زمینه دیگری در ادغام و یکپارچه سازی سیستم های توصیه گر با شبکه های اجتماعی این است که به عنوان سطحی از احتمال subjective تعریف می شود که هر عامل به عامل دیگر برای تکمیل رفتار آتی کمک می کند.  در شبکه ای اجتماعی کاربران  ترجیح می دهند از دوستان خود پیشنهاد بگیرند. ارتباطات اجتماعی میان کاربران و شبکه های اجتماعی مطالعات جدیدی در زمینه پیشنهاد با اعتماد یا trust ایجاد کرده است. مردم ترجیح می دهند از دوستان خود پیشنهاد بگیرند تا یک موتور پیشنهاد عمومی. به علاوه کابران ترجیح می دهند از سیستم های مورد اعتماد پیشنهاد دریافت کنند و رابطه عمیقی میان مشابهت کاربران و اعتماد وجود دارد. در یکی از روش های پیشنهاد شده برای سیستم پیشنهاد مبتنی بر اعتماد، شبکه های اجتماعی باید در همه زمینه ها ارزش یا مقادیر دوستی- اعتماد نسبت داده شده به آن فیلد را داشته باشند. سپس از مدلی برای محاسبه مقادیر یا ارزش میان نودهای غیر مجاور استفاده می کنند. به هر نود یک پایگاه دانش منسوب می شود که فروشنده های مورد علاقه ای(با امتیاز مربوط به آن) که نود برای محصولات و خدمات متنوع دارد در این پایگاه دانش لیست میشود.
مسائل و چالش های موجود در سیستم های توصیه گر:
مشکل Cold-Start و Data Sparsity
همانطور که گفته شد یکی از مهمترین مشکلاتی که سیستم های پیشنهاد دهنده مبتنی بر CF با آن مواجه هستند، مسئله Cold-start می باشد. شروع سرد به کاربرانی گفته میشود که برای سیستم جدید هستند و پروفایلشان خالی است و رتبه های خیلی کمی از آنها در سیستم ثبت شده. برای کاربرانی که شروع سرد دارند و در سیستم سوابق نرخ دهی زیادی از آنها در دسترس نیست از فیلترینگ محتوا محور یا روش ترکیبی استفاده میشود. اما برای کاربرانی که سوابق نرخ دهی انها در سیستم در دسترس است از روش فیلترینگ مشارکتی استفاده میشود.
مشکل شروع سرد زمانی ایجاد می شود که بمنظور ارائه پیشنهاد، اطلاعات لازم و کافی (ratings) در سیستم وجود نداشته باشد. این حالت ممکن است به یکی از دلایل زیر رخ دهد.
• شروع کار سیستم پیشنهاد دهنده – راهکاری که در چنین حالاتی پیشنهاد می شود اینست که با استفاده از روش های مناسب کاربران را تشویق به دادن رای به آیتم ها نماییم و زمانی اقدام به پیشنهاد به کاربر کنیم که به اندازه کافی اطلاعات جمع آوری شده باشد.
• ورود کاربر جدید به سیستم – مهمترین مشکل برای سیستم های پیشنهاد دهنده مبتنی بر CF زمانی است که کاربر جدیدی وارد سیستم می شود. در این صورت اطلاعات کافی در مورد آیتم ها وجود دارد اما از آجا که کاربر جدید الورود هنوز به آیتمی رای نداده است نمی توان از روش های معمول مورد استفاده در CF استفاده نمود. برای حل چنین مشکلی در سیستم، عموما CF را با دیگر روش های رایج در سیستم های پیشنهاد دهنده ترکیب می کنند و یک سیستم ترکیبی (Hybrid) را می سازند (مثلا CF  با Content-based Filtering).
• درج آیتم جدید در سیستم – عموما آیتم های جدید دارای هیچ امتیازی (rate) نمی باشند. بر همین اساس در لیست پیشنهادات هرگز آورده نمی شوند و از دیدگاه کاربران نیز پنهان می مانند. این مسئله باعث می شود که در آینده نیز به آنها هیچ امتیازی داده نشود. البته این مسئله در سیستم های RS از اهمیت بالایی برخوردار نیست و می توان بر اساس روش ها و ابزار های دیگری این آیتم ها را به کاربران نشان داد تا به آنها رای دهند.
بدلیل مشکلات cold-start و نیز پراکندگی داده ها عموما سیستم های CF را بصورت ترکیبی با سایر راهکار ها بکار می برند تا از مزایای آنها بهره مند شده و در عین حال معایب آن را نیز بر طرف نمایند. بعنوان مثال یکی از راهکار هایی که پیشنهاد شده است پیاده سازی Collaborative Tagging  در یک سیستم مبتنی برCollaborative Filtering است تا بتوان سلایق کاربران را شناخت و آیتم ها را بر اساس تمایلات کاربران دسته بندی نمود.
یکی دیگر از راه های مقابله با مشکلات ذکر شده استفاده از تکنیک های خوشه بندی (clustering) می باشد که عموما برای حل مشکل cold-start بکار گرفته می شود. در این روش می توان آیتم ها یا کاربران و یا هر دوی آنها (bi-clustering) را خوشه بندی کرد. این تکنیک ها علاوه بر برطرف کردن مشکل ذکر شده باعث بهبود کارایی سیستم پیشنهاد دهنده نیز می گردند.
برای برطرف نمودن مشکل پراکندگی داده ها (data sparsity) نیز عموما از تکنیک های dimensionality reduction استفاده می شود. در کنار این روش، تکنیک های Latent Semantic Index و Singular Value Decomposition نیز وجود دارند. در مورد تکنیک SVD باید گفت که علیرغم نتایج بسیار خوب، این تکنیک سربار پردازشی بالایی دارد و از آنها بهتر است در کاربرد های آفلاینی استفاده نمود که تغییرات زیادی در اطلاعات آنها وجود ندارند.
اعتماد : یکی دیگر از مشکلات بحث اعتماد است. اعتبار کاربرانی که تاریخچه طولانی تری در استفاده از سیستم دارند نسبت به کاربرانی که تاریخچه حضور آنها در سیستم کمتر است، بیشتر است. که میتوان این مورد را با الویت دادن به کاربران حل کرد.
روش Content-based Filtering دارای دشواری ها و معایبی می باشند که عبارتند از :
• دشوار بودن استخراج داده ها و اطلاعات در مورد آیتم ها و کاربران. در این روش هدف پیدا نمودن شباهت بین آیتم های مختلف بر اساس صفات و محتویات آنهاست که در برخی از کاربرد ها و حوزه ها (مانند موزیک، ویدئو  وب لاگ ها) این کار بسیار پیچیده و دشوار است. در این روش نیاز به راهکار هایی برای استخراج صفات بصورت خود کار می باشد.
• مشکل overspecialization. در طول حیات سیستم، تلاش بر این است که آیتم هایی به کاربر پیشنهاد داده شوند که شباهت بیشتری به آیتم های انتخاب شده توسط او در گذشته داشته باشند. این باعث می شود که آیتم هایی که ممکن است مورد پسند کاربر باشند ولی شباهتی به آیتم های انتخاب شده در گذشته ندارند، به کاربر هر گز پیشنهاد داده نشوند و از دید وی مخفی بمانند.
•    عدم امکان گرفتن بازخورد کاربران.  معمولا در سیستم هایی که از این راهکار استفاده می کنند امکان گرفتن بازخورد (feedback) از کاربران وجود ندارد. بعنوان مثال در چنین سیستم هایی معمولا کاربران به آیتم ها امتیاز نمی دهند (برخلاف آنچه در مورد سیستم های CF داشتیم). این مسئله باعث می شود که نتوان دریافت که آیا پیشنهاد داده شده به کاربر صحیح بوده است با خیر.
بدلیل وجود چنین معضلاتی معمولا این راهکار را بصورت ترکیبی با راهکار های دیگر مورد استفاده قرار می دهند. بعنوان مثال یکی از کارهای خوب در زمینه ایجاد سیستم های hybrid ترکیب Content-based Filtering با شبکه های اجتماعی بوده است. در چنین سیستم هایی علاوه بر ratings از اطلاعات موجود در شبکه های اجتماعی مانند کامنت ها، بلاگ ها، ارتباطات بین دوستان، like ها و followers استفاده می شود تا بتوان کیفیت و دقت نتایج را بهبود داد.

معیارهای اندازه گیری سیستم های توصیه گر :
۱) دقت : تعداد پیش بینی های مطلوب (مورد علاقه) تقسیم بر کل پیش بینی ها.
۲) MAE : یا میانگین خطای اندازی گیری شده برابر است با رتبه ای که سیستم پیش بینی میکند که کاربر u به آیتم i بدهد منهای رتبه ای که کاربر u به آیتم i داده است.
۳) پوشش : سیستم تا چه حد توانایی کشف آیتم های مورد علاقه کاربر را دارد.
۴) زمان محاسبه : این معیار به دو بخش تقسیم میشود : زمان محاسبه و زمان اجرا.
زمان محاسبه: زمان مورد نیاز برای تولید پیشنهاد برای اولین بار به کاربر میباشد.
زمان اجرا: زمان مورد نیاز برای به روز کردن پیشنهادات به کاربر هنگامیکه آیتم جدید یا کاربر جدید به سیستم اضافه میشود.
۵) قوی بودن : توانایی مقاومت الگوریتم در برابر نویز و یا داده های اتفاقی. آیا سیستم بعد از اینکه دچار تغییر شد میتواند دوباره به حالت اول برگردد و پیشنهادات دقیق تولید کند؟.
برخی از مهم ترین مزایای استفاده از سیستم های توصیه گر در ادامه ذکر می شود:
مبتنی بودن بر اطلاعات زنده و واقعی: مهمترین مزیت سیستم‌های پیشنهاد دهنده این است که بر اساس فعالیت کاربران و گردآوری رفتار و سلایق آن‌ها عمل می‌کند. به این ترتیب پیشنهاد آن‌ها بر اساس حدس و گمان نمی‌باشد.
عالی برای اکتشاف فضاهای جدید: با استفاده از سیستم‌های پیشنهاد دهنده می‌توانید به فیلم‌ها، تصاویر و خلاصه کلام مطالبی دست یابید که در حالت عادی شاید هرگز به ‌آن‌ها نمی‌رسیدید. به این ترتیب افق کاربری شما در وب گسترش می‌یابد و به جای اتلاف وقت و انرژی برای جستجوی کور و تصادفی در جستجوگرهای وب، وقت خود را صرف استفاده مفید از مطالب جدید خواهید کرد.
تنظیم شده با خصوصیت‌های فردی شما: شما توصیه دوستان نزدیک و اعضای خانواده خود را به خاطر شناخت عمیقی که از شما دارند جدی می‌گیرید. چرا شما به نظر آن‌ها اعتماد می‌کنید؟ چون نظر آن‌ها مبتنی بر شناختی است که از شما دارند. به همین ترتیب می‌توانید به پیشنهاد سیستم‌هایی که از خلق و خوی شما آگاهی نسبی بیشتری دارند اطمینان بیشتری داشته باشید. این در حالی است که در وب‌ ۱٫۰ پیشنهادات به صورت تصادفی و در غالب تبلیغات کور به شما ارائه می‌شد که طبیعتا با ضریب اطمینان بسیار پایینی از سوی شما مواجه می‌شد.
همیشه به روز و جدید بمانید: با استفاده از «هوش جمعی» که چکیده رفتار هزاران کاربر مانند خود شماست، می‌توانید از جدیدترین و داغ‌ترین اتفاقات در زمینه‌های مورد علاقه‌تان با خبر بمانید.
کاهش هزینه نگهداری سازمانی: در سیستم‌های پیشنهاد دهنده، با توجه به این‌که کاربران اطلاعات را بر اساس سلایق خود شکل می‌دهند، دستکاری و مدیریت اطلاعات وب‌گاه و به‌روزرسانی آن توسط خود کاربران انجام می‌شود. به این ترتیب هزینه نگهداری و سازماندهی وب‌گاه در مقایسه با وب‌گاه‌های سنتی بسیار کمتر است.

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

خلاصه ای از انواع سیستم‌های توصیه‌گر
سیستم‌های توصیه‌گر به طور کلی به سه دسته اصلی تقسیم می‌شوند. در رایج‌ترین تقسیم‌بندی، آنها را به سه گروه ۱.محتوا محور ۲٫دانش محور و ۳٫ فیلترینگ تجمعی، تقسیم می‌کنند، که البته گونه چهارمی تحت عنوان Hybrid RS هم برای آنها قائل می‌شوند.
یک رویکرد به سیستم‌های توصیه‌گر، استفاده از الگوریتم‌های CF یا فیلترینگ تجمعی است. در این رویکرد به جای استفاده از محتوای (Content) اقلام، از نظرات و رتبه‌بندی‌های انجام شده توسط کاربران برای ارائه پیشنهاد، استفاده می‌شود. لازم به ذکر است که به طور کلی سیستم های مبتنی بر فیلترینگ نیز خود به دو دسته کاربر محور و کالا محور تقسیم می شوند. همچنین در یک دسته بندی دیگر نیز الگوریتم های CF به دو نوع اصلی مبتنی بر حافظه یا مبتنی بر هیوریستیک و مبتنی بر مدل تقسیم بندی می شوند.
و اما در روش محتوا محور، اقلام پیشنهادی، به این دلیل که با اقلامی که کاربر فعال (کاربری که قرار است به او توصیه کنیم) نسبت به آنها ابراز علاقه کرده ‌است شباهت‌هایی دارند، به کاربر توصیه می‌شوند ولی در CF، لیست اقلام پیشنهادی، بر اساس این اصل که، کاربرانی، مشابه کاربر فعال، از آنها رضایت داشته‌اند تهیه می‌شود. از این رو واضح است که در روش محتوا محور، تمرکز بر روی یافتن شباهت بین اقلام بوده، در حالی که در CF، تمرکز روی یافتن شباهت بین کاربران است؛ بدین ترتیب که پیشنهادات در CF، بر اساس تشابه رفتاری کاربر فعال با کاربران دیگر صورت می‌گیرد و نه بر اساس تشابه ویژگی کالاهای پیشنهادی با ویژگی‌های کالاهای مورد علاقه وی (کاربر فعال).
اما گونة سوم این سیستم‌ها را با نام سیستم‌های دانش محور می‌شناسند. این سیستم‌ها براساس ادراکی که از نیازهای مشتری و ویژگی‌های کالاها پیدا کرده‌اند، توصیه‌هایی را ارائه می‌دهند. به عبارتی در این گونه از سیستم‌های توصیه‌گر، مواد اولیه مورد استفاده برای تولید لیستی از پیشنهادها، دانش سیستم در مورد مشتری و کالا است. سیستم‌های دانش محور از متدهای مختلفی که برای تحلیل دانش، قابل استفاده هستند بهره می‌برند که متدهای رایج در الگوریتم‌های ژنتیک، فازی، شبکه‌های عصبی و … از جمله آنهاست. همچنین، در این گونه سیستم‌ها از درخت‌های تصمیم، استدلال نمونه‌محور و … نیز می‌توان استفاده کرد. یکی از رایج‌ترین متدهای تحلیل دانش درسیستم‌های توصیه‌گر دانش محور ،CBR یا روش استدلال نمونه‌محور است.
گونه چهارم، سیستم‌های ترکیبی هستند. طراحان این نوع سیستم‌ها دو یا چند گونه از انواع سه‌گانه مذکور را غالبا به دو منظور با هم ترکیب می‌کنند؛ ۱- افزایش عملکرد سیستم ۲- کاهش اثر نقاط ضعفی که آن سیستم‌ها وقتی به تنهایی به کار گرفته شوند، دارند. از میان سه روش موجود CF و CB و KB، غالباً روش CF یک پای ثابت این ترکیبات است.

منابع:
https://www.snet.tu-berlin.de/fileadmin/fg220/courses/SS11/snet-project/recommender-systems_asanov.pdf
https://www.academia.edu/confirm/sent
http://www.sciencedirect.com/science/article/pii/S0950705113001044
http://140.123.102.14:8080/reportSys/file/paper/prince123/prince123_1_paper.pdf
http://www.aclweb.org/anthology/C10-2079
http://webina.org/web/user-experience/data-mining/recommender-systems/what-is-recommender-system/

۲۴۹-۱۵


http://www.hamcodi.ir/article/367

نظر بدهید

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

It is main inner container footer text