انتقل إلى المحتوى

مصطلح في خيطين

تحليل المصفوفاتMatrix Factorization

المعنى في سطر

تفكيك مصفوفة كبيرة ناقصة إلى مصفوفتين أصغر يقرّب حاصل ضربهما المصفوفة الأصلية — الأساس الرياضي وراء أنظمة التوصية الكلاسيكية.

باختصار

تحليل المصفوفات (Matrix Factorization) هو رياضيًا آلية لإيجاد المصفوفات اللي حاصل ضربها النقطي بيقرّب مصفوفة مستهدَفة معيّنة.

بالتفصيل

في أنظمة التوصية (Recommendation Systems)، المصفوفة المستهدَفة غالبًا بتحمل تقييمات المستخدمين على عناصر معيّنة. تخيّل جدولًا لخدمة أفلام: صفوف بتمثّل مستخدمين، أعمدة بتمثّل أفلامًا، والقيم بتمثّل تقييمات المستخدم (من 1 إلى 5)، بينما القيمة صفر تعني إن المستخدم ما قيّمش الفيلم أصلًا.

والمشكلة الجوهرية إن المصفوفة دي شديدة الندرة (Sparse): كل مستخدم شاف وقيّم نسبة ضئيلة جدًا من الأفلام. الهدف من نظام التوصية هو التنبّؤ بتقييمات المستخدمين لأفلام لم يقيّموها بعد — مثلًا، هل مستخدم معيّن هيحبّ فيلمًا لم يشاهده؟

أحد الأساليب المستخدَمة لحلّ ده هو تحليل المصفوفات لإنشاء مصفوفتين: مصفوفة مستخدمين (User Matrix) بشكل عدد المستخدمين × عدد أبعاد كامنة، ومصفوفة عناصر (Item Matrix) بشكل عدد الأبعاد الكامنة × عدد الأفلام.

والفكرة إن كل مستخدم وكل فيلم بيتمثّلوا بمتّجه في «فضاء كامن» أصغر بكثير من عدد الأفلام الفعلي — ممكن تفكّر في الأبعاد دي كأنها تمثّل خصائص مبهمة زي «ميل نحو الأكشن» أو «تفضيل أفلام قديمة»، من غير ما حدّ يسمّيها صراحةً. وحاصل الضرب النقطي بين متّجه مستخدم ومتّجه فيلم بيقدّر التقييم المتوقَّع.

مثال عملي

عندك مصفوفة تقييمات ناقصة جدًا: 10,000 مستخدم و5,000 فيلم، لكن كل مستخدم قيّم 20 فيلمًا بالمتوسّط فقط. تحليل المصفوفات بيضغط ده لمصفوفتين أصغر بكثير — مثلًا بـ50 بُعدًا كامنًا لكلٍّ.

ولمّا تضرب متّجه مستخدم معيّن في متّجه فيلم لم يشاهده، بتحصل على تقييم متوقَّع بدون ما يكون فيه أي تقييم فعلي مسجَّل — وده أساس التوصية.

مصطلحات مرتبطة

المصادر: Google ML Glossary