برنامه نویسی سیستم های توصیه گر

دوره آموزشی طراحی و پیاده سازی سیستم های توصیه گر با پایتون مدرسه علم داده

هر چه قدر مقدار خطای ریشه میانگین مربع‌ها کمتر باشد، پیش‌بینی‌های تولید شده بهتر خواهند بود. گام‌های بالا (برای تولید ماتریس user-item) را می‌توان توسط تابعی به شکل زیر با هم ترکیب کرد.

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

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

یادگیری ماشین شاخه‌ای از علوم هوش مصنوعی است که نقش اساسی برای پردازش داده‌های حجیم و جمع آوری شده دارد. زمانی که از داده‌ها صحبت می‌کنیم، حتما صاحبان کسب و کارهای بزرگ مانند فروشگاه‌های اینترنتی مخاطب اصلی هستند؛ داده‌های متعددی در فرآیند تجربه کاربری وجود دارند که به راحتی می‌توان از آن برای بهبود کسب و کار استفاده کرد. مدل‌های توصیه‌گر یادگیری عمیق از تکنیک‌های موجود مانند تجزیه ماتریس برای مدل‌سازی ارتباط میان متغیرها و بردارهای «تعبیه شده» (Embeddings) بهره می‌برند. یک بردار تعبیه شده، مجموعه‌ای از اعداد است که در آن فاصله کمی میان موجودیت‌های مشابه مانند کاربران یا محصولات وجود دارد. اگر می‌خواهید اطلاعات بیشتری در رابطه با یادگیری عمیق کسب کنید،‌ می‌توانید مطلب مجله فرادرس در رابطه با این موضوع را مطالعه کنید.

علاوه بر آن ، این سیستمها تأثیر زیادی در موفقیت تبلیغات تجاری شرکتها در زمینه مالی و رضایت مشتری دارند. خیر؛ شما با خرید دوره می توانید در آن دوره شرکت کنید و به محتوای آن دسترسی خواهید داشت. در صورتی که در زمان تعیین شده دوره را با نمره قبولی بگذرانید، گواهی نامه دوره به نام شما صادر خواهد شد. •      جست‌وجو در میان محصولات سایت recommendation systems، ساده‌تر انجام می‌شود. برای نرمال‌سازی مقادیر موجود در ستون purchase_count به ازاء تمامی مشتریان، ابتدا لازم است تا ماتریس user-item با استفاده از مجموعه داده اصلی ساخته شود. استفاده از محتوای این سایت فقط با ذکر منبع و کسب مجوز از مدیر سایت امکان پذیر است.

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

اگر وب سایت فروشگاهی مورد نظر از فناوری سیستم‌های توصیه‌گر بهره ببرد، پس از مرور چند صفحه اینترنتی شما با پیشنهادهای مرتبط با جست‌وجوی خود مواجه خواهید شد. شاید شما به دنبال خرید یک هدفون رنگ سفید هستید که ویژگی ارتباط بی سیم را نیز داشته باشد. با یک سیستم توصیه‌گر خوب شما با پیشنهادهایی روبرو خواهید شد که مرتبط با همین محصول هستند و حتی ممکن است محصولاتی با رنگ مورد نظر نیز در اختیار شما قرار بگیرد. شبکه عصبی بازگشتی یا RNN زیرمجموعه‌ای از شبکه‌های عصبی با حافظه یا «حلقه‌های بازخورد» (Feedback Loops) است که امکان بازشناسی الگوهای موجود در داده‌ها را تسهیل می‌کند. از جمله کاربردهای RNN می‌توان به «پردازش زبان طبیعی» (NLP) و همچنین سیستم‌های پیشنهاد «توالی متنی» (Contextual Sequence) اشاره کرد.

این الگوریتم‌ ها با استفاده از داده‌ها و منابع محدود، سعی در دستیابی به بهترین نتیجه ممکن دارند. هر نوع الگوریتم بهینه‌ سازی ویژگی‌ ها و محدودیت‌ های خاص خود را دارد که بسته به نوع مشکل، ممکن است کارایی متفاوتی داشته باشد. به‌ عنوان مثال، الگوریتم‌ های جستجو میتوانند در برخی مسائل به خوبی عمل کنند، در حالی که در مسائل دیگر ممکن است کارایی ضعیفی داشته باشند. این ابزار براساس سیستم توصیه‌گر تعاملی کار می‌کند و به عنوان یک ماژول NPM شناخته می‌شود. استفاده از این ابزار نیازمند Node.js و Redis است و استفاده از آن برای تجارت‌های مختلف و فروشگاه‌های اینترنتی میسر است چرا که به صورت متن باز توسعه داده شده است.

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

سیستم‌های توصیه‌گر یکی از پیشرفته‌ترین‌ فناوری‌های موجود به حساب می‌آیند که بر اساس الگوریتم‌های از پیش تعیین شد و تاریخچه کاربران، پیشنهادهای مرتبط بر اساس علایق آنان ارائه می‌دهند. دوره آموزش سیستم پیشنهاد دهنده از از مجموعه دوره‌های آموزش هوش مصنوعی و آموزش ماشین لرنینگ مکتب خونه تنها به این مباحث ختم نمی‌شود. مهم‌ترین بخش این دوره، تدریس گام به گام چگونگی پیاده‌سازی سیستم‌های پیشنهاد دهنده در پایتون است. طبق این برنامه آموزشی، شما یاد می‌گیرید که براساس علایق و سوابق جمع‌آوری شده از کاربران، با استفاده از هوش مصنوعی و شبکه‌های عصبی مصنوعی (Artificial Neural Networks) به کاربران خود فیلم پیشنهاد دهید. در این راستا از زبان برنامه‌نویسی Python و فریم‌ورک TensorFlow و Keras استفاده خواهیم کرد. سیستم های توصیه گر، یکی از شایع‌ترین و قابل فهم‌ترین کاربردهای «کلان داده» (Big Data)، «هوش مصنوعی» (Artificial Intelligence) و «یادگیری ماشین» (Machine Learning) محسوب می‌شوند.

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

اگر در پایتون تازه کار هستید، مقدمه‌ای برای پایتون ارائه می‌کنیم، اما برای استفاده موفقیت‌آمیز از این دوره، به تجربه برنامه‌نویسی قبلی نیاز دارید. روش‌های استفاده شده در این مطلب، بر «مبنای همسایگی» (Neighborhood-Based) هستند و همانطور که در بالا مشهود است، این روش معایب (تله‌هایی) دارد. برای مثال، همسایه‌ها ممکن است هیچ یک از فیلم‌هایی که کاربر مشخص (در اینجا مثلا کاربر ۰) تاکنون ندیده را پیشنهاد نکنند. به دلیل نیاز به محاسبه فاصله‌ها به صورت جفت به جفت، روش‌های مبتنی بر همسایگی به سختی مقیاس‌پذیر می‌شوند. هر پنج فیلم اول دارای تگ‌های ژانری مانند Toy Story هستند و بنابراین مشابهت کسینوسی برای آن‌ها برابر با ۱ است.

نمونه ی شناخته شده ی رهیافت های مبتنی بر حافظه، “الگوریتم کاربر محور” (user-based algorithm) و نمونه ای از رهیافت های مبتنی بر مدل، “توصیه گر کرنل – نقشه” (Kernel-Mapping) است. علاوه بر این سیستم های توصیه گر برای؛ متخصصان، گروه های همکاران، طنز پردازیها، رستورانها، خدمات مالی، بیمه عمر، مسائل عاطفی (قرار و مدارهای آنلاین) و صفحات تویتر نیز ارائه شده است. در روش کالا-کالا محصولاتی با عنوان “ممکن است این محصولات را نیز بپسندید” پیشنهاد داده می‌شود که ویژگی مشابهی با کالای انتخابی کاربران دارند. ما در سکان‌آکادمی معتقدیم همه‌ی انسان‌ها حق دارند، به آموزش باکیفیت و کم‌هزینه دسترسی آسان داشته باشند و همه‌ی افراد می‌توانند با آموزش درست، زندگی فردی و اجتماعی خود را بهتر کنند. با توجه به تخصص تیم ما در حوزه‌ی IT و نیاز روزافزون بازار کار به متخصصان این حوزه، تولید و عرضه‌ی محتوای مهارت ‌محور و تخصصی را در حوزه‌ی IT جدی‌تر دنبال کردیم. در این راه از ابتدای انتخاب مسیر متناسب با توانایی و امکانات دانشجو تا یادگیری، تمرین، کسب مهارت تخصصی و عمومی، و در نهایت معرفی به بازار کار همراه او هستیم...

شما یاد می گیرید چگونه داده های ساختاریافته را از صفحات وب استخراج و ذخیره کنید. یادگیری خواندن فایل ها (Reading Files) یکی از مهم ترین مباحث مصرف داده است که در این ویدیو به تفصیل توضیح داده می شود. شما با نحوه استفاده از پایتون برای خواندن انواع مختلف فایل ها، از جمله فایل های متنی، CSV و JSON آشنا خواهید شد. در این روش از یک سیستم رتبه بندی برای پیش بینی ترجیحات یک کاربر با در نظر گرفتن ترجیحات کاربر مشابه (یا همان نزدیکترین همسایه) استفاده می شود. بازه‌ی زمانی نهایی، با توجه به تسلط کاربر روی مفاهیم پیش نیاز و سرعت عمل وی، قابل محاسبه خواهد بود.

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

از طرف دیگر، ممکن است داده‌های شما بیانگر ارتباط میان کاربر و محصول باشند که در این صورت می‌توانید از رویکرد مبتنی بر محتوا برای مدل‌سازی تعاملات جدید بهره‌مند شوید. در این مطلب، سعی شده است تا تعدادی سیستم های توصیه گر برای داده‌های خرید پیاده‌ساری شوند. همچنین، سیستم های توصیه گر پیاده‌سازی شده ارزیابی می‌شوند تا عملکرد بهینه آن‌ها در کاربردهای «جهان واقعی» (Real-Time) تضمین و بهترین مدل از بین آن‌ها انتخاب شود. در نهایت از مدل آموزش دیده، برای پیشنهاد کردن محصولات و آیتم‌های خرید جدید به کاربران استفاده می‌شود. «سیستم های توصیه گر» (Recommender | Recommendation Systems)، زیر مجموعه‌ای از «سیستم‌های فیلتر اطلاعات» (Information Filtering Systems)  محسوب می‌شوند. هدف سیستم های توصیه گر، پیشنهاد مناسب‌ترین آیتم‌ها (داده، کالا، سرگرمی و سایر موارد) به کاربران است.

به‌طور معمول از تجزیه ماتریس برای محاسبه شباهت در تعاملات میان کاربران و در نهایت پیشنهاد محصول کمک می‌گیرند. در ماتریس کاربر-محصول ساده زیر، سعید و مجید هر دو فیلم‌های «ب» و «پ» را دوست دارند. با به‌کارگیری روش تجزیه ماتریس به این نتیجه می‌رسیم که اگر فردی فیلم «ب» را دوست داشته است، به احتمال زیاد به فیلم «پ» نیز علاقه‌مند بوده و در نتیجه فیلم «پ» به کاربر امیر پیشنهاد می‌شود. حالا که به‌خوبی می‌دانید سیستم توصیه گر چیست، باید توجه داشته باشید که نحوه کارکرد این سیستم‌ها به نوع داده ورودی بستگی دارد. اگر اطلاعات جدیدی در اختیار نداشته و تنها تعاملات گذشته کاربران را ثبت کرده‌اید، بهتر است از رویکرد پالایش گروهی استفاده کنید.

شما با شاخص های مختلفی که برای ارزیابی کیفیت و کارایی فرآیندهای داده به کار می روند آشنا می شوید و یاد می گیرید چگونه این شاخص ها را در پروژه های خود اعمال کنید. دو فیلم پیدا می‌شوند که کاربر ۱۲ مشاهده کرده، ولی کاربر ۰ آن‌ها را ندیده است. در این نقطه، می‌توان به سادگی یک تخمین مبنایی برای مقدار رتبه‌هایی که کاربران به فیلم‌های که ندیده‌اند خواهند داد، به دست آورد. ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی می‌نویسم. حمیدرضا حسین‌خانی، دانش‌آموخته مهندسی نرم‌افزار و کارشناسی ارشد هوش مصنوعی و رباتیک است. او از سال ۹۲ به‌عنوان مهندس نرم‌افزار وارد صنعت شد و همکاری با استارتاپ‌های خوش‌نام و در حال رشدی مثل ایران‌اپس، دیجی‌کالا، دیجی استایل، اسنپ و بامیلو در سمت‌های مختلف مهندسی، مدیریت و مشاوره را در کارنامه‌ی خود دارد.

در این بخش، به آموزش کار با پایگاه داده ها (Working with Databases) در پایتون پرداخته می شود. شما با نحوه اتصال به پایگاه داده های مختلف، اجرای کوئری ها و مدیریت داده ها آشنا خواهید شد. در این قسمت، با تکنیک های فراخوانی APIها (Calling APIs) در پایتون آشنا می شوید. APIها یکی از منابع مهم داده در برنامه های مدرن هستند و شما یاد می گیرید چگونه با استفاده از کتابخانه های پایتون به APIهای مختلف متصل شده و داده ها را دریافت کنید. این ویدیو شامل مثال هایی از فراخوانی APIهای معروف و نحوه مدیریت پاسخ های آنها است.

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

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


برنامه نویسی زبان اسمبلی