ক্যাটেগরিক্যাল ডেটা ট্রান্সফর্মিং

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

প্রায়শই, আপনার এমন বৈশিষ্ট্যগুলি উপস্থাপন করা উচিত যাতে সংখ্যাসূচক ডেটার পরিবর্তে শ্রেণীগত ডেটা হিসাবে পূর্ণসংখ্যার মান রয়েছে। উদাহরণস্বরূপ, একটি পোস্টাল কোড বৈশিষ্ট্য বিবেচনা করুন যেখানে মানগুলি পূর্ণসংখ্যা। আপনি যদি ভুলবশত এই বৈশিষ্ট্যটিকে সংখ্যাগতভাবে উপস্থাপন করেন, তাহলে আপনি মডেলটিকে বিভিন্ন পোস্টাল কোডের মধ্যে একটি সংখ্যাসূচক সম্পর্ক খুঁজে বের করতে বলছেন; উদাহরণস্বরূপ, আপনি আশা করছেন যে মডেলটি নির্ধারণ করবে যে পোস্টাল কোড 20004 পোস্টাল কোড 10002 হিসাবে সিগন্যালের দ্বিগুণ (বা অর্ধেক)। পোস্টাল কোডগুলিকে শ্রেণীবদ্ধ ডেটা হিসাবে উপস্থাপন করে, আপনি প্রতিটি পৃথক পোস্টাল কোডের জন্য পৃথক সংকেত খুঁজে পেতে মডেলটিকে সক্ষম করবেন।

যদি একটি ডেটা ক্ষেত্রের বিভাগের সংখ্যা ছোট হয়, যেমন সপ্তাহের দিন বা রঙের সীমিত প্যালেট, আপনি প্রতিটি বিভাগের জন্য একটি অনন্য বৈশিষ্ট্য তৈরি করতে পারেন। উদাহরণ স্বরূপ:

প্যালেটের প্রতিটি রঙ একটি পৃথক বৈশিষ্ট্য হিসাবে উপস্থাপিত হয়। অর্থাৎ ফিচার ভেক্টরে প্রতিটি রঙই আলাদা বৈশিষ্ট্য। উদাহরণস্বরূপ, লাল একটি বৈশিষ্ট্য, কমলা একটি পৃথক বৈশিষ্ট্য, এবং তাই। চিত্র 1: প্রতিটি বিভাগের জন্য একটি অনন্য বৈশিষ্ট্য।

একটি মডেল তারপর প্রতিটি রঙের জন্য একটি পৃথক ওজন শিখতে পারে। উদাহরণস্বরূপ, সম্ভবত মডেলটি শিখতে পারে যে লাল গাড়িগুলি সবুজ গাড়ির চেয়ে বেশি ব্যয়বহুল।

বৈশিষ্ট্যগুলি তারপর ইন্ডেক্স করা যেতে পারে।

প্যালেটের প্রতিটি রঙ এখন একই বৈশিষ্ট্যের অন্তর্গত। অর্থাৎ, ফিচার ভেক্টরে রঙ এখন শুধুমাত্র একটি বৈশিষ্ট্য। প্রতিটি রঙের একটি অনন্য মান আছে। উদাহরণস্বরূপ, লাল রঙের মান 0, কমলার মান 1 এবং আরও অনেক কিছু। চিত্র 2: সূচিবদ্ধ বৈশিষ্ট্য।

এই ধরণের ম্যাপিংকে শব্দভাণ্ডার বলা হয়।

শব্দভান্ডার

একটি শব্দভান্ডারে, প্রতিটি মান একটি অনন্য বৈশিষ্ট্য উপস্থাপন করে।

Index Number Category
0 Red
1 Orange
2 Blue
... ...

মডেলটি স্ট্রিং থেকে সূচকটি দেখায়, বৈশিষ্ট্য ভেক্টরের সংশ্লিষ্ট স্লটে 1.0 এবং বৈশিষ্ট্য ভেক্টরের অন্যান্য সমস্ত স্লটে 0.0 নির্ধারণ করে।

বৈশিষ্ট্য ভেক্টরে বিভাগগুলি ম্যাপ করার জন্য এন্ড-টু-এন্ড প্রক্রিয়ার চিত্র। ডায়াগ্রামে, ইনপুট বৈশিষ্ট্যগুলি হল হলুদ, কমলা, নীল, নীল। একটি আইডিতে ইনপুট মান ম্যাপ করতে সিস্টেমটি একটি সংরক্ষিত শব্দভান্ডার ব্যবহার করে (লাল হল 0, কমলা হল 1, নীল হল 2, হলুদ হল 3 এবং আরও অনেক কিছু)। এইভাবে, সিস্টেমটি হলুদ, কমলা, নীল, নীলকে 3, 1, 2, 2-এ মানচিত্র তৈরি করে। সিস্টেম তারপর সেই মানগুলিকে এক-হট বৈশিষ্ট্য ভেক্টরে রূপান্তর করে। উদাহরণস্বরূপ, সাতটি সম্ভাব্য রঙ সহ একটি সিস্টেম দেওয়া হলে, 3 হয়ে যায় 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0। চিত্র 3: বৈশিষ্ট্য ভেক্টরের জন্য বিভাগগুলি ম্যাপ করার জন্য শেষ থেকে শেষ প্রক্রিয়া।

বিক্ষিপ্ত প্রতিনিধিত্ব সম্পর্কে নোট

যদি আপনার বিভাগগুলি সপ্তাহের দিন হয়, তাহলে আপনি, উদাহরণস্বরূপ, বৈশিষ্ট্য ভেক্টর [0, 0, 0, 0, 1, 0, 0] দিয়ে শুক্রবারের প্রতিনিধিত্ব করতে পারেন। যাইহোক, ML সিস্টেমের বেশিরভাগ বাস্তবায়ন এই ভেক্টরকে মেমরিতে একটি স্পার্স উপস্থাপনা সহ উপস্থাপন করবে। একটি সাধারণ উপস্থাপনা হল অ-খালি মান এবং তাদের সংশ্লিষ্ট সূচকগুলির একটি তালিকা-উদাহরণস্বরূপ, মানের জন্য 1.0 এবং সূচকের জন্য [4]। এটি আপনাকে 0 সেকেন্ডের একটি বিশাল পরিমাণ সঞ্চয় করার জন্য কম মেমরি ব্যয় করতে দেয় এবং আরও দক্ষ ম্যাট্রিক্স গুণনের অনুমতি দেয়। অন্তর্নিহিত গণিতের পরিপ্রেক্ষিতে, [4] হল [0, 0, 0, 0, 1, 0, 0] এর সমতুল্য।

Vocab এর বাইরে (OOV)

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

হ্যাশিং

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

গুরুত্বপূর্ণ পদের জন্য, সংঘর্ষের কারণে হ্যাশিং শব্দভান্ডার নির্বাচন করার চেয়ে খারাপ হতে পারে। অন্যদিকে, হ্যাশিংয়ের জন্য আপনাকে একটি শব্দভাণ্ডার একত্রিত করতে হবে না, যা সুবিধাজনক যদি সময়ের সাথে বৈশিষ্ট্যের বন্টন ব্যাপকভাবে পরিবর্তিত হয়।

ডায়াগ্রাম শব্দের দুটি তালিকা দেখাচ্ছে। একটি তালিকা 10 টি শব্দ নিয়ে গঠিত। অন্য তালিকাটি দেখায় 10টি শব্দ 8টি হ্যাশ বালতিতে বিভক্ত। এইভাবে, হ্যাশ বাকেটের 6টিতে একটি শব্দ রয়েছে, যখন 2টি হ্যাশ বাকেট উভয়টিতে 2টি শব্দ রয়েছে। প্রতিটি হ্যাশ বালতি 1 থেকে 8 পর্যন্ত একটি সংখ্যা দ্বারা চিহ্নিত করা হয়, অন্তর্ভুক্ত। চিত্র 4: একটি শব্দভান্ডারে আইটেম ম্যাপিং।

হ্যাশিং এবং শব্দভান্ডারের হাইব্রিড

আপনি একটি হাইব্রিড পদ্ধতি গ্রহণ করতে পারেন এবং একটি শব্দভান্ডারের সাথে হ্যাশিং একত্রিত করতে পারেন। আপনার ডেটার সবচেয়ে গুরুত্বপূর্ণ বিভাগের জন্য একটি শব্দভাণ্ডার ব্যবহার করুন, তবে একাধিক OOV বালতি দিয়ে OOV বালতি প্রতিস্থাপন করুন এবং বালতিতে বিভাগ নির্ধারণ করতে হ্যাশিং ব্যবহার করুন।

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

ডায়াগ্রাম শব্দের তিনটি তালিকা দেখাচ্ছে। একটি তালিকা শ্রেণীবদ্ধ করার জন্য 10 টি শব্দ নিয়ে গঠিত। অন্য দুটি তালিকা সেই 10টি শব্দকে শব্দভাণ্ডার এবং হ্যাশ বালতিতে ম্যাপ করে। অর্থাৎ, 5টি শব্দ সরাসরি ভোকাবুলারিতে ম্যাপ করে, অন্য 5টি শব্দ দুটি হ্যাশ বালতিতে ম্যাপ করে। এক হ্যাশ বালতিতে দুটি শব্দ রয়েছে; অন্য হ্যাশ বালতি তিনটি শব্দ রয়েছে. শব্দভান্ডারে সাধারণ শব্দ রয়েছে; হ্যাশ বালতিতে বিরল শব্দ রয়েছে। চিত্র 5: শব্দভান্ডার এবং হ্যাশিংয়ের সমন্বয়ে হাইব্রিড পদ্ধতি।

এমবেডিং সম্পর্কে নোট করুন

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

এম্বেডিংয়ের মাধ্যমে বৈশিষ্ট্য ভেক্টরগুলিতে বিভাগ ম্যাপ করার জন্য এন্ড-টু-এন্ড প্রক্রিয়া দেখানো ডায়াগ্রাম। একটি এমবেডিং টেবিলে সারিগুলির একটি সংখ্যাযুক্ত সেট থাকে। প্রতিটি সারি 0.0 এবং 1.0 এর মধ্যে ফ্লোটিং-পয়েন্ট মানগুলির একটি সেট নিয়ে গঠিত। একটি বিভাগ রূপান্তর করতে, সিস্টেম এমবেডিং টেবিল থেকে সংশ্লিষ্ট সারি অনুলিপি করে। উদাহরণস্বরূপ, যদি ইনপুট বিভাগটি 0 হয়, সিস্টেমটি এম্বেডিং টেবিলের প্রথম সারিটিকে বৈশিষ্ট্য ভেক্টরে অনুলিপি করে। যদি ইনপুট বিভাগটি 1 হয়, সিস্টেমটি এম্বেডিং টেবিলের দ্বিতীয় সারিটিকে বৈশিষ্ট্য ভেক্টরে অনুলিপি করে। চিত্র 6: এম্বেডিংয়ের মাধ্যমে স্পারস ফিচার ভেক্টর

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

কি pretrained এমবেডিং সম্পর্কে? প্রশিক্ষণের সময় পূর্বপ্রশিক্ষিত এম্বেডিংগুলি এখনও সাধারণত পরিবর্তনযোগ্য, তাই তারা এখনও ধারণাগতভাবে মডেলের অংশ।