شنبه , مهر ۲۷ ۱۳۹۸
خانه / WebMining / اصول وب کاوی – سیستم های پیشنهاد دهنده
وب کاوی

اصول وب کاوی – سیستم های پیشنهاد دهنده

سیستم های پیشنهاد دهنده (Recommendation Systems) : به معنای پیشنهاد دادن محتوا (کتاب، فیلم، عکس، متن و …) به مخاطب بر اساس رفتار کاربر، پروفایل کاربر، نیاز کاربر و …  است. بطور کلی در سیستم های پیشنهاد دهنده هدف فراهم آوردن سه فاکتور تازگی (novelty) ، دقت (precision) و پوشش (coverage) در نتایج پیشنهادی است. چرخه زیر سیستم پایه پیشنهاد دهنده را نشان می دهد.

سیستم های پیشنهاد دهنده

انواع سیستم های پیشنهاد دهنده:

Collaborative Filtering (پالایش مشارکتی):

در این سیستم ها پیشنهادها براساس شباهت کاربران اتفاق می افتد. در واقع رفتار کاربر را با دیگر کاربران مقایسه می کند و کاربران مشابه را پیدا کرده و پیشنهاد براساس آن ارائه می شود. سایت Movie lenze یکی از مثالهای خوب برای این موضوع است. برای اینکه بتوان شباهت کاربران را سنجید باید یک سری صفات اجتماعی وجود داشته باشد.

 

Content-Based Filtering

پیشنهادها براساس شباهت بین Content (محتواها) ها، ویژگیها و سابقه فعالیت کاربر در گذشته انجام خواهد شد. مثال براساس اخباری که روی آن کاربر کلیک کرده است. می توان پیشنهاداتی ارائه شود.

 

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

 

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

در میان اطلاعات موجود در شبکه های اجتماعی، trust و reputation نسبت به بقیه توجهی بیشتری را به خود جذب کرده اند. معیار trust در واقع میزان اعتبار یک کاربر در بین سایر کاربران است که نقش موثری در پیشنهادات می تواند داشته باشد. بعنوان مثال هرچه میزان trust یک کاربر بیشتر باشد، امتیاز هایی که او به آیتم ها می دهد از درجه اهمیت و وزن بیشتری نسبت به سایرین برخوردار است. دو راه کار برای تعیین Trust کاربران وجود دارد. روش اول از طریق اطلاعاتی است که صریحا از خود کاربر کسب می شود. روش دوم نیز از طریق اطلاعات ضمنی و روابط بین کاربران که در شبکه های اجتماعی موجود است می باشد.
معیار Reputation را برای آیتم ها از روی تعداد امتیازاتی که کاربران به یک آیتم می دهند (صریح) و یا با بررسی نحوه کار کاربران با آیتم ها (ضمنی) تعیین نمود.

 

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

 

Rule-Based (Knowledge-Based) Filtering

پیشنهادها براساس تعریف نقش ها و داشتن پایگاه دانش از نقش ها تعریف می شود. وقتی شرایط پیچیده باشد این روش مناسب نخواهد بود و برای مجموعه های محدود کاربرد دارد. طبیعی است که برای پیاده سازی چنین سیستم هایی نیاز به یک بستر و ساختار مبتنی دانش وجود دارد (آنتولوژی ها، case-based reasoning، constraint-based reasoning، knowledge vectors و social knowledge).

 

Hybrid Approaches

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

شکل زیر شرح مختصری از روش های بالا نمایش می دهد.

سیستم های پیشنهاد دهنده

Social tagging system : سیستم هایی که مدل زیر را داشته باشندSocial tagging system نامیده می شوند.

مثلث کاربر، برچسب و منبع مثل اینستاگرام، توئیتر،فیس بوک و … . یعنی کاربر بر روی منابع برچسب بزند. مثال کاربری بر روی عکس یک گل یک برچسب گل می زند. با این برچسب های زده شده به صورت اتومات دسته بندی انجام می شود. یکی از ویژگیهای این سیستم ها این است که کاربر بدون هیچ قیدی برچسب های خود را انتخاب می کند و از ان لذت می برد. خوبی که این سیستم ها دارد این است که براساس درک انسان ها برچسب ها زده می شود.

مثال: فرض کنید عکس یک شیر(حیوان شیر) داشته باشید. این شیر می تواند برچسب های شیر داشته باشد که می تواند در دسته حیوانات، شیرآلات، و … قرار بگیرد برای اینکه در دسته صحیح قرار بگیرد باید از آنتولوژی کلمات استفاده کرد مثل جنگل که نشان دهنده حیوانات است. از روی رفتار قبلی کاربران نیز می توان این کار را انجام داد.

اصطلاح Spagging و Spagger:

Spagger انسان یا رباتی که برچسب بی ربط تولید می کند.  Spagging یعنی حذف برچسب و کاربران های بی ربط.

به Social Booking Marking ،Social tagging system  و فورکسونومی(طبقه بندی مردمی) نیز می گویند.

سیستم های آگاه از زمینه : (Context aware recommendation system) :سیستم هایی هستند که براساس یک ویژگی خاص مثل زمان، آب و هوا، موقعیت جغرافیایی و .. پیشنهاد ارائه می دهند. هم اینکه در چه زمانی پیشنهاد به کاربر می دهد و ممکن است براساس گذشت زمان علاقه مندی های کاربر نیز تغییر خواهد کرد.

نمونه مثال عملی برای Collaborative Filtering:

یک پروفایل کاربر به اسم U داریم و یک item target به اسم t وجود دارد.

item target : عنوانی است که می خواهیم برای ان پیش بینی انجام دهیم. می خواهیم score preference کاربر U را بر روی ایتم t پیش بینی کنیم. یعنی کاربر U چه Score به این آیتم می تواند بدهد.

سیستم های پیشنهاد دهنده

برای حل مسئله بالا باید ابتدا شباهت karen را با دیگران پیدا کرد که از شباهت Pearson  میتوان استفاده کرد. نتیجه شباهت karen با بقیه بصورت زیر خواهد بود.

سیستم های پیشنهاد دهنده

که در آن U بار معدل گیری مقادیری است که کاربر زده است. اگر حاصل صفر باشد کاربران از یکدیگر مستقل هستند هرچه به سمت یک نزدیک شود کاربران به هم نزدیکتر می شوند و هرچه به سمت 1 -نزدیک می شود کاربران از هم دورتر می شوند.
بعد از محاسبه به جدول بالا خواهیم رسید.

حال اگر با روش KNN (شبیه ترین همسایه) مسئله بالارا حل کنیم اگر 1=K باشد به جای علامت سوال باید از انتخاب Bob یعنی 9 انتخاب می شود. حال اگر 2=K باشد میانگین مقادیر Bob و Sally یعنی عدد 6.5 انتخاب می شود.

نکته ای که وجود دارد این است که در هنگامی که عدد K بزرگتر از یک انتخاب می شود برای شبیه ترین کاربر وزنی در نظر گرفته نشد. بدین منظور برای اطلاح  فرمول پیرسون از فرمول زیر استفاده می کنیم.

سیستم های پیشنهاد دهنده

که در فرمول باال نیز ابتدا k تا از شبیه تران را مشابه قبل انتخاب می کنیم.

از Filtering Collaborative برای پر کردن جاهای خالی در جدول ویژگی استفاده می شود.

مشکالت سیستم Collaborative Filtering:

  • Cold Start : برای کاربرانی که برای اولین بار به سیستم مراجعه می کند شباهت به راحتی پیدا نخواهد شد این مشکل هم برای کاربران و هم برای آیتم ها می باشد. این مشکل را بر اساس اطلاعات پروفایل کاربر می توان مرتفع کرد.
  • Sparsity: (پر نبودن ماتریس شباهت) برای حل این مشکل می توان از کاهش ابعاد ماتریس استفاده کرد و ویژگیهایی که دارای عناصر صفر است را حذف کرد.
  • First rater: در مورد آیتم هایی است که برای اولین بار می خواهیم به انها مقدار بدهیم. این مشکل نیز می تواند زیر مجموعه شروع سرد قرار بگیرد.
  • Popularity Bias: این مشکل برای کسانی است که دارای ذائقه خاصی هستند و پیشنهاد دادن برای این افراد کار مشکلی است. برای حل مشکل می تواند درصد رفتار انان را در پیشنهاد دخالت بیشتری داد.

مثالی برای Item-based Collaborative Filtering: مثال بالا پیدا کردن شباهت بر اساس کاربر بود مثال زیر پیدا کردن شباهت بر اساس آیتم هاست.

سیستم های پیشنهاد دهنده

ارزیابی سیستم های Collaborative Filtering:

داده ها را به دو بخش test و train تقسیم می کنیم. در خصوص بخش آزمایشی که مقدار ان وجود دارد سیستم را ازمایش می کنیم و مقدار خطا را محاسبه می کنیم از مقادیر خطا میانگین می گیریم و براساس ان میانگین می توانیم برای داده های train مقدار مناسب را بدست اوریم.

 

  • آیا این مقاله مفید بود؟
  • بله   خیر

با تمام وجود علاقمندم مباحث جدید مربوط به برنامه نویسی رو یاد بگیرم و به دیگران یاد بدم. نیمی از زمان روزانه رو صرف یادگیری میکنم. سعی میکنم مقالات مفید و جدید در حوزه برنامه نویسی و به ویژه جاوا اسکریپت رو برای شما دوستان عزیز در لایو گوگل منتشر کنم.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد.