درباره دوره:
طی دهههای اخیر، با ظهور یوتیوب، آمازون، نتفلیکس و بسیاری از وب سرویسهای دیگر، سیستم های پیشنهاد دهنده جایگاه ویژهای در زندگی ما پیدا کردهاند. کاربرد اینگونه سیستمها در خدمات متنوعی از جمله تجارت الکترونیکی، تبلیغات آنلاین و حتی سفرهای آنلاین رومزه غیرقابل انکار است.
وقتی یک محصولی را به صورت آنلاین خریداری میکنید، ممکن است مقالاتی به شما پیشنهاد داده شود؛ یا حتی وقتی در اینترنت در حال گشتوگذار هستید، مطالبی مناسب با شما و طبق ترجیحاتتان برایتان نمایش داده میشود. این قبیل موارد که هر روزه با آنها مواجه هستید، با کمک Recommender System ها امکانپذیر است.
با توجه به اهمیت سامانههای پیشنهاد دهنده در دنیای امروز، تصمیم گرفتیم دورهای برای آموزش سیستم توصیهگر (Recommender Systems) طراحی کنیم. در این دوره بعد از معرفی این سیستمها به روش ساخت آنها با استفاده از تکنیکهای مدرن هوش مصنوعی و یادگیری ماشین هم میپردازیم.
طی این دوره با مقدمات و مفاهیم بازیابی اطلاعات (Information Retrieval) و سامانههای توصیهگر، لزوم طراحی و استفاده از آنها در وبسایتها و اپلیکیشنها و تاثیر این سامانهها بر افزایش نرخ تبدیل (Conversion Rate) در کسبوکارهای آنلاین آشنا خواهید شد. پس از آشنایی با این موارد، مدرنترین روشها و متدهای روز دنیا برای پیادهسازی سیستمهای پیشنهاددهنده در پایتون را بررسی خواهیم کرد.
دوره آموزش سیستم پیشنهاد دهنده از از مجموعه دورههای آموزش هوش مصنوعی و آموزش ماشین لرنینگ مکتب خونه تنها به این مباحث ختم نمیشود. مهمترین بخش این دوره، تدریس گام به گام چگونگی پیادهسازی سیستمهای پیشنهاد دهنده در پایتون است. طبق این برنامه آموزشی، شما یاد میگیرید که براساس علایق و سوابق جمعآوری شده از کاربران، با استفاده از هوش مصنوعی و شبکههای عصبی مصنوعی (Artificial Neural Networks) به کاربران خود فیلم پیشنهاد دهید. در این راستا از زبان برنامهنویسی Python و فریمورک TensorFlow و Keras استفاده خواهیم کرد.
در این دوره آموزشی خواهید توانست از مفاهیم پایه و معرفی سیستم تا استقرار روی سرورهای عملیاتی را قدم به قدم فرا بگیرید. بنابراین اگر قصد آموزش عملی و صفر تا صد پیاده سازی سیستمهای پیشنهاد دهنده را دارید، دوره آموزش طراحی و توسعه سیستمهای پیشنهاد دهنده (Recommender Systems) مکتبخونه را به شما پیشنهاد میدهیم.
همانطور که اشارده شد سیستمهای پیشنهاد دهنده یکی از بهروزترین شیوههای ارتقاء کسبوکار و جذب مشتری هستند. طبق پژوهشهای انجامشده به طور قطع تا چندین سال آینده، این سیستمها از مهمترین مباحث موجود در کسبوکارها و دنیای دیجیتال خواهد بود.
بنابراین، دوره آموزشی طراحی و توسعه سیستمهای پیشنهاد دهنده با هدف آشنایی دانشجویان، برنامهنویسان، مهندسان و مدیران کسبوکارهای آنلاین با سامانه توصیه گر، چگونگی پیادهسازی و استفاده از آنها در کسبوکارها طراحی شدهاست.
بعد از گذراندن این دوره به راحتی میتوانید با استفاده از هوش مصنوعی و یادگیری ماشین، سیستم های پیشنهاد دهنده امروزی را برای استفاده در صنعت یا کارهای پژوهشی، پیادهسازی و ارزیابی کنید.
روشهای آموزشی استفاده شده در دوره آموزش سیستمهای پیشنهاد دهنده ویژگیهای منحصر به فردی دارد که شما را نسبت به نتیجهی نهایی حاصل از فراگیری دوره مطمئن خواهد کرد. این ویژگیها به شرح ذیل است:
به طور کلی، سیستم های توصیه گر یا سیستم های پیشنهاد دهنده الگوریتمهایی هستند که هدف آنها پیشنهاد دادن موارد مرتبط با کاربران است. پیشنهاد فیلم برای تماشا، متن برای خواندن، محصول برای خرید یا هرچیز دیگری از جمله این موارد هستند. بسته به صنعتی که در آن فعالیت دارید، میتوانید از سیستم پیشنهاد دهنده برای جذب مخاطب استفاده کنید.
پیادهسازی سیستمهای پیشنهاد دهنده در بعضی از صنایع واقعا حیاتی هستند؛ چرا که اگر کارایی لازم و کافی را داشته باشند، درآمد قابل توجهی را برایتان به ارمغان خواهند آورد. برای اثبات اهمیت این موضوع میتوانیم به Netflix اشاره کنیم. این شرکت حاضر است برای ده درصد بهبود در سامانه توصیه گر فیلم خود مبلغ یک میلیون دلار بپردازد!
سیستمهای پیشنهاد دهنده از دو منظر دستهبندی میشوند؛ تقسیمبندی محصولی و تقسیمبندی الگوریتمی. تقسیمبندی محصولی ریکامندر سیستمها شامل دو دسته آیتممحور و کاربرمحور است. توصیههایی که در دسته آیتممحور به کاربر داده میشود، برای یک آیتم خاص است. در این حالت اگر وارد صفحهای از یک سایت شوید، یک مطلب در ارتباط با عنوان همان صفحه به شما نمایش داده میشود.
سیستمهای پیشنهاد دهنده کاربرمحور براساس سلیقه کاربر پیشنهاد ارائه میدهند. مثلا اگر یک برنامهنویس پایتون باشید و وارد یک سایت شوید، مطلبی در ارتباط با پایتون به شما نمایش داده خواهد شد. این سیستمها را از منظر الگوریتم و دیتای ورودی هم میتوان به دو دسته محتوا محور و بازدید محور تقسیم میکنند. در دسته محتوا محور، سامانه توصیه گر محتوای آیتمها را تحلیل کرده و نزدیکترین مطلب یا محصول را نمایش میدهد. ریکامندر سیستمهای بازدید محور بدون توجه به محتوای آیتمها، از دیتای بازدید کاربران سایت استفاده میکند. مثلا در یک سایت، سامانه پیشنهاد دهنده بین دو کاربر شباهت پیدا کرده و یک محصول را به هردوی آنها پیشنهاد میدهد.
سیستمهای پیشنهاد دهنده در پایتون از روشهای مختلفی میتوانند به علایق کاربران دست یابند و آنها را پیشبینی کنند. آنها از ماتریسهایی برای شناسایی رابطه بین موجودیت آیتم و کاربران استفاده میکنند. علاوهبراین، سیستمهای پیشنهاد دهنده برای استخراج ویژگیهای خاص هر کاربر از یادگیری عمیق بهره میگیرند. شبکههای عصبی عمیق نقش چشمگیری در پردازش متن، تشخیص گفتار، پیشبینی در حوزههای مختلف و غیره دارند. از این ویژگیها میتوان در پیاده سازی سیستمهای پیشنهاد دهنده به خوبی استفاده کرد.
آموزش ساخت سیستم های توصیه گر یکی از آموزشهای مهم و پرکاربرد برای طراحی بخش پیشنهادات در وب سایتها است. در آموزش ساخت سیستم های پیشنهاد دهنده، با استفاده از هوش مصنوعی و یادگیری ماشین و همچنین زبانهای برنامه نویسی نظیر پایتون، به ارائهی پیشنهادات متنوع و کاربردی به کاربران میپردازیم. عمدتاً گزینههای این پیشنهادات از روی رفتار کاربر و یا مجموعهی کاربران و تعاملات با آنها، ایجاد میشود.
سیستم توصیه گر یا Recommendation systems (که با اسامی دیگری مانند سیستم پیشنهادگر، ریکامندر و یا پیشنهاد دهنده نیز شناخته میشود) یک نوع سیستم نرم افزاری برای پیشنهاد دادن اقلام مختلف در یک زمینهی خاص به کاربر است.
حتماً در فروشگاههای اینترنتی و وبسایتهای ارائهدهندهی محتوا، با این موضوع برخوردهاید که در صفحهی معرفی یک محصول، اقلام دیگر نیز به شما پیشنهاد میشود. مثلاً در یک وب سایت تماشای فیلم، ممکن است دیگر فیلمهای آن کارگردان یا ژانرهای مشابه به شما توصیه شود. این موضوع، توسط یک سیستم توصیه گر انجام میشود.
بهطور کلی، سیستم های پیشنهاد دهنده دارای سه زیرگروه هستند که عبارتند از:
این نوع سیستمهای پیشنهاد دهنده، از تعاملات کاربر برای پیشنهاد کردن یک کالا به وی استفاده میکنند. به این صورت که علاقهمندی تمام کاربران به کالاهای مختلف، تحت ارزیابی قرار میگیرد. مثلاً اگر کاربر «الف»، کالای x را پسندیده و کاربر «ب» به کالاهای x و y علاقهمند است؛ میتواند کالای y را به کاربر «الف» پیشنهاد دهد.
این سیستمها، پیشنهاد را با استفاده از پروفایل کاربر و ویژگیهای اقلام انتخابی وی، ارائه میدهند. این سیستم در نظر میگیرد که چون کاربر قبلاً به چنین کالایی علاقهمند بوده، پس احتمال دارد تا مجدد نیز علاقهمندی وی به کالاهای پیشنهاد شده، برقرار شود.
این نوع از سیستم های پیشنهاد کننده، ترکیبی از روشهای قبلی را ارائه میدهد. معمولاً خروجی این سیستمها دقت بالاتری نسبت به دیگر انواع Recommendation systems خواهد داشت. دستهبندی دیگری نیز برای این سیستمها پیشنهاد شده است که طبق آن، ریکامندرها از انواع فیلترینگ مشارکتی (Collaborative filtering) و یا فیلترینگ هیبریدی خواهند بود.
ریکامندرها، کاربردهای زیادی دارند که در صنایع مختلف برای کاربران و ارائهدهندگان کالا یا خدمات، ایدهآل و مفید خواهد بود. یکی از مهمترین بخشهای هر وب سایت فروشگاهی، سیستم ریکامندر آن است. کاربران همیشه علاقه دارند تا در خصوص خرید بهترین گزینه، راهنمایی شوند. طوری که آنها بتوانند کالاهای همسان را با یکدیگر مقایسه کرده و راحتتر و سریعتر برای خرید آن، تصمیمگیری نمایند.
در فهرست زیر، مهمترین مزایای این سیستمها نشان داده شده است.
• جستوجو در میان محصولات سایت recommendation systems، سادهتر انجام میشود.
• سیستمهای توصیه گر، سبب سهولت در تصمیمگیری و انتخاب خواهند شد.
• سیستمهای پیشنهاد دهنده به ارائهدهندگان کمک میکنند تا فروش خود را افزایش داده و به درآمد بالاتری برسند.
• سیستمهای پیشنهادگر، بستر بهتری برای مقایسهی کالاها و خدمات ایجاد میکنند.
تمام این مزایا و قابلیتها، سبب میشوند تا طراحی و پیادهسازی این سیستمها اهمیت زیادی داشته و کاربرد سیستم های توصیه گر در حرفههای ارائه دهندهی کالا یا خدمت، دیده شود. در نتیجه، با آموزشهای ساخت سیستمهای ریکامندر، میتوانیم این نیازها را پاسخگو باشیم.
آموزش ساخت سیستمهای ریکامندر کمک میکند تا با استفاده از هوش مصنوعی و یادگیری ماشین، با ساختار Recommendation systems آشنا شده و مهارت پیادهسازی آن را بهدست آورید. برای این منظور، شما میتوانید از کتاب سیستم های توصیه گر و یا دورههای آموزشی متعدد استفاده کنید.
در آموزش ساخت سیستم های توصیه گر، شما از زبان برنامه نویسی پایتون و فریمورکهای تنسورفلو یا keras استفاده خواهید کرد. همچنین شما برای پیاده سازی این سیستمها به هوش مصنوعی و گراف شبکههای عصبی مصنوعی نیاز دارید. خلاصه اینکه گام به گام صفر تا صد طراحی سیستمهای توصیه کننده، در این آموزشها گنجانده میشود.
بهطور کلی دورهی آموزش ساخت پروژه سیستم های توصیه گر، به تمام آن دسته از برنامه نویسان و علاقهمندانی توصیه میشود که به پیادهسازی سیستمهای جذاب مبتنی بر هوش مصنوعی علاقه دارند. همچنین اگر شما جزو آن دسته از مدیران دلسوزی هستید که برای رشد و پیشرفت کسب و کارتان، تلاش زیادی را به خرج میدهید، میتوانید از این دورهی آموزشی بهرهمند شوید.
در دورهی آموزش ساخت سیستم های پیشنهادگر، از زبان برنامه نویسی پایتون (python) استفاده میشود. لذا برای اینکه بتوانید مباحث آموزشی این دوره را درک کنید، میبایست تسلط خوبی روی زبان پایتون و دستورات آن داشته باشید. شما میتوانید از دورههای آموزش پایتون مکتب خونه برای تسلط روی این زبان برنامه نویسی استفاده کنید.
انتظار میرود با کتابخانههای رایج پایتون آشنا باشید. چراکه در این آموزشها، از کتابخانههای متعددی نظیر tensorFlow استفاده شده است. کار با این کتابخانه را میتوانید از طریق دورههای آموزش تنسورفلو مکتب خونه، یاد بگیرید. همچنین برای مباحث حرفهایتر در آموزش ساخت سیستم پیشنهاد دهنده، شما نیاز به یادگیری کامل این کتابخانه و موضوع یادگیری عمیق خواهید داشت.
موضوع دیگر در ساخت سیستم های ریکامندر، اهمیت هوش مصنوعی و یادگیری ماشین است. توصیه میکنیم از دورههای آموزش یادگیری ماشین مکتب خونه برای آشنایی مقدماتی با مفاهیم ML و هوش مصنوعی استفاده کنید.
آنچه در این دورهی آموزشی، مد نظر قرار میگیرد؛ در مباحث زیر قابل بررسی خواهد بود.
• مقدمهای بر سیستمهای پیشنهاد دهنده
• بارگذاری دادهها با استفاده از کتابخانهی TFDS
• پیش پردازش ویژگیها با استفاده از Keras Preprocessing Layers
• ساخت یک مدل بازیابی اطلاعات (Retrieval Task)
• جستوجوی نزدیکترین همسایگی (K-nearest Neighbors)
• ساخت یک مدل رتبهبندی (Ranking Task)
• استقرار مدل هوش مصنوعی با استفاده از TF Serving
• پروژهی عملی
دورهی آموزشی مذکور در ۲۷ ساعت ویدیویی طراحی و تدوین شده است. از این مدت زمان، ۶ ساعت آموزش و ۲۱ ساعت به تمرینات عملی و پروژه اختصاص دارد. بازهی زمانی نهایی، با توجه به تسلط کاربر روی مفاهیم پیش نیاز و سرعت عمل وی، قابل محاسبه خواهد بود.
برای اینکه بتوانید سیستم های توصیه گر را طراحی و پیادهسازی کنید، میتوانید از آموزشهای موجود در مکتب خونه استفاده نمایید. شما میتوانید تمام موارد پیش نیاز ساخت این سیستمها را در میان دورههای مکتب خونه جستوجو کرده و دنبال نمایید. بعد از تسلط کامل بر روی مفاهیم پیش نیاز، استفاده از آموزش ساخت سیستمهای پیشنهاد دهنده به شما کمک میکند تا صفر تا صد Recommendation systems را پیادهسازی کنید.
آموزش ساخت سیستم های پیشنهاد دهنده به شما نشان میدهد که چطوری میتوان سیستمی را برای پیشنهاد دیگر کالاها و خدمات به کاربران ارائه دهیم. از آموزش ساخت سیستم های توصیه گر، برای پیادهسازی این بخش در وب سایتها و فروشگاههای اینترنتی استفاده میشود. در مکتب خونه انواع دوره آموزش برنامه نویسی، آموزش پایتون، آموزش هوش مصنوعی، آموزش دیتاساینس و آموزش یادگیری ماشین به عنوان مکمل و پیش نیاز این دوره موجود است.
فصل اول: مقدمهای بر سیستمهای پیشنهاد دهنده:
1 – سامانه پیشنهاد دهنده (Recommender System) چیست؟!
2 – کوییز سیستمهای پیشنهاد دهنده
3 – مراحل مختلف (Taskها) در یک سامانه پیشنهاد دهنده
4 – کوییز مراحل مختلف در یک سیستم پیشنهاد دهنده
5 – روشهای فیلتر کردن اقلام برای پیشنهاددهی
6 – کوییز روشهای فیلتر کردن اقلام برای پیشنهاد دهی
7 – نمایش (Representation) ویژگیهای آشکار و نهان کاربران و اقلام به الگوریتمهای یادگیری ماشین
8 – کوییز نمایش (Representation) ویژگیهای آشکار و نهان کاربران و اقلام به الگوریتمهای یادگیری ماشین
9 – معرفی دیتاست MovieLens
10 – کوییز معرفی دیتاست MovieLens
فصل دوم: بارگذاری دادهها با استفاده از کتابخانه TFDS:
1 – معرفی کتابخانه Tensor Flow Datasets
2 – کوییز معرفی کتابخانه Tensor Flow Datasets
3 – بارگذاری دیتاست MovieLens
4 – کوییز بارگذاری دیتاست MovieLens
5 – بررسی و نمایش دادهها در قالب Pandas DataFrame
6 – کوییز بررسی و نمایش دادهها در قالب Pandas DataFrame
7 – انتخاب ویژگیها (Feature Selection)
8 – کوییز انتخاب ویژگیها (Feature Selection)
9 – جداسازی دیتاست آموزش (Train) و آزمایش (Test)
10 – کوییز جداسازی دیتاست آموزش (Train) و آزمایش (Test)
فصل سوم: پیشپردازش ویژگیها با استفاده از Keras Preprocessing Layers:
1 – پیشپردازش دادههای انواع ویژگیها و ساخت مدلهای End-to-End
2 – کوییز پیشپردازش دادههای انواع ویژگیها و ساخت مدلهای End-to-End
3 – نرمالسازی دادههای یک ویژگی عددی (Numerical)
4 – کوییز نرمالسازی دادههای یک ویژگی عددی (Numerical)
5 – پیشپردازش ویژگیهای دستهای (Categorical) مانند “شناسه کاربر” و تبدیل آنها به بردار Embedding
6 – کوییز پیشپردازش ویژگیهای دستهای (Categorical) مانند “شناسه کاربر” و تبدیل آنها به بردار Embedding
7 – بهدست آوردن بردار Embedding برای ویژگی “شناسه فیلم”
8 – کوییز بهدست آوردن بردار Embedding برای ویژگی “شناسه فیلم”
9 – پیشپردازش ویژگیهای متنی (Textual) با تکنیکهای پردازش زبان طبیعی (NLP)
10 – کوییز پیشپردازش ویژگیهای متنی (Textual) با تکنیکهای پردازش زبان طبیعی (NLP)
11 – مدلی برای نمایش Query ها و Candidate ها در شبکه عصبی دو برجی (Two-Tower Neural Networks)
12 – کوییز مدلی برای نمایش Query ها و Candidate ها در شبکه عصبی دو برجی (Two-Tower Neural Networks)
فصل چهارم: ساخت یک مدل بازیابی اطلاعات (Retrieval Task):
1 – استفاده از ویژگیهای جانبی (Side Features) برای غلبه بر مشکل Cold Start
2 – کوییز استفاده از ویژگیهای جانبی (Side Features) برای غلبه بر مشکل Cold Start
3 – مقدمهای بر Retrieval Task
4 – کوییز مقدمهای بر Retrieval Task
5 – استفاده ضمنی (Implicit) از دیتاست MovieLens برای انجام تسک بازیابی اطلاعات
6 – کوییز استفاده ضمنی (Implicit) از دیتاست MovieLens برای انجام تسک بازیابی اطلاعات
7 – معرفی کتابخانه TensorFlow Recommenders
8 – کوییز معرفی کتابخانه TensorFlow Recommenders
9 – پیادهسازی لایه Retrieval با استفاده از کتابخانه TFRS
10 – پیادهسازی لایه Retrieval با استفاده از کتابخانه TFRS
11 – ساخت مدل Retrieval دو برجی با استفاده از کتابخانه TFRS
12 – کوییز ساخت مدل Retrieval دو برجی با استفاده از کتابخانه TFRS
13 – آموزش (Fit) و ارزیابی (Evaluation) مدل بازیابی اطلاعات با استفاده از توابع Keras
14 – کوییز آموزش (Fit) و ارزیابی (Evaluation) مدل بازیابی اطلاعات با استفاده از توابع Keras
15 – رسم نمودار تغییرات خطا (Loss) هنگام آموزش مدل با استفاده از کتابخانه Matplotlib
16 – کوییز رسم نمودار تغییرات خطا (Loss) هنگام آموزش مدل با استفاده از کتابخانه Matplotlib
فصل پنجم: جستجوی نزدیکترین همسایگیها (K-nearest Neighbors):
1 – جستجوی KNN به صورت Brute-force
2 – کوییز جستجوی KNN به صورت Brute-force
3 – جستجوی KNN به صورت تقریبی با استفاده از کتابخانه Google ScaNN
4 – کوییز جستجوی KNN به صورت تقریبی با استفاده از کتابخانه Google ScaNN
5 – ذخیره مدل آموزشدیده در محیط Google Colab و انتقال آن به Google Drive
6 – کوییز ذخیره مدل آموزشدیده در محیط Google Colab و انتقال آن به Google Drive
فصل ششم: ساخت یک مدل رتبهبندی (Ranking Task):
1 – مقدمهای بر تسک Ranking
2 – کوییز مقدمهای بر تسک Ranking
3 – پیادهسازی مدل Ranking با استفاده از کتابخانه TFRS
4 – کوییز پیادهسازی مدل Ranking با استفاده از کتابخانه TFRS
5 – آموزش (Fit) و ارزیابی (Evaluation) مدل رتبهبندی با استفاده از توابع Keras
فصل هفتم: استقرار مدل هوش مصنوعی با استفاده از TF Serving:
1 – آشنایی با داکر و TensorFlow Serving برای استقرار یک مدل یادگیری ماشین روی سرور عملیاتی
2 – کوییز آشنایی با داکر و TensorFlow Serving برای استقرار یک مدل یادگیری ماشین روی سرور عملیاتی
3 – اجرای TensorFlow Serving روی سرور لینوکس و ارسال درخواست HTTP برای دریافت لیست اقلام پیشنهادی
4 – کوییز اجرای TensorFlow Serving روی سرور لینوکس و ارسال درخواست HTTP برای دریافت لیست اقلام پیشنهادی
فصل هشتم: پروژه پایانی:
1 – پروژه پایانی