نکاتی پیرامون سیستم های پیشنهادگر – پادکست پرسش و پاسخ


در چند سال اخیر، «سیستمهای پیشنهادگر» یا «سیستمهای توصیهگر» (Recommender Systems)، توجه پژوهشگران و صاحبان کسب و کارهای زیادی را به خود جلب کردهاند. در همین راستا، پرسشهای زیادی پیرامون چیستی، کاربرد و چگونگی پیادهسازی این سیستمها برای افراد گوناگون مطرح میشود. در این پادکست پرسش و پاسخ که نسخه متنی آن نیز در همین مطلب موجود است، دکتر «سید مصطفی کلامی هریس»، به بیان نکاتی پیرامون سیستم های پیشنهادگر شامل مفهوم، ابزار و روش پیادهسازی آنها میپردازند.
پادکست پیرامون سیستم های پیشنهادگر
ذخیره کردن این فایل صوتی: لینک دانلود
نسخه نوشتاری
یکی از دوستان پرسشهایی را در رابطه با سیستم های پیشنهادگر مطرح کردهاند. پرسشهای مطرح شده در ادامه بیان شدهاند.
- چه ابزارها و روشهایی برای پیادهسازی یک سیستم پیشنهادگر وجود دارد؟
- چه الگوریتمهایی را میتوان در این راستا مورد استفاده قرار داد؟
- آیا نرمافزار «متلب» (MATLAB) برای این زمینه کافی است؟
یکی از ابزارهای خوب در بحث سیستمهای پیشنهادگر، «نرمافزار متلب» است؛ زیرا میتواند کار ساخت و توسعه یک سیستم پیشنهادگر را راحتتر پیش ببرد. البته این به معنای نفی سایر ابزارهای موجود نیست؛ ولی متلب به ویژه هنگامی که فرد در حال انجام یک کار پژوهشی در دانشگاه و یا مشغول انجام پایاننامه است، گزینه خوبی محسوب میشود. متلب امکانات لازم را دارد و بعضا بیشتر از آنچه که کاربر بدان نیاز دارد را در اختیار او قرار میدهد.
اما اینکه سیستم توصیهگر (سیستم پیشنهادگر) (Recommender System) چیست، چگونه کار میکند و چه ابزارهایی برای آن وجود دارد، موضوعی است که باید پیرامون آن صحبت کرد. فرض میشود که کاربر به یک فروشگاه اینترنتی مراجعه کرده است و یا مطالبی را در وبلاگ خاصی مطالعه میکند. در هر دو این موارد، پیشنهادهایی توسط وبسایت به فرد داده میشود (در فروشگاه اینترنتی، محصولات و در وبلاگ، مطالبی به کاربر توصیه (پیشنهاد) میشوند).
در واقع، فرد برای مثال از یک فروشگاه اینترنتی، «چاپگر» (Printer) میخرد. این چاپگرها اغلب کابل USB، جوهر و کاغذ را در بستهبندی خودشان، به همراه ندارند. پیشنهاد دادن این موارد به کاربر، دستکم به خاطر منافع خود کسب و کار، خوب است. اینکه مشتری مواردی که به او پیشنهاد شده است را نیاز داشته باشد یا خیر، خود مسئله دیگری است. زیرا این موارد اصطلاحا امکان «همفروشی» (Cross-Selling) بالایی دارند.
این امر موجب ایجاد همافزایی میشود و به عبارتی، مشتری با خود میگوید: «بلی؛ من این موارد را نیز نیاز دارم» و اقدام به خریداری آنها میکند. مثلا مراکزی که دوربین عکاسی میفروشند، میتوانند کارت حافظه نیز بفروشند و پیشنهاد بدهند. این کار خیلی خوبی است و میتواند جالب باشد. این قابلیت، چیزی است که در فروشگاههای سنتی وجود ندارد زیرا یا باید افراد این کار را انجام دهند که خب معمولا حضور ذهن لازم برای انجام چنین کاری را ندارند و یا مشتریها حوصله و رغبت لازم برای شنیدن این موارد را ندارند. اما در فروشگاهها و وبسایتهای آنلاین، وجود چنین قابلیتی میتواند بسیار جالب باشد.
کار سیستم پیشنهادگر این است که چیزی را توصیه کند که بیشترین احتمال استقبال از آن توسط مخاطب یا مشتری وجود داشته باشد. این سیستم میتواند هر جایی از وبلاگ گرفته تا فروشگاههای اینترنتی باشد. سیستم پیشنهادگر میتواند در یک وبلاگ باشد و در بخش مطالب مرتبط، مقاله یا مقالاتی را به مخاطب پیشنهاد کند؛ که این امر به نوبه خود موجب میشود تا چند صفحه بیشتر از همان وبلاگ توسط مخاطب خوانده شوند و این موضوع در مجموع برای رتبه سایت بهتر است.
وجود سیستم پیشنهادگر در فروشگاه اینترنتی نیز موجب پرتر شدن سبد خرید مشتری میشود. به عنوان مثالی دیگر، میتوان حالتی را در نظر گرفت که فرد در وبسایتی فیلم مشاهده میکند و علاقه بیشتری به برخی از انواع فیلمها دارد. حالا سیستم پیشنهادگر بر اساس سابقهای که از کاربر در نظر دارد، فیلمهایی را پیشنهاد میدهد که شاید آنها نیز مورد پسند کاربر قرار بگیرند.
مثالهایی که بیان شد، کار یک سیستم توصیهگر را نشان میدهد. اما در پاسخ به این پرسش که چطور میتوان این سیستم را پیادهسازی کرد، باید گفت که دو دسته از روشها برای این کار وجود دارد. طبیعتا یک سری از روشهای ریاضی برای این کار وجود دارد که از جمله روشهای کلاسیک محسوب میشوند و کارایی آنها به شدت محدود است.
همچنین، یک سری روشهای مبتنی بر «هوش مصنوعی» (Artificial Intelligence) نیز برای ساخت سیستمهای پیشنهادگر وجود دارد که از جمله آنها میتوان به «شبکه عصبی مصنوعی» (Artificial Neural Network) اشاره کرد. برای مثال، شبکه عصبی میتواند یاد بگیرد که افرادی که یک ویژگی خاص را دارند، در مجموع چقدر از یک فیلم یا محصول مشخص راضی بودهاند.
این اطلاعات، بر اساس مشخصات کاربر و یا بر اساس خریدهای انجام شده توسط کاربران حاصل میشود. به عنوان نمونهای دیگر، گاهی در برخی از فروشگاهها سیستم پیشنهادگر به این صورت عمل میکند که افرادی که کالای الف را سفارش دادهاند، کالای ب را نیز خریداری کردهاند. این اطلاعات بر اساس تعاملاتی که کاربران با آن سایت داشتهاند به دست میآید و این یعنی که صرف ویژگیهای کاربر نیست.
بعضا، فارغ از همه اینها، چند محصول وجود دارد که اغلب با یکدیگر دیده میشوند. حالا این را با شبکه عصبی و «روشهای خوشهبندی» (Clustering) میتوان حل کرد و یا میتوان از «کاوش قواعد» (Rule Mining) که از جمله مباحث «داده کاوی» (Data Mining) محسوب میشود استفاده کرد.
به هر حال، این مبحث به عنوان پیشزمینهای برای استفاده تجاری از بحث «یادگیری ماشین» (Machine Learning) و دادهکاوی محسوب میشود و روشهای گوناگونی شامل شبکههای عصبی، الگوریتمهای خوشهبندی، کاوش قواعد (مثل Apriori و FP-growth)، «سیستمهای فازی» (Fuzzy Systems)، «شبکههای بیزی» (Bayesian Networks) و روشهای متعدد دیگری برای آن وجود دارد و بعضا برای بهینه کردن اینها، میتوان از روشهای «بهینهسازی هوشمند» (Intelligent Optimization) استفاده کرد. طبیعتا برای هر یک از روشهای بیان شده، کتب، مراجع و آموزشهای ویدئویی وجود دارد که میتوان با مطالعه آنها، پیشزمینه اصلی را یاد گرفت.
گاهی پیش میآید که فرد، انتگرال، مشتق و به طور کلی، چنین مباحثی را یاد میگیرد. این موارد تا هنگامی که از آنها استفاده نشود، شاید به جز معنای ریاضی که دارند، هیچ معنای فیزیکی خاصی نداشته باشند. اما برای مثال، فرد انتگرال را میآموزد و سپس یاد میگیرد که میتوان با استفاده از این مفهوم و با داشتن سرعت یک جسم بر حسب زمان، محل حضور آن را پیدا کرد؛ یا سرعت را با داشتن شتاب و یا بالعکس، محاسبه کرد.
در اینجا فرد ابتدا باید نسبت سرعت، شتاب و مکان و چگونگی تبدیل آنها به یکدیگر را بداند و سپس، ابزار لازم برای انجام این محاسبات را داشته باشد. یعنی فرد باید انتگرال و مشتق را بداند. در بحث سیستمهای پیشنهادگر هم همینطور است. اینکه فرد شبکه عصبی را یاد بگیرید یعنی در واقع ابزار کاربر را یاد گرفته است. اما اینکه چطور باید به پاسخ رسید، خب فرد میداند که با انتگرال گرفتن از شتاب میتوان به سرعت رسید و این دانشی که در اینجا وجود دارد دانش فیزیک است. در بحث سیستمهای پیشنهادگر نیز کاربر باید دانش لازم برای سیستمهای پیشنهادگر را داشته باشد که خب این نیازمند مطالعه در آن حوزه است.
برای این مورد الگوریتمهای متفاوتی وجود دارد که بر اساس کاربر، سفارش او و یا بر اساس اقلام است و خیلی مسائل مختلف دیگری وجود دارد که باید آنها را بررسی کرد و سپس باید مسئله را به یک مسئله یا وظیفه یادگیری ماشین تبدیل کرد و با یکی از ابزارهای بیان شده، مسئله موجود را حل کرد.
برای دانلود کردن و شنیدن دیگر پادکستهای دکتر سید مصطفی کلامی هریس در مجله فرادرس، روی این لینک [+] کلیک کنید.
اگر این مطلب برای شما مفید بوده است، آموزشها و مطالب زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای شبکههای عصبی مصنوعی
- آموزش شبکههای عصبی مصنوعی در متلب
- مجموعه آموزشهای الگوریتمهای بهینهسازی هوشمند
- پیادهسازی سیستمهای توصیهگر در پایتون — از صفر تا صد
- ساخت سیستم توصیهگر (Recommender System) فیلم با پایتون — راهنمای جامع و ساده
- ساخت سیستم توصیهگر در پایتون — به زبان ساده
- سیستم توصیهگر قیمت با پایتون — راهنمای کاربردی
^^