باختصار
أخذ عيّنات المرشّحين (Candidate Sampling) هو تحسين يُجرى وقت التدريب، بيحسب الاحتمال لكل التسميات الموجبة، لكن لعيّنة عشوائية فقط من التسميات السالبة.
بالتفصيل
خُد مثالًا موسومًا بـ«بيغل» و«كلب». أخذ عيّنات المرشّحين بيحسب الاحتمالات المتوقّعة وحدود الخسارة المقابلة لـ:
- بيغل.
- كلب.
- مجموعة جزئية عشوائية من بقية الفئات السالبة (مثل: قطّة، مصّاصة، سياج).
الفكرة إن الفئات السالبة تقدر تتعلّم من تعزيز سلبي أقلّ تكرارًا، طالما إن الفئات الموجبة بتحصل دائمًا على تعزيز إيجابي سليم — وده ما لوحظ فعلًا بشكل تجريبي.
والمكسب حسابي بحت: أخذ عيّنات المرشّحين أكفأ حسابيًا من خوارزميات التدريب اللي بتحسب تنبّؤات لكل الفئات السالبة، خصوصًا لما يكون عدد الفئات السالبة كبيرًا جدًا.
وعشان تحسّ بحجم المشكلة: في نموذج لغوي مفرداته 50 ألف رمز، كل خطوة تدريب بتتطلّب نظريًا حساب احتمال لكل الـ50 ألف — بينما الصحيح واحد فقط. حساب عيّنة من بضع مئات بدل 50 ألفًا بيوفّر أضعافًا مضاعفة.
مثال عملي
نظام توصية لمتجر فيه 200 ألف منتج. المستخدم اشترى منتجًا واحدًا — فدي الفئة الموجبة، و199,999 فئة سالبة.
حساب الخسارة على كل السالب في كل خطوة تدريب مكلف بلا داعٍ. فبتحسب الموجب، وتاخد عيّنة عشوائية من 500 سالب فقط. النموذج بيتعلّم التمييز بكفاءة قريبة، بجزء بسيط من التكلفة.
مصطلحات مرتبطة
- Softmax — دالّة سوفت ماكس.
- Negative Class — الفئة السالبة.
- Candidate Generation — توليد المرشّحين.
المصادر: Google ML Glossary


