Recommendation System
يتنبأ نظام التوصية بالعناصر التي قد يرغب فيها المستخدم ويرتّبها. ويغطي التصفية التعاونية والقائمة على المحتوى ومسارات العمل والتحديات، مع أمثلة برمجية.
نظام التوصية، أو الموصي، برنامج يتنبأ بالعناصر التي يُرجح أن يرغب فيها المستخدم، مثل المنتجات أو مقاطع الفيديو أو الأغاني أو المقالات أو المنشورات، ويرتبها لذلك المستخدم. ويتعلم من التقييمات الصريحة، مثل تقييمات النجوم، ومن التقييمات الضمنية الأكثر شيوعًا بكثير، مثل النقرات ومدة المشاهدة وعمليات الشراء؛ مما يجعله أحد أكثر تطبيقات التعلم الآلي انتشارًا. وقد شكّل محطتين بارزتين المجال: وصف Amazon عام 2003 لـالتصفية التعاونية من عنصر إلى عنصر، وجائزة Netflix (2006–2009)، التي دفعت مليون دولار للفريق الذي حسّن توقعات تقييمات أفلام Netflix بنسبة 10%.
آلية عمل أنظمة التوصية#
تستخدم التصفية التعاونية نمط تفاعلات المستخدمين مع العناصر وحده. وتعثر الأساليب القائمة على المستخدمين على مستخدمين ذوي سجلات متشابهة، بينما تعثر الأساليب القائمة على العناصر على عناصر أعجب بها المستخدمون أنفسهم، ويتعلم تحليل المصفوفات إلى عوامل، الذي انتشر خلال جائزة Netflix، متجهًا لكل مستخدم وعنصر، بحيث يتنبأ جداؤهما الداخلي بتفاعلهما. أما التصفية القائمة على المحتوى فتصف العناصر بسماتها، مثل النوع أو النص المعالَج باستخدام معالجة اللغة الطبيعية (NLP) أو تضمينات الصور، وتوصي بعناصر شبيهة بما أعجب المستخدم من قبل؛ وهي طريقة تعمل حتى مع العناصر التي لم يتفاعل معها أحد. وتجمع الأنظمة الهجينة بين الإشارتين كي تتيح سمات المحتوى إدراج عنصر جديد إلى أن تتراكم تفاعلات كافية.
يطبّق هذا المثال التصفية التعاونية القائمة على العناصر على مصفوفة تقييمات صغيرة، ويتنبأ بتقييمات مستخدم واحد للأفلام التي لم يقيّمها، استنادًا إلى التشابه الجيبي بين أعمدة تقييمات الأفلام:
import numpy as np
# Ratings from 4 users (rows) for 5 movies (columns); 0 means not rated
ratings = np.array(
[
[5, 4, 0, 1, 0],
[4, 5, 1, 0, 1],
[1, 0, 5, 4, 5],
[0, 1, 4, 5, 0],
]
)
# Item-item cosine similarity between the movies' rating columns
norms = np.linalg.norm(ratings, axis=0)
item_sim = ratings.T @ ratings / np.outer(norms, norms)
# Predict user 3's rating of each movie as a similarity-weighted average of their own ratings
user = ratings[3]
rated = user > 0
scores = item_sim[:, rated] @ user[rated] / item_sim[:, rated].sum(axis=1)
for movie in np.flatnonzero(~rated):
print(f"Movie {movie}: predicted rating {scores[movie]:.2f}")قيّم المستخدم 3، في الصف الأخير، الفيلمين 2 و3 بدرجات مرتفعة والفيلم 1 بدرجة منخفضة؛ لذا حصل الفيلم 4، الذي تتبع تقييماته نمط تقييمات الفيلمين 2 و3، على تقييم متوقع قدره 4.10، بينما حصل الفيلم 0، الذي تتبع تقييماته نمط تقييمات الفيلم 1، على 2.09. ويوصي النظام بالفيلم 4.
تتعلم أنظمة التوصية القائمة على التعلم العميق هذه التمثيلات من البداية إلى النهاية. وتضمّن الشبكات ثنائية البرج المستخدمين والعناصر كلًّا على حدة، لذا يصبح استرجاع العناصر المرشحة بحثًا متجهيًا عن تضمينات العناصر الأقرب إلى تضمين المستخدم، بينما تقرأ نماذج التسلسل، مثل المحوّلات، سجل المستخدم بالترتيب للتنبؤ بالتفاعل التالي.
خط المعالجة متعدد المراحل#
لا تستطيع الخدمات الكبيرة تشغيل نموذج ثقيل على ملايين العناصر لكل طلب، لذا تقدم التوصيات على مراحل. ويضيّق توليد العناصر المرشحة، أو الاسترجاع، نطاق الكتالوج إلى بضع مئات من العناصر باستخدام إشارات منخفضة الكلفة مثل التصفية التعاونية أو البحث بالتضمينات. ثم يسجل نموذج الترتيب كل عنصر مرشح باستخدام سمات غنية للتنبؤ باحتمال النقر أو المشاهدة أو الشراء، وتضيف مرحلة أخيرة لإعادة الترتيب التنوع والحداثة وقواعد العمل. وقد وصفت YouTube هذا التصميم ذي المرحلتين عام 2016. ويولّد كل توصٍّ معروض أيضًا التعليقات الراجعة المستخدمة لتدريب النموذج التالي، لذا يتعلم النظام من بيانات شكّلتها اختياراته السابقة.
توسّع الأنظمة الحديثة نماذج الترتيب والاسترجاع على غرار نماذج اللغة. وتعامل أنظمة التوصية التوليدية من Meta، المنشورة في ICML 2024، أفعال كل مستخدم كسلسلة، ووصل عدد معلماتها إلى 1.5 تريليون، وحسّنت المقاييس في اختبارات A/B عبر الإنترنت بنسبة 12.4%.
التوصيات المرئية#
تعتمد كتالوجات الأزياء والأثاث والفنون على المظهر لتقديم التوصيات؛ لذا تقارن ميزات «المزيد من هذا» تضمينات صور المنتجات، بينما تستخدم ميزات «تسوّق الإطلالة» اكتشاف الكائنات أولًا لقص كل عنصر من صورة مشهد، ثم تبحث في الكتالوج عن منتجات مشابهة بصريًا. ويُستخدم أسلوب الاسترجاع نفسه لاقتراح بيانات التدريب: تعرض ميزة البحث عن صور مشابهة في منصة Ultralytics ما يصل إلى 24 من أقرب الصور من مجموعات البيانات العامة ومجموعات الفريق، مع درجة تشابه لكل منها؛ وتتجاهل الصور الموجودة أصلًا في مجموعة البيانات، ويمكنها البدء من صور التحقق الأقل أداءً للنموذج.
التطبيقات#
- البيع بالتجزئة والتجارة الإلكترونية: تعرض صفحات المنتجات قوائم «اشترى العملاء الذين اشتروا هذا المنتج أيضًا» وصفحات رئيسية مخصصة تستند إلى سجل التصفح والشراء.
- الوسائط المتدفقة: ترتب خدمات الفيديو والموسيقى العناوين وتنشئ قوائم تشغيل استنادًا إلى سجل المشاهدة والاستماع، كما تخصص Netflix العمل الفني المعروض لكل عنوان.
- خلاصات التواصل الاجتماعي والأخبار: ترتب المنصات المنشورات ومقاطع الفيديو القصيرة والمقالات حسب التفاعل المتوقع، وتحدّث الترتيب كلما فتح المستخدم الخلاصة.
- الأزياء: يقترح البحث عن التشابه المرئي ملابس تتوافق في النمط أو اللون أو النقش مع عنصر شاهده المتسوق أو صوّره.
أنظمة التوصية مقابل المفاهيم ذات الصلة#
- البحث: يجيب محرك البحث عن استعلام صريح، بينما يتوقع نظام التوصية ما يريده المستخدم من دون استعلام؛ وتشترك الأنظمة الحديثة في مكونات الاسترجاع والترتيب.
- البحث المتجهي وقواعد بيانات المتجهات: تعثر على التضمينات المخزنة الأقرب إلى تضمين الاستعلام، وهي اللبنة الأساسية التي يستخدمها نظام التوصية للاسترجاع.
- نماذج إعادة الترتيب: نماذج المرحلة الثانية التي تعيد تقييم قائمة قصيرة من العناصر المرشحة بدقة أكبر، وهو دور مرحلة الترتيب في نظام التوصية.
- النمذجة التنبؤية: مرحلة الترتيب نموذج تنبؤي لاحتمال التفاعل، بينما يتولى نظام التوصية الكامل أيضًا الاسترجاع والترتيب وحلقة التعليقات الراجعة.
التحديات#
- البداية الباردة: لا يملك المستخدمون الجدد والعناصر الجديدة سجل تفاعلات، لذا تلجأ الأنظمة إلى الشعبية أو أسئلة التسجيل الأولي أو سمات المحتوى.
- التناثر: يتفاعل كل مستخدم مع جزء ضئيل من كتالوج كبير، لذا تكون معظم مصفوفة المستخدمين والعناصر فارغة.
- انحياز الشعبية وحلقات التعليقات الراجعة: يفضّل التدريب على التفاعلات المسجّلة العناصر التي عُرضت كثيرًا من قبل، مما يحدّ مما يراه المستخدمون وقد ينشئ فقاعات ترشيح.
- التقييم: غالبًا ما تختلف المقاييس غير المتصلة، مثل precision@k وNDCG المحسوبة على البيانات التاريخية، عن اختبارات A/B عبر الإنترنت التي تقيس ما يفعله المستخدمون فعليًا مع التوصيات الجديدة.
- الخصوصية: الملفات السلوكية التفصيلية بيانات شخصية تحميها قوانين حماية البيانات في الاتحاد الأوروبي وولايات قضائية أخرى.
- التنظيم: يفرض قانون الخدمات الرقمية للاتحاد الأوروبي على المنصات الإلكترونية ومحركات البحث الكبيرة جدًا تقديم خيار واحد على الأقل لكل نظام توصية لا يستند إلى التنميط.










