پیشنهاد دادن آنچه مخاطب از آن استقبال خواهد کرد، برعهده سامانه‌های توصیه‌گر است. این سامانه‌ها که امروز ما کاربر بسیاری از آنها هستیم، سعی می‌کنند از روی علاقه‌مندی‌های ما و دیگران، مثلا اینکه ما چه کتاب‌هایی را خوانده‌ایم و دیگران که علایقی مشابه ما داشته‌اند، مثلا چه کتاب‌هایی را خوانده‌اند، پیشنهاد مناسبی به ما بدهند.

۱. مقدمه

Recommender System

سامانه توصیه‌گر (به انگلیسی: Recommender System) یا سامانه پیشنهادگر، با تحلیل رفتار کاربر خود، اقدام به پیشنهاد مناسب‌ترین اقلام
(داده، اطلاعات، کالا و...)می‌نماید
.

این سیستم رویکردی است که برای مواجهه با مشکلات ناشی از حجم فراوان و رو به رشد اطلاعات ارائه شده‌است و به کاربر خود کمک می‌کند تا در میان حجم عظیم اطلاعات سریع‌تر به هدف خود نزدیک شوند. برخی سامانه پیشنهادگر را معادل
پالایش گروهی
(به انگلیسی: Collaborative filtering) می‌دانند.

پیش بینی می‌شد که تا اوایل سال ۲۰۰۷ میلادی در سایت دانشنامه اینترنتی
ویکی‌پدیا
چیزی حدود ۵٫۱ میلیون مقاله به ثبت رسیده باشد و یا سایت مدیریت و به اشتراک‌گذاری تصاویر فلیکر بالغ بر ۲۵۰ میلیون تصویر را در خود جای دهد.


از این رو، می‌توان گفت که ما در میان حجم عظیمی از داده و اطلاعات قرار گرفته‌ایم که بدون راهنمایی و ناوبری درست ممکن است انتخاب‌هایی غلط و یا غیر بهینه از میان آن‌ها داشته باشیم.


سیستم‌های توصیه‌گر سیستم‌های تأثیرگذار در راهنمایی و هدایت کاربر، در میان حجم عظیمی از انتخاب‌های ممکن، برای رسیدن به گزینه مفید و مورد علاقه وی هستند به گونه‌ای که این فرایند، برای نفس همان کاربر، شخصی‌سازی شده باشد.


تعاریف متفاوتی برای سیستم‌های توصیه‌گر ارائه شده‌است. از آن جمله، تعریف کلی‌نگر و خلاصه آقای Ting-peng liang در سال ۲۰۰۷ است که RS را زیرمجموعه‌ای از
DSSها
می‌داند و آن‌ها را
سیستم‌های اطلاعاتی
تعریف می‌کند که، توانایی تحلیل رفتارهای گذشته و ارائه توصیه‌هایی برای مسائل جاری را دارا هستند. به زبان ساده‌تر در سیستم‌های توصیه‌گر تلاش بر این است تا با حدس زدن شیوه تفکر کاربر (به کمک اطلاعاتی که از نحوه رفتار وی یا کاربران مشابه وی و نظرات آن‌ها داریم) به وی مناسب‌ترین و نزدیک‌ترین کالا به سلیقه او را شناسایی و پیشنهاد کنیم.


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

  • کاربر را در اخذ تصمیمی یاری می‌کنند (که مثلاً از میان چندین گزینه پیش رو کدام بهتر است و آن را انتخاب کند و ... ).
  • موجب افزایش آگاهی کاربر، در زمینه مورد علاقه وی می‌شود (مثلاً در حین ارائه توصیه به کاربر موجب می‌شود تا وی با اقلام و اشیاء جدیدی را قبلاً آنها را نمی‌شناخته، آشنا شود).



سیستم‌های توصیه‌گر برای هر دو طرف یک تعامل (تجاری یا غیرتجاری)، مفید هستند و مزایایی را فراهم می‌آورد. برای نمونه در یک تعامل تجاری، مشتری‌ها از این جهت که عمل جستجو در میان حجم زیاد اطلاعات برای آن‌ها تسهیل و تسریع می‌شود، استفاده از سیستم‌های توصیه‌گر را مفید می‌دانند؛ فروشندگان به کمک این سیستم‌ها می‌توانند رضایت مشتریان را بالا برده و نیز فروش خود را افزایش دهد.

۲. کارهای مرتبط

سیستم‌های توصیه‌گر کاربردهای فراوانی دارند که برخی از زمینه‌های کاربردی آن به شرح زیر است:

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

  • </ul>

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

    سامانه‌های توصیه‌گر به طور کلی به سه دسته تقسیم می‌شوند؛ در رایج‌ترین تقسیم‌بندی، آنها را به سه گروه ۱.محتوا محور ۲.دانش محور و ۳.صافی سازی تجمعی، تقسیم می‌کنند، که البته گونه چهارمی تحت عنوان Hybrid RS هم برای آنها قائل می‌شوند.

    یک رویکرد به سیستم‌های توصیه‌گر، استفاده از الگوریتم‌های CF یا صافی سازی تجمعی است. در این رویکرد به جای استفاده از محتوای (Content) اقلام، از نظرات و رتبه‌بندی‌های انجام شده توسط کاربران برای ارائه پیشنهاد، استفاده می‌شود.

    در روش محتوا محور، اقلام پیشنهادی، به این دلیل که با اقلامی که کاربر فعال (کاربری که قرار است به او توصیه کنیم) نسبت به آنها ابراز علاقه کرده‌است شباهت‌هایی دارند، به کاربر توصیه می‌شوند ولی در CF، لیست اقلام پیشنهادی، بر اساس این اصل که، کاربرانی، مشابه کاربر فعال، از آنها رضایت داشته‌اند تهیه می‌شود. از این رو واضح است که در روش محتوامحور، تمرکز بر روی یافتن شباهت بین اقلام بوده، در حالی که در CF، تمرکز روی یافتن شباهت بین کاربران است؛ بدین ترتیب که پیشنهادات در CF، بر اساس تشابه رفتاری کاربرفعال با کاربران دیگر صورت می‌گیرد و نه بر اساس تشابه ویژگی کالاهای پیشنهادی با ویژگی‌های کالاهای مورد علاقه وی (کاربر فعال).

    اما گونه سوم این سیستم‌ها را با نام سیستم‌های دانش محور می‌شناسند.این سیستم‌ها براساس ادراکی که از نیازهای مشتری و ویژگی‌های کالاها پیدا کرده‌اند، توصیه‌هایی را ارائه می‌دهند. به عبارتی در این گونه از سیستم‌های توصیه‌گر مواد اولیه مورد استفاده برای تولید لیستی از پیشنهادها، دانش سیستم در مورد مشتری و کالا است. سیستم‌های دانش محور از متدهای مختلفی که برای تحلیل دانش، قابل استفاده هستند بهره می‌برند که متدهای رایج در الگوریتم‌های ژنتیک، فازی، شبکه‌های عصبی و ... از جمله آنهاست.
    همچنین، در این گونه سیستم‌ها از درخت‌های تصمیم، استدلال نمونه‌محور و ... نیز می‌توان استفاده کرد. یکی از رایج‌ترین متدهای تحلیل دانش درسیستم‌های توصیه‌گر دانش محور ،CBR یا روش استدلال نمونه‌محور است.

    گونه چهارم سیستم‌های ترکیبی هستند. طراحان این نوع سیستم‌ها دو یا چند گونه از انواع سه‌گانه مذکور را غالباً به دو منظور با هم ترکیب می‌کنند؛
    ۱- افزایش عملکرد سیستم
    ۲- کاهش اثر نقاط ضعفی که آن سیستم‌ها وقتی به تنهایی به کار گرفته شوند، دارند. از میان سه روش موجود (CF و CB و KB)، غالباً روش CF یک پای ثابت این ترکیبات است.

    روش انتخابی


    و اما روش انتخابی ما استفاده از روش
    instance based learning
    است .


    در این روش هر instance جدید با instance های موجود با استفاده از یک تابع فاصله مقایسه شده و از نزدیک ترین instance موجود برای اضافه کردن به کلاس مورد نظر استفاده میشود.


    در این روش مثال های یادگیری به صورت کاملا دقیق و یکسان در دیتابیس ذخیره شده و تابع فاصله مشخص میکند که کدام instance به کدام کلاس تعلق دارد.


    اما مقایسه کردن هر instance با instance های موجود کاری بسیار سخت و کند است.


    به همین منظور ما از روش بهینه تر Kd-Tree که روش بهینه تر برای
    instance based learning
    است استفاده خواهیم کرد.


    که یک درخت باینری است که فضای ورودی را تقسیم میکند و این کار را تا جایی که هر instance در یک بخش قرار گیرد ,
    به صورت بازگشتی ادامه میدهد.

    A kD-Tree



    برای این الگوریتم هم بازهم روش های بهینه سازی زیادی وجود دارد که در قسمت کارهای آینده به آن اشاره خواهد شد.

    ۳. آزمایش‌ها

    ۴. کارهای آینده

    ۵. مراجع


    Burke, R. The Wasabi Personal Shopper: A Case-Based Recommender System. In Proceedings of the 11th National Conference on Innovative Applications of Artificial Intelligence, pages 844-849. AAAI, 1999.
    [Web Link]

    Burke, R. Knowledge-based Recommender Systems. To appear in the Encyclopedia of Library and Information Science.




    Machine Learning Course - Recommender Systems


    Data Mining: Practical Machine Learning Tools and Techniques


    داده های ارزیابی نمونه

علیرضا نوریان

خوب بود و خسته نباشید. فقط منابع‌تون رو باید تکمیل می‌کردید، چون در این فاز قرار هست که اونها رو بخونید.