ধরুন আপনার একটি এমবেডিং মডেল আছে। একজন ব্যবহারকারীকে প্রদত্ত, আপনি কোন আইটেমগুলি সুপারিশ করবেন তা কীভাবে সিদ্ধান্ত নেবেন?
পরিবেশনের সময়, একটি প্রশ্ন দেওয়া হলে, আপনি নিম্নলিখিতগুলির মধ্যে একটি করে শুরু করেন:
- একটি ম্যাট্রিক্স ফ্যাক্টরাইজেশন মডেলের জন্য, ক্যোয়ারী (বা ব্যবহারকারী) এমবেডিং স্ট্যাটিকভাবে পরিচিত, এবং সিস্টেমটি ব্যবহারকারীর এমবেডিং ম্যাট্রিক্স থেকে এটি দেখতে পারে।
- একটি DNN মডেলের জন্য, সিস্টেম ক্যোয়ারী এমবেডিং গণনা করে \(\psi(x)\)ফিচার ভেক্টরে নেটওয়ার্ক চালানোর মাধ্যমে পরিবেশন সময়ে \(x\).
একবার আপনি ক্যোয়ারী এমবেডিং আছে \(q\), আইটেম এমবেডিং জন্য অনুসন্ধান করুন\(V_j\) যে কাছাকাছি \(q\) এমবেডিং স্পেসে। এটি একটি নিকটতম প্রতিবেশী সমস্যা। উদাহরণস্বরূপ, আপনি সাদৃশ্য স্কোর অনুযায়ী শীর্ষ k আইটেমগুলি ফেরত দিতে পারেন \(s(q, V_j)\).
আপনি সম্পর্কিত-আইটেম সুপারিশ একটি অনুরূপ পদ্ধতি ব্যবহার করতে পারেন. উদাহরণস্বরূপ, যখন ব্যবহারকারী একটি YouTube ভিডিও দেখছেন, তখন সিস্টেমটি প্রথমে সেই আইটেমটির এমবেডিং সন্ধান করতে পারে এবং তারপরে অন্যান্য আইটেমের এমবেডিংগুলি সন্ধান করতে পারে\(V_j\) যেগুলো এম্বেডিং স্পেসের কাছাকাছি।
বড় মাপের পুনরুদ্ধার
এমবেডিং স্পেসের নিকটতম প্রতিবেশীদের গণনা করতে, সিস্টেমটি প্রতিটি সম্ভাব্য প্রার্থীকে সম্পূর্ণরূপে স্কোর করতে পারে। সম্পূর্ণ স্কোরিং খুব বড় কর্পোরার জন্য ব্যয়বহুল হতে পারে, তবে আপনি এটিকে আরও দক্ষ করার জন্য নিম্নলিখিত কৌশলগুলির যে কোনও একটি ব্যবহার করতে পারেন:
- যদি ক্যোয়ারী এমবেডিংটি স্থিরভাবে পরিচিত হয়, তবে সিস্টেমটি অফলাইনে সম্পূর্ণ স্কোরিং সম্পাদন করতে পারে, প্রতিটি প্রশ্নের জন্য শীর্ষ প্রার্থীদের একটি তালিকা প্রি-কম্পিউটিং এবং সংরক্ষণ করতে পারে। এটি সম্পর্কিত আইটেম সুপারিশ জন্য একটি সাধারণ অভ্যাস.
- আনুমানিক নিকটতম প্রতিবেশী ব্যবহার করুন.Google GitHub-এ একটি ওপেন-সোর্স টুল সরবরাহ করে যার নাম ScaNN (স্কেলযোগ্য নিকটতম প্রতিবেশী)। এই টুলটি স্কেলে দক্ষ ভেক্টর সাদৃশ্য অনুসন্ধান করে।