نظم التوصية Recommendation Systems



تميل الطبيعة البشرية إلى اتباع أنماط معينة في مفاضلة الاختيارات المتاحة، فيفضّل الفرد عادةً الأشياء المنتمية لذات التصنيف. مثلاً، إذا اقتنت شخصية ما كتاباً عن علم البيانات فالاحتمال كبير بانها ستكون مهتمة باقتناء كتب عن تصوير البيانات في المستقبل. بالإضافة، تتأثر اختيارات الفرد في كثير من الأحيان باختيارات الأفراد المحيطين به. فاحتمال أن يشاهد المراهق مقطع على اليوتيوب يتأثر بشكل كبير بمشاهدات اصدقائه وتوصياتهم.
التعرف على العوامل المؤثرة على اختيارات الأفراد وأنماط تفضيلهم للمنتجات والخدمات أصبح أولوية مطلوبة من مقدمي الخدمة لتوفير تجربة فريدة للأفراد تشعرهم بوجود رابط بينهم وبين نظام تقديم الخدمة. بالإضافة، فمقدرة الشركات على تقديم الخدمة أو المنتج للأفراد دون بحثهم عنها مسبقاً يسرّع عجلة التبادل التجاري ويزيد من رضا العملاء.

نظم التوصية Recommendation Systems هي الطريقة الأمثل لفهم اهتمامات و نمط تصرفات الأفراد عن طريق استنباط تفضيلاتهم و استخدامها في التنبؤ بمنتجات تتبع تلك الأنماط ومن ثم تقديمها لهم كتوصيات، فيشعر الفرد بأن النظام يفهمه مما يعزز ثقة العميل في مقدمي الخدمة.

بعض أكبر الشركات في مجالاتها تعتمد على نظم التوصية بشكل كبير في ايجاد عامل الربط المثالي بين المنتج/الخدمة والعميل المثالي.
أمازون Amazon تعتمد في بيع المنتجات والكتب تحديداً بشكل كبير على توصية المنتجات للمستخدمين بناءً على اختياراتهم السابقة.
نتفلكس Netflix تحتفظ بعملائها على المدى البعيد بتوصيتهم بشكل مستمر بأفلام ومسلسلات ترضي ذائقتهم وتضمن تجديدهم لاشتراكهم الشهري.
باندورا Pandora بنفس الشكل، توصي عملائها بالأغاني المتماشية مع اختياراتهم في الاستماع على المنصة، مما يضمن الاحتفاظ بعملائهم.
لنكدإن LinkedIn تعتمد على توصية الوظائف المتماشية مع قدرات الأفراد وتوصية العلاقات بينهم بناءً على الدائرة المحيطة بالفرد واهتماماتهم.

والقائــــــمة تطــــــول...



تتشعب أنواع نظم التوصية اعتماداً على عوامل عدة. مثلاً، يمكن تقسيم نظم التوصية بناءً على احتياج المستخدم ونوع البيانات المستخدمة في التوصية (أفصلها في هذا المقال). إضافةً يمكن تقسيم نظم التوصية بناءً على التقنيات المستخدمة، سواءً تقنيات التنبؤ كالإنحدار وتقنيات تعلم الآلة، أو الاعتماد على البيانات الماضية وعلم الإحصاء.

أشهر نوعين من نظم التوصية بناءً على احتياج المستخدم:
التوصية بناءً على المحتوى Content-based:
تستخدم هذه التقنية في بناء النظام عندما يتلخص احتياج المستخدم كالتالي: 
"أحتاج الخدمات/المنتجات المنتمية لصنف ما والمتماشية مع نمطي في الاختيار"
كأن يرغب المستخدم في مشاهدة فيلم أكشن (الصنف) يتماشى مع شغفه بأفلام الأكشن الدرامية (نمط المستخدم). يقوم موفر الخدمة بجرد أفلام الأكشن المتماشية مع تفضيلات المستخدم، كأن يفضّل الأفلام الكلاسيكية أو الدرامية، وتوصيته بالأفلام الناتجة عن الجرد. (مثال مفصّل في الأسفل).

التصفية بالتعاون Collaborative Filtering:
تُبنى الأنظمة بتقنية "التصفية بالتعاون" عندما يكون احتياج المستخدم كالتالي: 
"أحتاج الخدمات/المنتجات الشهيرة بين أقراني والمتماشية مع نمطي في الاختيار"
كأن يرغب المستخدم في الإطلاع على أكثر الفيدويات متابعة من قبل أصدقائه والتي تتمشاى مع ما يفضل الإطلاع عليه. على سبيل المثال، يتبنى اليوتيوب هذه التقنية في توصية المقاطع للفرد بناءً على ما يشاهده أفراد ينتمون لنفس القنوات التي يتابعها.

كثير من الأنظمة الشهيرة تتبنى نظام توصية يدمج بين النوعين لتقديم تجربة إيجابية للمستخدم.


كيف يعمل نظام التوصية المبني على المحتوى؟
في نظم التوصية بالأفلام السينمائية، يعتمد النظام على تقييم المستخدم للأفلام التي شاهدها.
تابع المستخدم الفيلم 1 و2 وأبدى إعجابه بالمحتوى. يبحث النظام عن أفلام مشابهة للمحتوى المفضل للمستخدم.
عندما يتوصل النظام لفيلم مشابه لأحد الأفلام التي أعجبت المستخدم، يسارع النظام بتوصية المستخدم للإطلاع على الفيلم (فيلم 4 في المثال).

ولكن،
كيف يتوصّل النظام للأفلام المتشابهة؟
لنأخذ المثال التالي بعين الاعتبار. يتابع المستخدم ثلاث مسلسلات وقام بتقييم كل منها بناءً على مدى إعجابه بالمحتوى.
لنفرض أن النظام يسعى لتوصية أحد المسلسلات التالية، كيف يتوصل النظام لأفضل اختيار لتقديمه للمستخدم؟
الخطوة الأولى هي جدولة تقييمات المستخدم لكل مسلسل تابعه كالتالي.
الخطوة الثانية هي تشفير تصنيفات المسلسلات بتقنية "one hot encoding".


الخطوة الثالثة، نقوم بوزن مصفوفة المسلسلات باستخدام تقييمات المستخدم عن طريق ضرب التقييمات لكل مسلسل بالتشفير لذلك المسلسل.

والنتيجة هي مصفوفة موزونة باثقال التقييمات.
الخطوة الرابع هي استنباط ملف المستخدم عن طريق جمع كل عمود في مصفوفة المسلسلات المثقّلة. يتم بعدها تنظيم القيم عن طريق تقسيم كل قيمة في ملف المستخدم على مجموع القيم.

الآن يمكننا استخدام ملف المستخدم في التنبؤ بمدى تقبّل المستخدم للمسلسلات المتبقية وبالتالي يستطيع النظام توصية المسلسل.

الخطوة الخامسة هي تشفير المسلسلات التي لم يشاهدها المستخدم بعد عن طريق تقنية "one hot encoding"

الخطوة السادسة، يستخدم النظام ملف المستخدم لوزن المصفوفة السابقة كالتالي.

والنتيجة هي المصفوفة الموزونة التالية:
في الخطوة السابعة والأخيرة يقوم النظام بتجميع القيم لكل مسلسل مما ينتج عنه تقييم متوقّع للمسلسل.
الآن يمكننا توقّع مدى توافق المستخدم مع مسلسل ما وبالتالي يقوم النظام بالتوصية (في المثال، يوصي النظام بمشاهدة مسلسل "مع حصة قلم").




المثال السابق مثال مبسّط جداً ويجدر بالذكر أن أنظمة التوصية لا تعتمد على التقييمات منفردة وإنما على عوامل مختلفة في الوقت ذاته. بالإضافة، أنجح أنظمة التوصية تعتمد عادة على مزيج من التوصية المبنية على المحتوى والأنواع الآخرى من نظم التوصية كما ذكرت مسبقاً.

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





إذا كان لديك أي استفسار أو تعليق، أسعد بالرد على تعليقاتكم أسفل المقال.


مصادر مساعدة:
  1. https://towardsdatascience.com/recommender-systems-in-practice-cef9033bb23a
  2. https://www.coursera.org/learn/machine-learning-with-python/home/welcome








Comments