سیستم توصیه ‌گر
آموزشآموزش‌های پیشرفته هوش مصنوعیداده کاوی و بیگ دیتاکاربردهای هوش مصنوعییادگیری با نظارت

روش ساده ساخت سیستم توصیه گر

    0

    برای اینکه به قدرت سیستم ‌توصیه ‌گر  Recommendation System  پی ببرید، کافی است به سرویس رسانه‌ایِ «نِتفیلیکس» توجه کنید؛ سیستم ‌توصیه ‌گر نوین این شرکت، برای چندین ساعت ما را پای تلویزیون میخکوب می‌کنند.

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

    نمونه سیستم توصیه گر با فیلترینگ مشارکتی

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

    • فیلترینگ محتوامحور  Content based filtering :

    از ویژگی اجناس برای توصیۀ اجناس مشابهی که کاربران قبلی از آن‌ها ابراز رضایت کرده‌اند، استفاده می‌کند. پروژه ژنوم موسیقی پاندورا به شناسایی ویژگی‌های موسیقیاییِ هر قطعه آهنگ پرداخته و از آن اطلاعات برای یافتن آهنگ‌های مشابه و توصیه به شنوندگان استفاده می‌کند.

     

    • فیلترینگ همکاری‌محور Collaborative filtering  :

    بر اساس اینکه کاربران مشابه چه امتیازی به اجناس یا اقلام داده‌اند، آن‌ها را شناسایی می‌کند. شرکت نتفیلیکس با شناساییِ اینکه کاربران مشابه چه محتوایی را تماشا کرده‌اند، به این نتیجه می‌رسد که کابران از تماشای کدام برنامه‌ها و فیلم‌ها لذت خواهند برد.

    شروع کار
    باید از «Surprise» (بسته scikit پایتون) برای ساخت سیستم ‌توصیه ‌گر  استفاده و در گام نخست از یک مجموعه‌داده استفاده کنیم. این دیتاست از هشت جدول تشکیل شده است. این جداول قبلا به یکدیگر الحاق شده و ستون های مورد نیاز تفکیک تفکیک شده اند. کُد کامل به صورت زیر است:

    این دیتاست کاملاً به منظور ساخت سیستم ‌توصیه ‌گر طراحی نشده است. چالش پیش رویمان این است که تقریباً ۹۰ درصد کاربران را مشتریانی تشکیل می‌دهند که برای نخستین بار با این رویه مواجه می‌شوند. یعنی جدول امتیازدهی مشتریان قبلی وجود ندارد تا کالاهای مدنظرشان را پیدا کنند. در همین راستا، ما مجموعه‌داده را به دو بخشِ کاربران تکراری و کاربران بار اوّلی تقسیم می‌کنیم. کاربران تکراری فقط در مدل فیلترینگ همکاری‌محور گنجانده می‌شوند. مشتریان بار اوّلی کماکان می‌توانند از توصیه‌های ما بهره‌مند شوند، اما تمرکز عمده آن‌ها روی محبوبیت کالاها و موقعیت کاربر معطوف خواهد بود.

    استفاده از بستۀ «Surprise»

    برای استفاده از تبدیل ماتریس امتیازدهی کاربران  user-ratings matrix  در بستۀ «Surprise» باید دیتافریمی را به کار بریم که حاوی سه ستون شامل شماره شناسایی کاربران، شماره شناسایی کالا و امتیازدهی باشد.

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

    نمونه ماتریس امتیازدهی کاربران

    ابزار Surprise کمک می‌کند تا یک ماتریس امتیازهی کاربر بسازیم. در این ماتریس، شناسه کاربران در یک ردیف قرار می‌گیرد و محصولات عرضه شده از طرف شرکت در ستونی دیگر. این کار تاثیرگذاریِ یکسانی با ساخت جدول محوری «Pandas» خواهد داشت. این دیتافریم با نسبت ۸۰/۲۰ به مجموعه آزمایش و آموزش تقسیم خواهد شد.

    ابزار Surprise یازده الگوریتم پیش‌بینی عرضه می‌کند که چند نوع الگوریتم KNN و روش‌های کاهش ابعاد از قبیل SVD و NMF نیز در میان آن‌ها وجود دارند. برای نشان دادن نحوه عمکرد یک توصیه گر، چند نمونه از الگوریتم های فوق مورد استفاده قرار گرفته و توسط اعتبار سنجی ۵ تکه با یکدیگر مقایسه شده اند. این الگوریتم ها عبارتند از:

    •  NormalPredictor: این مدل مبنا، بر اساس توزیع مجموعه آموزش به پیش‌بینیِ امتیاز تصادفی می‌پردازد. مفروض است که این مجموعه دارای توزیع نرمال است.
    • SVD: این روش فاکتورگیری ماتریس، محبوبیت خود را مرهون «سایمون فانک» است.
    • KNNBasic: این روش از شباهت سینوسی برای انجام KNN استفاده می‌کند.
    • CoClustering: این الگوریتم مشابه روش k-means، نقاط را به خوشه‌ها تخصیص می‌دهد.

    دو روش برای ارزیابی عملکرد مدل وجود دارد. از دیدگاه کِیفی، می‌توان کاربری به صورت تصادفی انتخاب کرد و دید که آیا توصیه‌ها با توجه به محصولات دیگری که دوست دارند، منطقی است یا خیر. برای مثال، اگر کسی به تماشای فیلم‌های ترسناک علاقه دارد و علاقه‌ای به ژانر کمدی عاشقانه نشان نمی‌دهد، فیلم «The Shining» نسبت به «Love Actually» توصیه بهتری است.

    ما در این مجموعه‌داده هیچ اطلاعاتی درباره هر یک از محصولات نداریم. لذا مجبور به استفاده از یک معیار کمی (مجذور میانگین مربعات خطا (Root Mean Square Error (RMSE یا rmse هستیم. ترکیبی از این دو روش می‌تواند ایده‌آل باشد، علی‌رغم اینکه معیار کمّی، واقع‌گرایانه‌تر است.

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

    بر اساس کدهای فوق، SVD دارای پایین‌ترین rmse است بنابراین مدل مورد نظرِ ما برای ادامۀ کار خواهد بود.

     

    تنظیم مدل: جستجوی شبکۀ Surprise

    بستۀ Surprise گزینه‌ای برای تنظیم پارامترها با استفاده از GridSearchCV ارائه می‌کند. ما یک دیکشنری از پارامترها برای GridSearchCV در نظر گرفته‌ایم. rmse مورد محاسبه قرار گرفته و بر اساس آن هر ترکیب از پارامترها با یکدیگر مقایسه خواهند شد.

    با توجه به این جستجو، یک خروجی دریافت کردیم که نشان می‌دهد بهترین امتیازِ بدست‌آمده (پایین‌ترین rmse) برابر با ۱.۲۷ بود. این مقدار با استفاده از پارامترهای {‘n_factors’: ۲۵, ‘n_epochs’: ۵۰, ‘lr_all’: ۰.۰۱, ‘reg_all’: ۰.۱} به دست آمد.

    متریک و مدل نهایی

    با توجه با پارامترهای فوق، مدل را در مجموعه آموزشی کامل بدون استفاده از اعتبارسنجی متقابل  cross validation  اجرا کرده و دقّت آن را ثبت می‌کنیم.

    ویژگی .test سبب تولید پیش بینی هایی نظیر، شناسه کاربر، شناسه آیتم، امتیاز واقعی کاربر، امتیاز تخمین زده شده توسط مدل و یک نشانگر که تعیین کننده امکان پیش بینی است میشود. علاوه بر بررسی خروجیِ model_rmse از مدل آموزش‌یافته و نهایی، توزیعِ خطاهای مطلق در کل پیش‌بینی‌ها بررسی خواهد شد. برای انجام این کار، خروجیِ پیش‌بینی‌ها را در یک دیتافریم قرار داده و ستونی را اضافه خواهیم کرد که خطای هر پیش‌بینی را نشان می‌دهد. امکان نشان دادن تصویریِ نتایج با ترسیم نموداری از خطاها نیز وجود دارد.

    در شکل‌های زیر، اگرچه مقدار خطا در مجموعه‌داده برابر با ۱.۰ بود، اما وقتی کاربری به محصولی امتیازی بالای ۳ داد، مدل پیش‌بینی‌های بهتری انجام داد؛ به‌طوری‌که خطا به ۰.۸ کاهش یافت. در مقابل، وقتی کاربری به یک محصول امتیازی کمتر از ۳ داد، خطا بالاتر از ۱.۵ بود. این نتیجه خوبی است و می‌تواند توصیه‌های خوبی در اختیار کاربران قرار دهد. پیش‌بینیِ دقیق برای ما حائز اهمیت است.

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

    این دو نمودار خطای کلی مدل را با خطای امتیازدهی مقایسه می‌کنند.

    نکات پایانی

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

    رقابت Netflix Prize چقدر تأثیرگذار بوده است؟

    مقاله قبلی

    ۱۰ کتابخانه برتر پردازش زبان طبیعی (NLP)

    مقاله بعدی

    شما همچنین ممکن است دوست داشته باشید

    بیشتر در آموزش

    نظرات

    پاسخ دهید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *