لنفترض أنّ لديك نموذجًا للإدراج. بالنسبة إلى مستخدم معيّن، كيف يمكن تحديد المنتجات التي سيتم اقتراحها؟
في وقت العرض، يتم تنفيذ أحد الإجراءات التالية استنادًا إلى طلب بحث:
- بالنسبة إلى نموذج تحليل المصفوفات، يكون إدراج طلب البحث (أو المستخدم) معروفًا بشكل ثابت، ويمكن للنظام البحث عنه ببساطة من مصفوفة إدراج المستخدم.
- بالنسبة إلى نموذج DNN، يحسب النظام تضمين طلب البحث \(\psi(x)\) في وقت العرض عن طريق تشغيل الشبكة على متجه الميزة \(x\).
بعد الحصول على إدراج طلب البحث \(q\)، ابحث عن إدراجات السلع \(V_j\) التي تكون قريبة من \(q\) في مساحة الإدراج. هذه مشكلة الجار الأقرب. على سبيل المثال، يمكنك عرض أهم k عنصر حسب نتيجة التشابه \(s(q, V_j)\).
يمكنك استخدام نهج مشابه في اقتراحات المنتجات ذات الصلة. على سبيل المثال، عندما يشاهد المستخدم فيديو على YouTube، يمكن للنظام أولاً البحث عن إدراج هذا العنصر، ثم البحث عن إدراجات لعناصر أخرى \(V_j\) تكون قريبة من مساحة الإدراج.
الاسترجاع على نطاق واسع
لاحتساب أقرب الجيران في مساحة التضمين، يمكن للنظام تقييم كل عنصر محتمل بشكل شامل. يمكن أن تكون عملية التقييم الشاملة باهظة التكلفة في النصوص الكبيرة جدًا، ولكن يمكنك استخدام أيٍّ من الاستراتيجيات التالية لجعلها أكثر فعالية:
- إذا كان إدراج طلب البحث معروفًا بشكل ثابت، يمكن للنظام إجراء تقييم كامل بلا إنترنت، وحساب قائمة بالمرشحين الأوائل لكل طلب بحث وتخزينها مسبقًا. وهذه ممارسة شائعة في ما يتعلّق باقتراح المنتجات ذات الصلة.
- استخدِم أقرب العناصر تقريبًا. توفّر Google أداة مفتوحة المصدر على GitHub اسمها ScaNN (الجار الأقرب القابل للتوسع). تُجري هذه الأداة بحثًا فعّالاً عن التشابه في المتجهات على نطاق واسع.