سامانه توصیه‌گر

تغییرات پروژه از ابتدا تا تاریخ 1396/08/29
سامانه توصیه‌گر به کمک هوش‌مصنوعی و داده‌های بزرگ به تشکیل پرسونای تک تک کاربران می‌پردازد. سلیقه کاربران را بدون سوال‌ و جواب کشف کرده و آنها را به سمت آنچه می‌جویند راهنمایی می‌کند.
# مقدمه
با توجه به گسترش فضای اینترنت، مطالب، محصولات فروشگاه ها که درنتیجه باعث افزایش قابل توجه حق‌انتخاب کاربر می‌شود، نیاز به طبقه‌بندی و کوچک‌کردن فضای جستجو برای رسیدن به نتیجه بسیار حس می‌شود. چه‌بسا بسیاری از کاربران به دلیل این گستردگی قادر به یافتن نتیجه‌ی خود نبوده و از ادامه‌ی جستجو صرف‌نظر می‌کنند. سامانه‌ی توصیه‌گر با کوچک‌کردن فضای جستجوی‌کاربران این‌مشکل را حل می‌کند. این سامانه با روش‌های متفاوت محتوای شخصی‌سازی شده‌ی هر کاربر را باتوجه به مشخصات، پیشینه جستجو و علایق به او پیشنهاد می‌دهد[1].در این‌مقاله به بررسی روش‌های موجود، نقاط ضعف و قوت و پیاده‌سازی آن(ها) می‌پردازیم.  
# کارهای مرتبط
![تصویر ۱](https://boute.s3.amazonaws.com/304-basic_types.png)
سامانه‌های توصیه‌گر برای کمک به تصمیم‌گیری و ارائه‌ی رهنمود برای انتخاب محتوای مناسب هرشخص تعریف شده‌اند و در راستای این‌هدف از روش‌های متفاوتی استفاده می‌کنند. در ابتدا به توضیح اجمالی هریک از این روش‌ها اکتفا می‌کنیم(تصویر ۱) و در آینده به صورت تخصصی‌تر و جزئی‌تر به آن‌ها میپردازیم. سعی داریم در این مقاله از روش مارپیچ برای توضیح روش‌های پیاده‌سازی سامانه‌ی توصیه‌گر استفاده کنیم.[2]
یکی از روش‌های پیاده‌سازی توصیه‌گر تکنیک   Collaborative filtering [3] نام دارد. به طور خلاصه این روش با شناسایی کاربران دیگر با ذائقه یکسان شما، محتوای مناسب را پیشنهاد می‌دهد[4] (تصویر ۲).  
![تصویر ۲ [5] ](https://upload.wikimedia.org/wikipedia/commons/5/52/Collaborative_filtering.gif)
پیاده‌سازی این تکنیک به شیوه‌های متفاوتی انجام می‌شود که در آینده به طور کامل به آن اشاره می‌کنیم. از نمونه‌های استفاده‌کننده از این تکنیک می‌توان به RINGO[6] اشاره کرد که البته سامانه‌‌ای قدیمی در این‌حوزه است. پس از آن می‌توان به Amazon [7] اشاره کرد. آمازون از روش item-to-item که یکی از زیرمجموعه‌های تکنیک Collaborative filtering است استفاده می‌کند [8] . علاوه بر آن می‌توان به سامانه‌ی توصیه‌گر last.fm[9] اشاره کرد.این سایت موزیک هارا با توجه سلیقه‌ی کاربر دسته‌بندی و به او پیشنهاد می‌دهد. لازم به ذکر است این سایت،  توصیه‌گر خود را Audioscrobbler نام‌گذاری کرده است [10]. 
![تصویر ۳ [11] ](https://www.ntt-review.jp/archive_html/200804/images/le1_fig02.gif)
روش دیگر پیاده‌سازی توصیه‌گر تکنیک Content-base filtering نام دارد [12] . در این‌روش ذائقه‌ی کاربر باتوجه به مشخصات‌ خود شخص و تشابه محتوای انتخاب‌شده‌ی قبلی با نمونه‌های مشابه انتخاب‌نشده تشخیص داده‌می‌شود و محتوای مشابه پیشنهاد می‌گردد(تصویر ۳). در این‌روش تعامل و تشابه ذائقه بین کاربران مختلف نادیده گرفته می‌شود و تشابهات براساس تشابهات بین محتوا و محصولات بررسی می‌شود که تفاوت اصلی این تکنیک با تکنیک Collaborative filtering است [13]. از نمونه‌های استفاده‌کننده از این تکنیک می‌توان به سامانه‌توصیه‌گر Pandora [14] اشاره کرد. این‌سامانه با بررسی مشخصات موزیک و هنرمند، موزیک‌های مشابه را پیدا و به کاربر پیشنهاد می‌دهد [15].
برای مقایسه‌ی این‌دو روش اصلی می‌توان به مقایسه last.fm و Pandora پرداخت. last.fm و دیگر‌سامانه‌های استفاده‌کننده از Collaborative filtering از مشکل شروع سرد(cold start [16]) رنج می‌برند. برای شناخت موزیک‌های مشابه ، یک موزیک برای قابل پیشنهاد شدن باید به سطح حداقلی از محبوبیت برسد تا از آستانه‌ی( [17] threshold) صافی موزیک‌ها عبور کند. البته Pandora نیز از معایبی مشابه رنج می‌برد. برای اضافه شدن یک موزیک جدید لازم است تا کارمندان Pandora آن‌را از تنگنای کلاسه‌بندی([18] classification) توصیه‌گرشان عبور دهند تا مشخصات موزیک‌ و هنرمند به‌درستی بررسی و ثبت‌گردد. مقاله nature vs nurture به صورت جزئی به اختلافات و نقاط ضعف و قوت هریک از این سامانه‌ها می‌پردازد [19].
![تصویر ۴](http://dataconomy.com/wp-content/uploads/2015/03/Introduction-What-is-a-Recommendation-Engine-Hybrid-Recommender-Systems.jpg)
باتوجه به ضعف‌ها و نقاط‌ قوت ذکر‌شده در هر‌روش، روشی تلفیقی به نام تکنیک Hybrid filtering به‌وجود‌ آمد. باتوجه به قدرت Collaborative filtering و سرعت ابتدایی Content-base filtering با ترکیب نقاط قوت این‌دو‌تکنیک، تکنیکی قوی‌تر و کارآمدتر به‌وجود می‌آید . این ترکیب میتواند شامل عبور‌دادن خروجی نتیجه CF به Content-base filtering باشد یا برعکس یا از تلفیق نتیجه مستقل هریک به‌وجود‌آید(تصویر ۴).[20,21] از مثال‌های استفاده‌کننده از این تکنیک‌ می‌توان به Netflix [22] اشاره کرد. Netflix با ترکیب قدرت بالای CF و کاهش هزینه‌ی محاسباتی باتوجه به نیازمندی‌های کم Content-base filtering سامانه‌ی توصیه‌گر خود را پیاده‌سازی کرده‌است[23, 24]
در آینده به بررسی جزئی تر هر‌یک از این تکنیک ها در فاز پیاده‌سازی می‌پردازیم.



# مراجع
[1] http://www.sciencedirect.com/science/article/pii/S1110866515000341  (abstracts)
[2] https://en.wikipedia.org/wiki/Spiral_model
[3] http://recommender-systems.org/collaborative-filtering/
[4] http://www.sciencedirect.com/science/article/pii/S1110866515000341  (related works)
[5] https://en.wikipedia.org/wiki/Collaborative_filtering#/media/File:Collaborative_filtering.gif
[6] http://jolomo.net/ringo.html
[7] https://www.amazon.com/
[8] https://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf
[9] https://www.last.fm/
[10] https://en.wikipedia.org/wiki/Last.fm
[11] http://findoutyourfavorite.blogspot.com/2012/04/content-based-filtering.html
[12] http://recommender-systems.org/content-based-filtering/
[13] http://www.sciencedirect.com/science/article/pii/S1110866515000341  (related works)
[14] https://www.pandora.com/
[15] https://en.wikipedia.org/wiki/Recommender_system
[16] https://en.wikipedia.org/wiki/Cold_start
[17] https://en.wikipedia.org/wiki/Threshold_model
[18] https://en.wikipedia.org/wiki/Statistical_classification
[19] http://blog.stevekrause.org/2006/01/pandora-and-lastfm-nature-vs-nurture-in.html
[20] http://www.sciencedirect.com/science/article/pii/S1110866515000341 (Hybrid filtering)
[21] https://en.wikipedia.org/wiki/Recommender_system ( Hybrid recommender systems)  
[22] https://www.netflix.com/
[23] https://rpubs.com/kismetk/Netflix-recommendation
[24] https://dl.acm.org/citation.cfm?id=2843948
# پیوندهای مفید
+ [مجموعه داده](http://shuaizhang.tech/2017/03/15/Datasets-For-Recommender-System/)