এমবেডিং: এম্বেডিং প্রাপ্ত করা

এই বিভাগটি একটি এমবেডিং পেতে দুটি সাধারণ কৌশলগুলিতে ফোকাস করে:

  • মাত্রিকতা হ্রাস
  • একটি বড় নিউরাল নেট মডেল থেকে একটি এমবেডিং বের করা

মাত্রিকতা হ্রাস কৌশল

একটি নিম্ন-মাত্রিক স্থানের একটি উচ্চ-মাত্রিক স্থানের গুরুত্বপূর্ণ কাঠামো ক্যাপচার করার জন্য অনেক গাণিতিক কৌশল রয়েছে। তাত্ত্বিকভাবে, এই কৌশলগুলির যেকোনো একটি মেশিন লার্নিং সিস্টেমের জন্য একটি এমবেডিং তৈরি করতে ব্যবহার করা যেতে পারে।

উদাহরণস্বরূপ, প্রধান উপাদান বিশ্লেষণ (PCA) শব্দ এমবেডিং তৈরি করতে ব্যবহার করা হয়েছে। শব্দ ভেক্টরের ব্যাগের মতো উদাহরণগুলির একটি সেট দেওয়া, PCA অত্যন্ত পারস্পরিক সম্পর্কযুক্ত মাত্রাগুলি খুঁজে বের করার চেষ্টা করে যা একটি একক মাত্রায় ভেঙে যেতে পারে।

একটি নিউরাল নেটওয়ার্কের অংশ হিসাবে একটি এমবেডিং প্রশিক্ষণ

আপনার টার্গেট টাস্কের জন্য একটি নিউরাল নেটওয়ার্ক প্রশিক্ষণের সময় আপনি একটি এমবেডিং তৈরি করতে পারেন। এই পদ্ধতিটি আপনাকে আপনার নির্দিষ্ট সিস্টেমের জন্য ভালভাবে কাস্টমাইজ করা একটি এমবেডিং পায়, তবে আলাদাভাবে এমবেডিং প্রশিক্ষণের চেয়ে বেশি সময় নিতে পারে।

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

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

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

চিত্র 12. হট ডগের এক-হট এনকোডিংয়ের জন্য নিউরাল নেট। প্রথম স্তরটি 5টি নোড সহ একটি ইনপুট স্তর, প্রতিটি খাবারের একটি আইকন যা এটি প্রতিনিধিত্ব করে (বোর্শট, হট ডগ, সালাদ, ..., এবং শাওয়ারমা) দ্বারা টীকা করা হয়েছে। এই নোডগুলিতে যথাক্রমে [0, 1, 0, ..., 0] মান রয়েছে, যা 'হট ডগ'-এর এক-হট এনকোডিং প্রতিনিধিত্ব করে। ইনপুট স্তরটি একটি 3-নোড এম্বেডিং স্তরের সাথে সংযুক্ত, যার নোডগুলির মান যথাক্রমে 2.98, -0.75 এবং 0 রয়েছে৷ এমবেডিং স্তরটি একটি 5-নোডের লুকানো স্তরের সাথে সংযুক্ত থাকে, যা তারপর একটি 5-নোড আউটপুট স্তরের সাথে সংযুক্ত থাকে।
চিত্র 12. একটি গভীর নিউরাল নেটওয়ার্কে ইনপুট হিসাবে সরবরাহ করা hot dog এক-হট এনকোডিং। একটি এম্বেডিং স্তর এক-হট এনকোডিংকে ত্রি-মাত্রিক এমবেডিং ভেক্টরে অনুবাদ করে [2.98, -0.75, 0]

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

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

একটি শব্দ এমবেডিং প্রশিক্ষণ

পূর্ববর্তী বিভাগে , আপনি word2vec এম্বেডিং স্পেসে শব্দার্থিক সম্পর্কের একটি ভিজ্যুয়ালাইজেশন অন্বেষণ করেছেন।

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

নিম্নলিখিত ভিডিওটি একটি সহজ মডেল ব্যবহার করে একটি নিউরাল নেটওয়ার্ক প্রশিক্ষণের প্রক্রিয়ার অংশ হিসাবে একটি শব্দ এম্বেডিং তৈরি করার আরেকটি পদ্ধতি ব্যাখ্যা করে:

স্ট্যাটিক বনাম প্রাসঙ্গিক এম্বেডিং

উপরের ভিডিওতে আলোচনার মতো শব্দ এম্বেডিংয়ের একটি সীমাবদ্ধতা হল যে তারা স্ট্যাটিক । প্রতিটি শব্দ ভেক্টর স্থানের একটি একক বিন্দু দ্বারা উপস্থাপিত হয়, যদিও এটি একটি বাক্যে কীভাবে ব্যবহৃত হয় তার উপর নির্ভর করে এর বিভিন্ন অর্থ থাকতে পারে। শেষ অনুশীলনে , আপনি কমলা শব্দের জন্য শব্দার্থিক সাদৃশ্য ম্যাপ করার অসুবিধা আবিষ্কার করেছেন, যা একটি রঙ বা একটি প্রকারের ফল বোঝাতে পারে।

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