मान लें कि आपके पास एम्बेड करने वाला मॉडल है. किसी उपयोगकर्ता के लिए, यह कैसे तय किया जाएगा कि कौनसे आइटम सुझाए जाएं?
क्वेरी देखते समय, इनमें से कोई एक काम करके शुरुआत की जा सकती है:
- मैट्रिक फ़ैक्टरिज़ेशन मॉडल के लिए, क्वेरी (या उपयोगकर्ता) एम्बेडिंग को स्टैटिक तौर पर जाना जाता है. सिस्टम, उपयोगकर्ता एम्बेडिंग मैट्रिक से इसे आसानी से देख सकता है.
- डीडीएन मॉडल के लिए, सिस्टम फ़ीचर वेक्टर पर नेटवर्क चलाकर, क्वेरी एम्बेडिंग \(\psi(x)\) को दिखाने के समय कैलकुलेट करता है \(x\).
क्वेरी एम्बेड करने के बाद \(q\), एम्बेडिंग स्पेस में ऐसे आइटम एम्बेड\(V_j\) खोजें जो \(q\) के करीब हों. यह नियरेस्ट नेबर समस्या है. उदाहरण के लिए, मिलते-जुलते आइटम के स्कोर के हिसाब से, सबसे ज़्यादा k आइटम दिखाए जा सकते हैं \(s(q, V_j)\).
मिलते-जुलते आइटम के सुझावों में भी इसी तरह का तरीका अपनाया जा सकता है. उदाहरण के लिए, जब कोई उपयोगकर्ता YouTube वीडियो देख रहा हो, तो सिस्टम सबसे पहले उस आइटम को एम्बेड करने का तरीका देख सकता है. इसके बाद, एम्बेड करने के लिए उपलब्ध जगह के आस-पास मौजूद,\(V_j\) अन्य आइटम को एम्बेड करने का तरीका देख सकता है.
बड़े पैमाने पर डेटा वापस पाना
एम्बेडिंग स्पेस में सबसे मिलते-जुलते वैरिएंट का हिसाब लगाने के लिए, सिस्टम हर संभावित वैरिएंट को स्कोर कर सकता है. बहुत बड़े कॉर्पोरा के लिए काफ़ी स्कोरिंग महंगा हो सकता है, लेकिन इसे ज़्यादा असरदार बनाने के लिए इनमें से किसी भी रणनीति का इस्तेमाल किया जा सकता है:
- अगर क्वेरी एम्बेडिंग को स्टैटिक तौर पर जाना जाता है, तो सिस्टम ऑफ़लाइन स्कोरिंग कर सकता है. साथ ही, हर क्वेरी के लिए सबसे अच्छे उम्मीदवारों की सूची को पहले से कैलकुलेट और सेव कर सकता है. मिलते-जुलते आइटम के सुझाव के लिए, यह एक आम तरीका है.
- आस-पास के अनुमानित लोगों का इस्तेमाल करें. Google, GitHub पर एक ओपन-सोर्स टूल उपलब्ध कराता है. इसे ScaNN कहा जाता है (Scalable Nearest Neighbors). यह टूल, बड़े पैमाने पर वेक्टर के मिलते-जुलते कॉन्टेंट को खोजने में काफ़ी असरदार है.