پیاده سازی سیستم توصیه گر در پایتون ـ مقدمه

شاید تا بحال برای شما این سوال پیش آمده باشد که شرکت گوگل با چه الگوریتمی تبلیغات هوشمند را به کاربران نمایش می دهد ؟  و یا سایتهای تجارت الکترونیک با چه روشی بخش افرادی که این محصول را خریده اند، این محصولات را نیز سفارش داده اند را مدیریت می کنند و یا فیس بوک چگونه هنگام آپلود عکس ها و برچسب زنی آنها توسط ما، نام درست دوستان را به ما پیشنهاد می دهد ؟
IT_Specialist
پست: 14
تاریخ عضویت: شنبه ژولای 20, 2019 4:27 pm

پیاده سازی سیستم توصیه گر در پایتون ـ مقدمه

پست توسط IT_Specialist » شنبه ژولای 20, 2019 6:31 pm

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

سیستم پیشنهاد دهنده چیست؟
یک سیستم پیشنهاد کننده یک الگوریتم ساده است که هدف آن ارائه اطلاعات مرتبط به یک کاربر با کشف الگوها در یک مجموعه داده است. ابن الگوریتم به ارزیابی آیتم های موجود در سیستم پرداخته و مواردی که مطابقت بالایی در پذیرش مشتری را به کاربر پیشنهاد میدهند. یک مثال واقعی از این سیستم ها زمانی است که شما از آمازون بازدید می کنید و متوجه می شوید که برخی از موارد برای شما توصیه می شود یا هنگامی که Netflix فیلم های خاصی را برای شما توصیه می کند. آنها همچنین توسط برنامه های جریان موسیقی مانند Spotify و Deezer برای توصیه موسیقی مورد علاقه شما استفاده می شوند. در زیر یک تصویر بسیار ساده از نحوه استفاده از سیستم های توصیه شده در زمینه یک سایت تجارت الکترونیک است. در این تصویر دو کاربر یک فروشگاه A و B از یک فروشگاه تجارت الکترونیک خریداری می کنند. هنگامی که این اتفاق می افتد، شاخص تشابه این دو کاربر محاسبه می شود. بسته به نمره، سیستم می تواند مورد C را به کاربر دیگر توصیه کند، زیرا تشخیص می دهد که این دو کاربر از لحاظ اقلام خریداری مشابه هستند.

تصویر

انواع سیستم های پیشنهاد دهنده یا توصیه گر

شایع ترین نوع سیستم های توصیه گر، سیستم های مبتنی بر محتوا و همکاری(collaborative filtering) هستند. در فیلترهای همکاری رفتار گروهی از کاربران برای ارائه توصیه به سایر کاربران استفاده می شود. در حقیقت توصیه بر اساس اولویت دیگر کاربران است. یک مثال ساده توصیه یک فیلم به یک کاربر بر اساس این واقعیت است که دوستانش فیلم را دوست داشته اند یا خیر. دو نوع مدل همکاری وجود دارد: روش های مبتنی بر حافظه و روش های مبتنی بر مدل. مزیت روش های مبتنی بر حافظه این است که آنها ساده برای پیاده سازی و توصیه های نتیجه اغلب آسان توضیح داده شده است. آنها به دو تقسیم می شوند:
فیلترینگ مشارکتی مبتنی بر کاربر: در این مدل محصولات به کاربر توصیه می شود که بر اساس این واقعیت است که محصولات توسط کاربرانی شبیه به کاربر محبوب شده اند. به عنوان مثال اگر Derrick و Dennis مانند فیلم های مشابه و فیلم جدیدی می آید که Derick را دوست دارد، پس می توانیم آن فیلم را به Dennis توصیه کنیم زیرا Derrick و Dennis به نظر همان فیلم ها را دوست دارند.
فیلترینگ مشارکتی مبتنی بر آیتم: این سیستمها موارد مشابه را براساس رتبه بندی قبلی کاربران مشخص می کند. به عنوان مثال اگر کاربر A، B و C رتبه 5 را به کتاب X و Y بدهد، زمانی که یک کاربر D کتاب را خریداری می کند، آنها همچنین توصیه می کنند کتاب X را خریداری کنند، زیرا سیستم X و Y را بر اساس رتبه بندی کاربران A، B و C مشابه میداند.
روش های مبتنی بر مدل بر مبنای تقسیم بندی ماتریس هستند و در مقابله با sparsity یا تنک بودن ماتریس بهتر عمل می کنند. آنها با استفاده از داده کاوی، الگوریتم های یادگیری ماشین برای پیش بینی امتیاز کاربران از موارد غیر ارزیابی توسعه داده می شوند. در این روش تکنیک هایی مانند کاهش ابعاد برای بهبود دقت استفاده می شود. نمونه هایی از این روش های مبتنی بر مدل شامل درخت های تصمیم گیری، مدل های مبتنی بر قاعده، روش های بیزی و مدل های عامل نهفته است. سیستم های مبتنی بر محتوا از متا داده ها مانند ژانر، تولید کننده، بازیگر، موسیقیدان برای توصیف موارد میکنند.

بازگشت به “مقدمه ای بر سامانه های توصیه گر (Recommender Systems)”