- কোসাইন সাদৃশ্য দুটি ভেক্টরের সামগ্রিক মান উপেক্ষা করে, তাদের মধ্যবর্তী কোণের কোসাইন গণনা করার মাধ্যমে তাদের দিকনির্দেশক সামঞ্জস্য পরিমাপ করে।
- এই মেট্রিকটি আধুনিক এআই-এর জন্য অপরিহার্য, যা সিমান্টিক সার্চ, ব্যক্তিগতকৃত সুপারিশ সিস্টেম এবং উচ্চ-মাত্রিক এমবেডিং প্রক্রিয়াকরণকে সক্ষম করে।
- সাধারণ কোসাইন সিমিলারিটি ফিচারগুলোকে স্বাধীন হিসেবে বিবেচনা করলেও, সফট কোসাইনের মতো উন্নত সংস্করণগুলো নির্ভুলতা বাড়ানোর জন্য ফিচারগুলোর মধ্যকার সম্পর্ককে সমন্বিত করে।
আপনি কি কখনো ভেবে দেখেছেন যে স্পটিফাই কীভাবে ঠিক জানে কোন গানটি আপনার মন জয় করবে, অথবা আপনি হুবহু একই শব্দ ব্যবহার না করলেও গুগল কীভাবে আপনার সার্চ কোয়েরির একটি নির্দিষ্ট অর্থ বুঝতে পারে? এর বেশিরভাগ জাদুই পর্দার আড়ালে ভেক্টর এমবেডিং ব্যবহার করে ঘটে থাকে। শব্দ বা আইটেমকে সাধারণ টেক্সট হিসেবে না দেখে, এআই সেগুলোকে একটি বিশাল, বহুমাত্রিক স্থানের বিন্দুতে রূপান্তরিত করে, এবং এখানেই কোসাইন সিমিলারিটির ধারণাটি পুরো বিষয়টিকে অর্থবহ করে তুলতে কাজ করে।
মূলত, এই গাণিতিক কৌশলটি কম্পিউটারকে দুটি জিনিসের ভেক্টরের মধ্যবর্তী কোণ দেখে তাদের মধ্যে নৈকট্য নির্ণয় করতে সাহায্য করে। একটি ভেক্টর অন্যটির চেয়ে অনেক দীর্ঘ হলেও এটি তা বিবেচনা করে না; এটি শুধু দেখে যে ভেক্টর দুটি একই সাধারণ দিকে নির্দেশ করছে কি না। এটি ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং (NLP) এবং রিকমেন্ডেশন ইঞ্জিনগুলোর জন্য একটি যুগান্তকারী পরিবর্তন, কারণ এটি শুধু অক্ষর মেলানোর পরিবর্তে শব্দার্থগত অর্থের উপর গুরুত্ব দেয় ।
গণনার মূল বিষয়বস্তু

এটি কীভাবে কাজ করে তা বোঝার জন্য, আপনাকে জানতে হবে যে প্রতিটি ডেটা—তা একটি শব্দ হোক বা একটি চলচ্চিত্র—একটি ভেক্টর হিসাবে উপস্থাপিত হয়, যেখানে প্রতিটি মাত্রা একটি নির্দিষ্ট বৈশিষ্ট্য। সাদৃশ্য খুঁজে বের করার জন্য, আমরা কয়েকটি নির্দিষ্ট ধাপ অনুসরণ করি। প্রথমে, আমরা ডট প্রোডাক্ট গণনা করি, যার মধ্যে উভয় ভেক্টরের সংশ্লিষ্ট মানগুলিকে গুণ করে তাদের যোগফল বের করা হয়, যাতে তাদের মধ্যে সামঞ্জস্য দেখা যায়। এরপর, আমরা প্রতিটি ভেক্টরের বর্গকৃত উপাদানগুলির যোগফলের বর্গমূল নিয়ে তার মান (বা দৈর্ঘ্য) বের করি ।
চূড়ান্ত ধাপটি হলো প্রকৃত কোসাইন সিমিলারিটি সূত্র : আপনি সেই ডট প্রোডাক্টটিকে দুটি মানের গুণফল দিয়ে ভাগ করবেন। গাণিতিকভাবে, এটি দেখতে এইরকম: কোসাইন সিমিলারিটি = (A · B) / (||A|| × ||B||) । এর ফলে একটি স্কোর পাওয়া যায় যা সাধারণত -১ এবং ১ এর মধ্যে থাকে। ১ স্কোরের অর্থ হলো ভেক্টর দুটি নিখুঁতভাবে সারিবদ্ধ , ০ মানে তারা অর্থোগোনাল (সম্পূর্ণ সম্পর্কহীন), এবং -১ মানে তারা সম্পূর্ণ বিপরীত।
প্রেক্ষাপট বিবেচনা: রাজা, রানী এবং আপেল

চলুন বিষয়টিকে বাস্তব রূপ দেওয়া যাক। কল্পনা করুন, একটি এলএলএম (LLM) “king” এবং “queen” শব্দ দুটিকে প্রসেস করছে। যেহেতু এই শব্দগুলো প্রায়শই “throne” বা “monarchy”-এর মতো শব্দের কাছাকাছি আসে, তাই এদের ভেক্টর এমবেডিংগুলো প্রায় একই দিকে নির্দেশ করবে, যার ফলে একটি উচ্চ কোসাইন সিমিলারিটি স্কোর পাওয়া যাবে। এবার, এর সাথে “apple” শব্দটি যোগ করুন। যদিও এটি একই ডকুমেন্টে আছে, কিন্তু এটি “fruit” বা “orchard”-এর মতো শব্দের সাথে থাকে, তাই এর ভেক্টরটি সম্পূর্ণ ভিন্ন দিকে নির্দেশ করবে, যার ফলে সিমিলারিটি স্কোর অনেক কমে যাবে ।
কাজ দ্রুত ও সহজে করার জন্য, কোম্পানিগুলো প্রতিটি আইটেমের জন্য তাৎক্ষণিকভাবে এই হিসাব করে না। তারা ভেক্টর ডেটাবেস ব্যবহার করে। এই বিশেষায়িত টুলগুলো উচ্চ-মাত্রিক ভেক্টরকে সূচীবদ্ধ করার জন্য তৈরি করা হয়েছে, যা সম্পূর্ণ ডেটাসেট ম্যানুয়ালি স্ক্যান না করেই সবচেয়ে সাদৃশ্যপূর্ণ মিলগুলো অত্যন্ত দ্রুত খুঁজে বের করতে সাহায্য করে ।
মৌলিকের বাইরে: সফট কোসাইন এবং অন্যান্য মেট্রিক
প্রচলিত কোসাইন সিমিলারিটির একটি ত্রুটি রয়েছে: এটি ধরে নেয় যে প্রতিটি ডাইমেনশন স্বাধীন। কিন্তু বাস্তব জগতে, “play” এবং “game”-এর মতো শব্দগুলো ভিন্ন ডাইমেনশনের হলেও অর্থগতভাবে সম্পর্কিত । এখানেই সফট কোসাইন সিমিলারিটির ভূমিকা আসে। এটি ফিচারগুলোর মধ্যকার সম্পর্ক বিবেচনা করার জন্য একটি সিমিলারিটি ম্যাট্রিক্স (প্রায়শই লেভেনস্টাইন ডিসট্যান্স বা ওয়ার্ডনেট ব্যবহার করে) প্রবর্তন করে, যা মডেলটিকে ধারণাগুলোকে আরও কার্যকরভাবে সাধারণীকরণ করতে সাহায্য করে, এমনকি যদি আনুষ্ঠানিক ফিচারগুলো ভিন্নও হয়।
অন্যান্য প্রচলিত মেট্রিকের সাথে এর তুলনা করাও যুক্তিযুক্ত। উদাহরণস্বরূপ, ইউক্লিডিয়ান ডিসটেন্স (L2) দুটি বিন্দুর মধ্যে সরলরৈখিক দূরত্ব পরিমাপ করে, যা স্থানিক নৈকট্যের জন্য চমৎকার। ম্যানহাটন ডিসটেন্স (L1) একটি গ্রিড-সদৃশ পথ অনুসরণ করে দূরত্ব গণনা করে। যদিও এগুলো পরম দূরত্ব পরিমাপ করে , কোসাইন সিমিলারিটি শুধুমাত্র অভিমুখের উপর মনোযোগ দেয় । এছাড়াও রয়েছে ডট প্রোডাক্ট সিমিলারিটি , যা কোণ এবং মান উভয়ই বিবেচনা করে। আপনি যদি আপনার ভেক্টরগুলোকে একক দৈর্ঘ্যে স্বাভাবিক করেন, তাহলে ডট প্রোডাক্ট এবং কোসাইন সিমিলারিটি কার্যত একই জিনিস হয়ে যায়, কিন্তু ডট প্রোডাক্ট গণনা করা তুলনামূলকভাবে কম ব্যয়বহুল ।
গ্রাফ ডেটা এবং অনুসন্ধানে ব্যবহারিক প্রয়োগ
অ্যামাজন নেপচুন এবং অন্যান্য গ্রাফ সিস্টেমের মতো গ্রাফ ডেটাবেসের জগতে , বিভিন্ন গোষ্ঠীর মধ্যে সামঞ্জস্য খুঁজে বের করতে বা একই রকম ব্যবহারকারীদের শনাক্ত করতে কোসাইন সিমিলারিটি ব্যবহার করা হয় । উদাহরণস্বরূপ, যদি আপনার কাছে মানুষ এবং তাদের পছন্দের খাবারের একটি গ্রাফ থাকে, তবে আপনি তাদের পছন্দগুলোকে স্কোরের ভেক্টর হিসেবে উপস্থাপন করতে পারেন। কোসাইন সিমিলারিটি অ্যালগরিদম প্রয়োগ করে , আপনি র্যাঙ্ক করতে পারবেন কোন ব্যবহারকারীদের রুচি সবচেয়ে বেশি একই রকম, তা নির্বিশেষে যে একজন ব্যক্তি অন্যজনের চেয়ে বেশি রেস্তোরাঁকে রেটিং দিয়েছে কি না।
আধুনিক সার্চ ইঞ্জিনগুলোও সম্পূর্ণরূপে লেক্সিকাল সার্চ (যেমন Ctrl+F) থেকে সরে এসে ভেক্টর সার্চের দিকে ঝুঁকছে । যদিও টোকেনাইজেশনের জন্য লেক্সিকাল সার্চ চমৎকার, এটি টেক্সটের মূল উদ্দেশ্যটি ধরতে পারে না। ভেক্টর সার্চ অন্তর্নিহিত অভিপ্রায়কে ধারণ করে । Elasticsearch-এর মতো সিস্টেমে, এটি প্রয়োগ করা হয় কোয়েরিগুলোকে এমবেডিং-এ রূপান্তর করে এবং আমাদের আলোচিত মেট্রিকগুলো ব্যবহার করে নিকটতম প্রতিবেশী খুঁজে বের করার মাধ্যমে, যা প্রায়শই ভালো র্যাঙ্কিংয়ের জন্য -১ থেকে ১ পরিসরকে একটি ধনাত্মক স্কোরে রূপান্তরিত করে ।
আপনি মুভি রিকমেন্ডার তৈরি করুন বা একটি জটিল এআই এজেন্ট, সঠিক সিমিলারিটি মেট্রিক নির্বাচন নির্ভর করে ভেক্টর ম্যাগনিটিউডের কোনো অর্থ আছে কি না তার উপর। যদি আপনি শুধুমাত্র ডেটার "থিম" বা "দিক" নিয়ে চিন্তিত হন, তবে কোসাইন সিমিলারিটিই আপনার জন্য সেরা বিকল্প। যাদের সরাসরি স্থানিক দূরত্বের প্রয়োজন, তাদের জন্য ইউক্লিডিয়ান সিমিলারিটিই সবচেয়ে ভালো। এই গাণিতিক সরঞ্জামগুলোকে দক্ষ ইনডেক্সিং অ্যালগরিদমের সাথে একত্রিত করে , আমরা অসংগঠিত ডেটাকে মানুষের অর্থবহ একটি সুসংগঠিত ও অনুসন্ধানযোগ্য মানচিত্রে পরিণত করতে পারি।