در یک سیستم توصیه گر از الگوریتم های متفاوتی با توجه به شرایط مختلف استفاده میشود. مهمترین الگوریتم های مورد استفاده در یک سیستم توصیه گر عبارتند از:

· الگوریتم‌‌های مبتني بر پالايش مشارکتی

· الگوريتم‌هاي مبتني بر محتوا

· الگوريتم‌هاي مبتني بر دانش

· الگوريتم‌هاي ترکيبي

· الگوریتم‌های مبتنی بر روابط اجتماعی

· الگوریتم‌‌های مبتنی بر اطلاعات جمععیت شناختی

· الگوریتم‌های مبتنی بر شرایط کاربر

در ادامه فقط الگوریتم های پالایش مشارکتی رو یک کم میگم چون خودم فقط روی اون کار کردم. 

مکانيزم اصلي الگوريتم پالايش مشارکتي به اين شرح است که با استفاده از معيار تشابه افراد، اولويت‌هاي گروه‌هاي زيادي از کاربران ثبت مي‌شود. در ادامه کاربراني که با کاربر جاري اولويت‌هاي يکساني دارند، به عنوان همسايگان انتخاب مي‌شوند. سپس ميانگين اولويت‌ها محاسبه شده و تابع اولويت نهايي سعي در توصيه آيتمي مي‌کند که کاربر امتيازدهي نکرد‌ه‌است.

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

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

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

یک سیستم پالایش مشارکتی برای برطرف کردن نیازهای کاربرانی با ویژگی های زیر مناسب تر است.اگرچه برای هر حالت دیگری میتوان استفاده کرد اما در این موارد از سابر موارد بهتر جوابگو میباشد و پاسخ های مناسب تری تولید می نماید:

1. نياز به راهنمايي در يافتن يک آيتم مورد علاقه جديد. سيستم بايد بتواند از بين حجم انبوهي از آيتم‌ها، آن دسته را که احتمالا کاربر به آنها متمايل است را پالايش کرده و ارائه دهد.

2. نياز به راهنمايي در مورد يک آيتم مشخص.  اين نياز در شرايطي ظاهر مي‌شود که کاربر، آيتمي را در ذهن دارد و نياز دارد نظر افرادي که مشابه وي هستند را بداند تا راحت‌تر و مطمئن‌تر در مورد آن تصميم‌گيري کند.

3. نياز يک کاربر به يافتن کاربري که علايق مشابه وي را دارد. گاهي اوقات، نياز کاربران اين است که بدانند بايد به نظر چه کساني توجه کنند. با مطابقت دادن و مرتبط کردن کاربران مشابه با يکديگر، مي‌توان به اين نياز پاسخ داد.

4. نياز يک گروه از کاربران در يافتن آيتم‌هاي مورد علاقه.  به کمک تکنيک پالايش مشارکتي مي‌توان به گروه‌هايي از کاربران، آيتم‌هايي را پيشنهاد کرد که مورد پسند اعضاي آنها واقع شود.


ادامه ....