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

فهرست مطالب پنهان‌کردن فهرست
  1. 1. مقدمه‌ای بر یادگیری ماشین و سیستم‌‌های توصیه‌گر
  2. 2. سیستم توصیه‌گر چیست؟
    1. 2.1. چگونگی کارکرد سیستم‌‌های توصیه‌گر
    2. 2.2. بازخورد صریح و بازخورد ضمنی
      1. 2.2.1. بازخورد صریح
      2. 2.2.2. بازخورد ضمنی
  3. 3. انواع سیستم‌‌های توصیه‌گر
    1. 3.1. فیلترینگ مشارکتی (Collaborative Filtering)
    2. 3.2. فیلترینگ مبتنی بر محتوا (Content-Based Filtering)
    3. 3.3. فیلترینگ ترکیبی (Hybrid Filtering)
  4. 4. روش‌های محاسبه شباهت بین ذائقه کاربران در فیلترینگ مشارکتی
    1. 4.1. ۱. شباهت کسینوسی
      1. 4.1.1. کاربرد در سیستم‌‌های توصیه‌گر
      2. 4.1.2. منظور از میانگین‌ وزن‌دار چیست؟
    2. 4.2. پیاده‌سازی کد سیستم توصیه‌گر بر مبنای شباهت کسینوسی
      1. 4.2.1. ساخت ماتریس امتیازات
      2. 4.2.2. ساخت لیست امتیازات احتمالی کاربران
      3. 4.2.3. استخراج امتیازات
      4. 4.2.4. ایجاد فهرست توصیه‌ها
      5. 4.2.5. پر کردن دیکشنری
      6. 4.2.6. نمایش توصیه‌ها
    3. 4.3. ۲. تجزیه مقادیر منفرد
      1. 4.3.1. فرایند تجزیه
      2. 4.3.2. فرایند یادگیری
      3. 4.3.3. بهینه‌سازی
      4. 4.3.4. خروجی مدل
    4. 4.4. پیاده‌سازی کد سیستم توصیه‌گر بر مبنای SVD
      1. 4.4.1. یافتن بهترین مدل
  5. 5. روش‌های محاسبه شباهت بین ذائقه کابران در فیلترینگ مبتنی بر محتوا
    1. 5.1. استخراج ویژگی‌های محصول
    2. 5.2. محاسبه شباهت بین محصولات
    3. 5.3. تطبیق شباهت‌ها با ذائقه کاربر
  6. 6. مزایای استفاده از سیستم‌‌های توصیه‌گر
  7. 7. نقش سیستم‌‌های توصیه‌گر در تجارت الکترونیک بزرگ: از آمازون تا گوگل
    1. 7.1. اسپاتیفای: کشف موسیقی جدید
    2. 7.2. نتفلیکس: بهینه‌سازی تجربه تماشا
    3. 7.3. فیسبوک (متا): پیشنهاد‌های هدفمند
    4. 7.4. آمازون: یافتن محصول مناسب در میان میلیون‌ها گزینه
    5. 7.5. گوگل و یوتیوب: بهینه‌سازی جستجو و پیشنهاد محتوا
  8. 8. جمع‌بندی
  9. 9. پرسش‌های متداول
    1. 9.1. سیستم‌های توصیه‌گر چگونه به بهبود تجربه کاربری کمک می‌کنند؟
    2. 9.2. فیلترینگ مشارکتی و فیلترینگ مبتنی بر محتوا چه تفاوت‌هایی دارند؟
    3. 9.3. چه روش‌هایی برای محاسبه شباهت بین کاربران در سیستم‌های توصیه‌گر استفاده می‌شود؟
    4. 9.4. در زمینه بهینه‌سازی سیستم‌های توصیه‌گر، استفاده از SVD چه مزایایی دارد؟
    5. 9.5. نقش سیستم‌های توصیه‌گر در افزایش تعامل کاربران و فروش چگونه است؟
  10. 10. یادگیری ماشین لرنینگ را از امروز شروع کنید!

مقدمه‌ای بر یادگیری ماشین و سیستم‌‌های توصیه‌گر

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

این سیستم‌ها، با تحلیل عمیق داده‌های کاربری، پیشنهاد‌های شخصی‌سازی‌شده‌ای را به کاربران ارائه می‌کنند که می‌تواند محصولات، سرویس‌ها یا حتی محتوا را در بر گیرند.

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

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

چگونگی کارکرد سیستم‌‌های توصیه‌گر

این سیستم‌ها با جمع‌آوری و تجزیه‌وتحلیل داده‌های کاربران شروع‌به‌کار می‌کنند. این داده‌ها ممکن است امتیازات داده‌شده به محصولات، بررسی‌های کاربران، ویدئوهای پسندیده‌شده (like) و نپسندیده‌شده (dislike) و غیره را شامل باشد؛ سپس با استفاده از الگوریتم‌های یادگیری ماشین و یادگیری عمیق، سیستم، پتانسیل‌ها و الگوهای رفتاری مصرف‌کنندگان را شناسایی و پیشنهادهایی را براساس آن ارائه می‌کند.

بازخورد صریح و بازخورد ضمنی

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

بازخورد صریح

بازخورد صریح (Explicit Feedback) به آن دسته از بازخوردهایی اطلاق می‌شود که کاربران به صورت آگاهانه و روشن، نظر خود را در مورد یک محصول یا محتوا ابراز می‌دارند، مانند امتیازدهی به محصولات. این نوع بازخورد اطلاعات دقیقی را در اختیار سیستم قرار می‌دهد، اما جمع‌آوری آن دشوار است چرا که بسیاری از کاربران تمایلی به نوشتن نظر یا امتیازدهی ندارند.

بازخورد ضمنی

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

 انواع سیستم‌‌های توصیه‌گر

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

فیلترینگ مشارکتی (Collaborative Filtering)

این روش بر اساس شباهت‌های بین کاربران و محصولات کار می‌کند. اگر کاربری محصولی را پسندیده، سایر کاربرانی که سلیقه‌های مشابهی دارند نیز ممکن است آن محصول را بپسندند. این روش می‌تواند به دو شکل مبتنی بر کاربر (User-Based Collaborative Filtering) و مبتنی بر محصول (Item-Based Collaborative Filtering) اجرا شود، که در هر دو مورد، محصولات یا کاربرانی با ویژگی‌ها یا ترجیحات مشابه به یکدیگر معرفی می‌شوند.

فیلترینگ مبتنی بر محتوا (Content-Based Filtering)

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

فیلترینگ ترکیبی (Hybrid Filtering)

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

  • ترکیب توالی (Sequential Hybrid): در این روش، ابتدا یک روش (مانند فیلترینگ مبتنی بر محتوا) برای تولید یک لیست اولیه از توصیه‌ها استفاده می‌شود و سپس روش دیگر (مانند فیلترینگ مشارکتی) برای تنظیم این لیست به کار می‌رود.
  • ترکیب وزن‌دهی (Weighted Hybrid): در این روش، نتایج چندین روش فیلترینگ با هم ترکیب می‌شوند، اما به هر روش وزنی اختصاص داده می‌شود که نشان‌دهنده اهمیت آن روش در ترکیب نهایی است.
  • ترکیب تعویضی (Switching Hybrid): در این روش، سیستم بسته به شرایط یا مشخصات کاربر، بین روش‌های مختلف جابجا می‌شود. به عنوان مثال، ممکن است برای کاربران جدید از فیلترینگ مبتنی بر محتوا استفاده شود، در حالی که برای کاربران قدیمی‌تر بیشتر از فیلترینگ مشارکتی استفاده شود.

هدف اصلی از استفاده از فیلترینگ ترکیبی در سیستم‌‌های توصیه‌گر این است که دقت توصیه‌ها افزایش یابد و مشکلاتی مانند سردی شروع (Cold Start)، مقیاس‌پذیری و تنوع بهبود یابد. این روش‌ها با استفاده از اطلاعات و منابع مختلف، توانایی ارائه توصیه‌های دقیق‌تر و کارآمدتر را دارند.

روش‌های محاسبه شباهت بین ذائقه کاربران در فیلترینگ مشارکتی

برای این منظور از رویکرد شباهت کسینوسی و تجزیه مقادیر منفرد استفاده می‌شود. هر دوی این روش‌ها برای پیش‌بینی ترجیحات کاربران و ارائه توصیه‌هایی مبتنی بر رفتار پیشین کاربران استفاده می‌شوند.

۱. شباهت کسینوسی

شباهت کسینوسی (Cosine Similarity) یکی از روش‌های اندازه‌گیری شباهت بین دو بردار در فضای چندبعدی است. این روش کسینوس زاویه بین دو بردار را با استفاده از فرمول زیر محاسبه می‌کند تا میزان شباهت بین آن‌ها را تعیین کند:

\cos(\theta) = \frac{\mathbf{A} \cdot \mathbf{B}}{|\mathbf{A}| |\mathbf{B}|}

کاربرد در سیستم‌‌های توصیه‌گر

این روش برای محاسبه شباهت بین دو کاربر بر اساس امتیازاتی که به مجموعه‌ای مشترک از محصولات (مانند فیلم، کتاب و …) داده‌اند، استفاده می‌شود. شباهت کسینوسی، کسینوس زاویه بین دو بردار را در فضایی محاسبه می‌کند که هر بُعد آن متناظر با یک محصول است. مقدار کسینوس نزدیک‌تر به ۱ نشان‌دهنده شباهت بیشتر است. در اینجا هر بردار مجموعه امتیازات یک کاربر را نشان می‌دهد. در پایان امتیازی که ممکن است کاربر مورد نظر به فیلمی که هنوز آن را ندیده بدهد، بر اساس میانگین وزن‌دار امتیازاتی که کاربران دیگر به آن فیلم داده‌اند، محاسبه می‌شود.

منظور از میانگین‌ وزن‌دار چیست؟

در اینجا منظور از میانگین وزن‌دار، ضرب میزان شباهت سلیقه کاربر مورد نظر و سایر کاربران (بر اساس شباهت کسینوسی) در امتیازی است که آن کاربران به آن فیلم داد‌ه‌اند. این عبارت نهایتا تقسیم بر مجموع شباهت کسینوسی سایر کاربران و کاربر مورد نظر می‌شود و به این ترتیب امتیاز احتمالی کاربر مورد نظر به فیلمی که هنوز آن را تماشاش نکرده، بدست می‌آید. شکل زیر بخشی از دست‌نوشت کلاس علم داده ۲ رضا شکرزاد است که همین مفهوم را توضیح می‌دهد:

پیاده‌سازی کد سیستم توصیه‌گر بر م