টেক্সটবুকের মেশিন লার্নিং

Say something important rather than say important things.

– Daniel Pink.

টেক্সটবুকীয় ভার্সন কিন্তু কষ্টের। তবে, অনেকটাই বৈজ্ঞানিক।

মেশিন লার্নিং নিয়ে অনেক উদাহরণ দিয়েছি আগে। আজ টেক্সটবুক স্টাইলে কিছুটা ধারণা দেবার পালা। কথা দিচ্ছি জিনিসটাকে নিয়ে আসবো একদম পানির মতো করে। এটা ঠিক - আমরা যতই টেক্সটবুক মার্কা লেখা অপছন্দ করি না কেন - ঝামেলাপূর্ন জিনিস বুঝতে শেষমেশ আমাদেরকে ফিরতে হয় এই টেক্সটবুকে। এটা ঠিক যে টেক্সটবুক থেকে সরাসরি বোঝা দুষ্কর - তবে আমি চেষ্টা করব টেক্সটবুকটাকে কিভাবে আপনাদের কাছে ‘সহনীয়’ পর্যায়ে নিয়ে আসা যায়। আপনারা দেখেছেন পৃথিবীর প্রতিটা মেশিন লার্নিং সমস্যাগুলোকে আসলে “তিনটা” কনসেপ্টে ভাগ করা যায়। ঠিক ধরেছেন। মোটে তিনটা। আমি কথা দিচ্ছি আজকের এই মেশিন লার্নিং এর টেক্সটবুক ব্যাপারটাকে একদম সহজ করে নামিয়ে দেব আপনাদের সামনে।

ক. শুরুতেই আমাদেরকে শিখতে হবে কিভাবে একটা কাজ - ধরে নেই টাস্ক “T”কে সমাধান করতে হবে। আমাদের শেখা মানে মেশিনকে শেখানো। মনে আছে আগের উদাহরণটা কথা? মোবাইল অপারেটর “ক”তে কাজ করছেন আপনি। একটা প্রশ্নের উত্তর খুঁজতে দেয়া হলো আপনাকে। প্রশ্নটাই আমাদের কাজ “T”। প্রেডিক্ট করতে হবে সামনের মাসগুলোতে কোন কোন গ্রাহক ছেড়ে যাবে আপনাদেরকে? মানে আপনার কোম্পানি মোবাইল অপারেটর “ক” থেকে। এই প্রশ্নের উত্তর বের করতে হবে কাজ হিসেবে। আবারও বলছি - আমাদের কাজ হচ্ছে কোন কোন গ্রাহক আসলে “ক” থেকে অন্য অপারেটরে চলে যাবে সেটাকে ঠিকমতো বের করা।

খ. এখন এই কাজটা মেশিনকে শিখিয়ে নিতে অথবা আমাদের নিজেদের করতে কিছু ‘অভিজ্ঞতার’ প্রয়োজন। হটাৎ করে তো আর কেউ কিছু করতে পারে না। ভুল বলেছি? টেক্সটবুকের ভাষায় আমাদের এই দরকারি অভিজ্ঞতা অথবা “এক্সপেরিয়েন্স”কে আমরা “E” বলে ধরে নিচ্ছি। মোবাইল অপারেটরের এই সমস্যার সমাধান আমাদের খুঁজতে হবে কোম্পানির অভিজ্ঞতা থেকে। মোবাইল অপারেটরের কাছে “অভিজ্ঞতা” হিসেবে আছে গ্রাহকের সব ডাটা। যন্ত্রের আবার অভিজ্ঞতা কী? সত্যিই তাই - গ্রাহক সম্পর্কিত ডাটাসেট। গ্রাহকের বিভিন্ন সার্ভিসগুলোর ব্যবহারের ডাটা, কবে কি কি সার্ভিস অ্যাক্টিভেশন করেছেন, মোবাইল রিচার্জ ইত্যাদি তথ্য চলে আসবে ডাটাসেট হিসেবে।

সোজা কথায় আমাদের সমস্যার ওপর কাজ করতে হলে দরকার ‘অভিজ্ঞতা’ যেটা মোবাইল অপারেটরের কাছে আছে ডাটাসেট হিসেবে। সেই ডাটাসেট থেকে দেখা যাচ্ছে আগে কে কে এই মোবাইল অপারেটর থেকে চলে গিয়েছে। তার চলে যাওয়ার পেছনে কি কি ব্যাপারগুলো কাজ করেছে, সেগুলোকে ‘ম্যানুয়ালি’ বের করার ধারণাগুলো আমাদের জন্য একটা বড় অভিজ্ঞতা। আমাদের মতো মানুষই প্রথমে বের করে দিয়েছে কেন সে চলে গিয়েছে। ফলে ভবিষ্যতে কে কে চলে যাবে তা আগে থেকেই ধারণা করতে পারবে এই মেশিন লার্নিং। বুঝতে পেরেছেন নিশ্চয়ই। আবার বলি - ‘অভিজ্ঞতা’ হচ্ছে সেই সত্যিকারের পুরানো ডাটা যেখানে আমরা জানি কোন কোন কারনে একজন গ্রাহক চলে গেছেন মোবাইল অপারেটর “ক” ছেড়ে।

গ. এখন ‘অভিজ্ঞতা’ ‘E’ থেকে আমাদের “T” কাজের দক্ষতা কোথায় পৌঁছেছে সেটা জানতে আমাদের দরকার “পারফরম্যান্স” মানে “P”। আমরা আসলে কাজটাকে ঠিকমতো করতে পারছি কিনা অথবা কতোটুকু পারছি সেটা জানতেই এই দক্ষতার পরিমাপ। আমাদের মেলাতে হবে কতটুকু পারছি ঠিকমতো। সেখানে আমাদের নতুন কিছু যোগ করতে হবে কিনা? নতুন কিছু ‘মডিফিকেশন’ করলে আমাদের উত্তরগুলো ঠিক আসছে না আরো ভুল হচ্ছে সেটা বের করার জন্য দরকার আমাদের এই “P”। “ক” মোবাইল অপারেটরের কতো শতাংশ গ্রাহক আমাদের ছেড়ে চলে যাচ্ছে - সেটার কতটুকু ঠিকমত ধরতে পারছি সেটাই আমাদের দক্ষতা। আমাদের প্রশ্নের কতো শতাংশ ঠিকমতো কাজ করছে ওই সব গ্রাহককে আগে থেকে “ক্লাসিফাই” করার ব্যাপারে? “ক্লাসিফিকেশন” হচ্ছে দুভাগে। একজন গ্রাহক, উনি চলে যাবেন - নাকি যাবেন না। ধরে দিচ্ছি আমরা যদি ১০০ জন গ্রাহককে বের করতে পারি যারা চলে যাবেন অপারেটর ছেড়ে, সেখানে বাস্তবে যদি ৯০ জন চলে যান তাহলে আমরা বলতে পারি আমাদের দক্ষতা “P” হচ্ছে ৯০%।

কিছু ধারণা পরিষ্কার হলো তো আপনার? না হলে আবারো পড়তে পারেন এই ৩টা কনসেপ্ট। খুবই সোজা! হাতে এলো একটা প্রশ্ন/সমস্যা। কি করবেন?

১. সমস্যা/প্রশ্নের উত্তরে একটা কাজ মানে টাস্ক “T”কে সমাধান করতে হবে

২. কাজ “T”কে সমাধান করতে দরকার পুরানো অভিজ্ঞতা অথবা “এক্সপেরিয়েন্স” “E”

৩. কাজটা ঠিকমতো হচ্ছে কি না সেটা দেখতে দক্ষতা - “পারফরম্যান্স” মানে “P” এর ব্যবহার। দরকার হলে সেটাকে ‘মডিফাই’ করে কাজকে আরো ভালোভাবে উৎরানোর চেষ্টা করা