এম্বেডিং: এম্বেডিং স্পেস ও স্ট্যাটিক এম্বেডিং

এম্বেডিং হল এম্বেডিং স্পেসে ডেটার ভেক্টর উপস্থাপনা। সাধারণত, প্রারম্ভিক ডেটা ভেক্টরের উচ্চ-ডাইমেনশনাল স্পেসকে নিম্নতর-ডাইমেনশনাল স্পেসে প্রক্ষেপণ করার মাধ্যমে মডেল সম্ভাব্য এম্বেডিং খুঁজে পায়। উচ্চ-ডাইমেনশনাল বনাম নিম্ন-ডাইমেনশনাল ডেটার ব্যাপারে আলোচনার জন্য ক্যাটেগরিকাল মডিউল দেখুন।

বৃহৎ ফিচার ভেক্টরে মেশিন লার্নিংয়ের ব্যাপারে এম্বেডিং সাহায্য করে, যেমন লাঞ্চ বা ডিনার আইটেম বোঝাতে স্পার্স ভেক্টর, এটি আগের বিভাগে আলোচনা করা হয়েছে। মাঝে মধ্যে এম্বেডিং স্পেসে আইটেমের আপেক্ষিক পজিশনে সম্ভাব্য সেম্যান্টিক সম্পর্ক থাকে, কিন্তু প্রায়ই নিম্নতর-ডাইমেনশনাল স্পেস এবং সেই স্পেসে আপেক্ষিক পজিশন খুঁজে পাওয়ার বিষয়টি মানুষের বোঝবার মতো হয় না এবং এর ফলস্বরূপ এম্বেডিং বোঝা শক্ত হয়।

তা সত্ত্বেও, মানুষকে বোঝানোর জন্য, এম্বেডিং ভেক্টর কীভাবে তথ্যের প্রতিনিধিত্ব করে সেই সম্পর্কে আইডিয়া দিতে খাবারের নিম্নলিখিত এক-ডাইমেনশনাল প্রতিনিধি হট ডগ, পিৎজা, স্যালাড, শাওয়ার্মাবর্শট নামক খাবারগুলিকে "স্যান্ডউইচের সাথে মিল নেই বললেই চলে" থেকে "প্রায় স্যান্ডউইচের মতো" স্কেলে বিবেচনা করুন। একক ডাইমেনশনটি হল খাবার "স্যান্ডউইচের মতো কিনা" তার কাল্পনিক পরিমাপ।

ছবি ৩. স্যান্ডউইচের মতো কিনা সেই অক্ষ বরাবর মিল নেই বললেই চলে থেকে প্রায় সেই রকমই:
    বর্শট, স্যালাড, পিৎজা, হট ডগ, শাওয়ার্মা।
ছবি ৩. "স্যান্ডউইচের মতো কিনা" তার কাল্পনিক ডাইমেনশনে খাবার।

এই লাইনের কোথায় অ্যাপল স্ট্রুডেল স্থান পাবে? এটি hot dog এবং shawarma-এর মধ্যে থাকতে পারে। কিন্তু অ্যাপল স্ট্রুডেলে মিষ্টতা বা মিষ্টত্বের মতো অতিরিক্ত ডাইমেনশন আছে যা অন্যগুলির থেকে এটিকে পৃথক করে। নিম্নলিখিত ছবিতে "মিষ্টত্ব" ডাইমেনশন যোগ করে এটি দেখানোর চেষ্টা করা হয়েছে:

ছবি ৪. ছবিটি আগের মতোই সেভ করুন, কিন্তু এবার 'মিষ্টত্ব' উল্লম্ব অক্ষের
    ডাইমেনশন বরাবর করুন। অ্যাপল স্ট্রুডেল খাবারটি হট ডগ ও শাওয়ার্মার মধ্যে আছে, কিন্তু
    'পায়েসের মতো' অক্ষে আরও উঁচুতে অবস্থান করছে।
ছবি ৪. "স্যান্ডউইচের মতো কিনা" এবং "মিষ্টত্ব" এই দুই অক্ষ অনুযায়ী খাবার প্লট করা হয়েছে।

এম্বেডিং প্রতিটি আইটেমকে n-ডাইমেনশনাল স্পেসে দেখায়, যেখানে ফ্লোটিং পয়েন্ট নম্বর বোঝাতে n ব্যবহার হয় (সাধারণত এই রেঞ্জে – ১ থেকে ১ বা ০ থেকে ১)। ৩ নম্বর ছবিতে এক-ডাইমেনশনাল স্পেসে একটি অক্ষ বরাবর প্রতিটি খাবারকে দেখানো হয়েছে, আর ৪ নম্বর ছবিতে দুই-ডাইমেনশনাল স্পেসে দুটি অক্ষ বরাবর প্রতিটি খাবারকে দেখানো হয়েছে। ৪ নম্বর ছবিতে "অ্যাপল স্ট্রুডেল" গ্রাফের উপরের ডানদিকের কোয়াড্রেন্টে রয়েছে এবং সেটিকে (০.৫, ০.৩) পয়েন্ট অ্যাসাইন করা যেতে পারে, অন্যদিকে "হট ডগ" গ্রাফের নিচের ডানদিকের কোয়াড্রেন্টে রয়েছে এবং সেটিকে (০.২, –০.৫) পয়েন্ট অ্যাসাইন করা যেতে পারে।

এম্বেডিংয়ের ক্ষেত্রে দুটি আইটেমের মধ্যে দূরত্ব গাণিতিক উপায়ে নির্ণয় করা যাবে এবং তা দুটি আইটেমের মধ্যে কতটা মিল আছে সেটি বুঝতে ব্যবহার করা যেতে পারে। ৪ নম্বর ছবিতে shawarmahot dog-এর মতো দুটি পরস্পরের নিকটবর্তী জিনিস মডেলের ডেটা উপস্থাপনায় আরও ঘনিষ্ঠ সম্পর্কে আবদ্ধ থাকে, দুটি পরস্পরের চেয়ে দূরবর্তী জিনিসের মধ্যে সম্পর্ক তুলনায় কম ঘনিষ্ঠ হয়, যেমন apple strudelborscht

আরও লক্ষ্য করুন যে ৪ নম্বর ছবির 2D স্পেসে, apple strudel-এর থেকে shawarmahot dog 1D স্পেসের তুলনায় আরও দূরে আছে, যা এই অনুমানের সাথে মিলে যায়: apple strudel-এর সাথে হট ডগ বা শাওয়ার্মার ততটা মিল নেই যতটা মিল হট ডগ ও শাওয়ার্মার মধ্যে দেখা যায়।

এখন বর্শটের কথা ভাবুন, এটি অন্য আইটেমগুলির চেয়ে অনেকটাই তরল। এটি তৃতীয় ডাইমেনশন সাজেস্ট করে, তরলতা বা কোনও খাবার কতটা তরল হতে পারে। এই ডাইমেনশন যোগ করে 3D স্পেসে আইটেমগুলি এভাবে দেখানো যেতে পারে:

ছবি ৫. ছবিটি আগের মতোই, শুধু তরলতার তৃতীয় অক্ষ অন্য দুটি অক্ষের সাথে
    অর্থোগোনাল হয়ে রয়েছে এবং বর্শট এই অক্ষ বরাবর অনেকটা এগিয়ে আছে।
ছবি ৫. খাবারগুলি "স্যান্ডউইচের মতো কিনা", "মিষ্টত্ব" ও "তরলতা" এই তিন অক্ষ অনুযায়ী প্লট করা হয়েছে।

এই 3D স্পেসের কোথায় রসমালাইয়ের স্থান হবে? এটি বর্শটের মতো তরল এবং অ্যাপল স্ট্রুডেলের মতো মিষ্টি এবং অবশ্যই কোনও স্যান্ডউইচ নয়। এখানে এর একটি সম্ভাব্য স্থান উল্লেখ করা হল:

ছবি ৬. ছবিটি আগের মতোই, শুধু রসমালাই মিষ্টত্ব ও তরলতার অক্ষে
    উচ্চ স্থানে এবং স্যান্ডউইচের মতো কিনা সেই অক্ষে নিম্ন স্থানে থাকে।
ছবি ৬. আগের ছবিতে রসমালাই যোগ করে, যেটি মিষ্টত্ব ও তরলতার অক্ষে উচ্চে এবং 'স্যান্ডউইচের মতো কিনা' সেই অক্ষে নিম্ন স্থানে থাকে।

দেখুন, কতখানি তথ্য এই তিন ডাইমেনশনে প্রকাশ পেয়েছে। আপনি আরও ডাইমেনশন যোগ করতে পারেন, যেমন কোনও খাবার কতটা রসালো বা ভাজা হবে, কিন্তু 4D, 5D ও আরও অধিক ডাইমেনশনাল স্পেস ভিজ্যুয়ালাইজ করা খুব শক্ত হয়।

বাস্তব জগতে এম্বেডিং স্পেস

বাস্তব জগতে এম্বেডিং স্পেস d-ডাইমেনশনাল হয়, যেখানে d-এর মান ৩-এর চেয়ে অনেক বেশি কিন্তু ডেটার ডাইমেনশনালিটির চেয়ে কম এবং ডেটা পয়েন্টগুলির মধ্যে সম্পর্ক উপরে দেওয়া ছবির মতো যে অতটা ইন্টুইটিভ হবেই এমন কোনও মানে নেই। (শব্দ এম্বেডিংয়ের ক্ষেত্রে d প্রায়ই ২৫৬, ৫১২ বা ১০২৪ হয়।)

বাস্তবে মেশিন লার্নিং প্র্যাকটিশনার সাধারণত নির্দিষ্ট টাস্ক ও এম্বেডিং ডাইমেনশনের সংখ্যা সেট করে দেন। তারপরে মডেল ট্রেনিংয়ের জন্য ডাইমেনশনের উল্লিখিত সংখ্যা সহযোগে এম্বেডিং স্পেসের কাছাকাছি উদাহরণ সংগ্রহের চেষ্টা করে অথবা d ফিক্সড না হলে ডাইমেনশনের সংখ্যার জন্য টিউন করে। প্রতিটি ডাইমেনশন খুব কম ক্ষেত্রেই "মিষ্টত্ব" বা "তরলতার" মতো হয়, যা সহজে বোঝা যায়। কিছু ক্ষেত্রে সেগুলি কী "বোঝায়" তা অনুমান করা গেলেও সবসময় তা হয় না।

সাধারণত এম্বেডিং টাস্ক নির্দিষ্ট হবে এবং টাস্ক আলাদা হলে এম্বেডিংগুলির মধ্যেও পার্থক্য হবে। যেমন, নিরামিষভোজী বনাম আমিষভোজীর শ্রেণীবিন্যাস সংক্রান্ত মডেলের জেনারেট করা এম্বেডিং এবং দিনের বিভিন্ন সময় বা ঋতুর ভিত্তিতে খাবার সাজেস্ট করে এমন কোনও মডেলের জেনারেট করা এম্বেডিং পরস্পরের চেয়ে আলাদা হবে। দিনের বিভিন্ন সময়ের ভিত্তিতে খাবার সাজেস্ট করে এমন মডেলের এম্বেডিং স্পেসে "সুজি" ও "ব্রেকফাস্ট সসেজ" হয়ত কাছাকাছি থাকবে, কিন্তু নিরামিষভোজী বনাম আমিষভোজীর শ্রেণীবিন্যাস সংক্রান্ত মডেলের এম্বেডিং স্পেসে এগুলির মধ্যে দূরত্ব অনেক বেশি হবে।

স্ট্যাটিক এম্বেডিং

এক টাস্ক থেকে অন্য টাস্কে এম্বেডিং আলাদা হলেও, একটি টাস্ক কিছু সাধারণ ক্ষেত্রে প্রযোজ্য হয়: শব্দের প্রসঙ্গ অনুমান করা। শব্দের প্রসঙ্গ অনুমান করার জন্য ট্রেনিংপ্রাপ্ত মডেল ধরে নেয় যে একই ধরনের প্রসঙ্গে যেসব শব্দ দেখা যাচ্ছে সেগুলির মধ্যে সেম্যান্টিক সম্পর্ক আছে। যেমন, ট্রেনিং ডেটায় যদি এই বাক্যগুলি অন্তর্ভুক্ত থাকে, "তারা নৌকা করে চিল্কা হ্রদে ঘুরলেন" এবং "তারা স্পিড বোট চালিয়ে চিল্কা হ্রদে ঘুরলেন" তাহলে ধরে নেওয়া হবে যে "নৌকা" ও "স্পিড বোট" একই প্রসঙ্গে উল্লেখ করা হয়েছে। দেখা গেছে যে সেম্যান্টিক সাদৃশ্যের উপর নির্ভর করে এমন এম্বেডিং ভাষা সংক্রান্ত অনেক বিষয়ে ভালো কাজ করে।

যদিও এটি একটি পুরনো উদাহরণ এবং বলা যেতে পারে যে অন্য মডেল এটিকে পিছনে ফেলে এগিয়ে গেছে, কিন্তু বোঝানোর জন্য word2vec মডেল এখনও বেশ কাজে লাগে। word2vec ডকুমেন্টের কর্পাসের উপর ট্রেনিং নেয়, যাতে প্রতিটি শব্দের জন্য একটি গ্লোবাল এম্বেডিং পায়। প্রতিটি শব্দ বা ডেটা পয়েন্টে একটি এম্বেডিং ভেক্টর থাকলে, সেটিকে স্ট্যাটিক এম্বেডিং বলা হয়। নিম্নলিখিত ভিডিওতে word2vec ট্রেনিং সম্পর্কে সহজে বোঝানো হয়েছে।

রিসার্চের মাধ্যমে জানা যায় যে এই স্ট্যাটিক এম্বেডিং ট্রেনিং পেলে কিছু পরিমাণ সেম্যান্টিক তথ্য এনকোড করে, বিশেষত একাধিক শব্দের মধ্যে সম্পর্কে। অর্থাৎ, একই ধরনের প্রসঙ্গে ব্যবহৃত শব্দগুলি এম্বেডিং স্পেসে পরস্পরের কাছাকাছি থাকবে। জেনারেট করা নির্দিষ্ট এম্বেডিং ভেক্টর ট্রেনিংয়ের জন্য ব্যবহৃত কর্পাসের উপর নির্ভর করবে। আরও জানতে, টি. মিকোলভ এবং তার সহকর্মীদের (২০১৩) প্রকাশ করা "এফিসিয়েন্ট এস্টিমেশন অফ ওয়ার্ড রিপ্রেজেন্টেশন ইন ভেক্টর স্পেস", দেখুন।


  1. ফ্রাঁসোয়া শোলে, ডিপ লার্নিং উইথ Python (শেল্টার আইল্যান্ড, নিউ ইয়র্ক: ম্যানিং, ২০১৭), ৬.১.২.