গত এক বছর ধরে আমার অন্নবস্ত্রের সংস্থান ঘটছে টাইমসিরিজ ফোরকাস্টিং করে। অন্যান্য মেশিন/স্ট্যাটিস্টিক্যাল লার্নিং খাতগুলো থেকে টাইমসিরিজ ফোরকাস্টিং কিছুটা আলাদা এবং ঝক্কির কাজ। একটু উদাহরণ দিই। একটা বিড়ালের ছবি’র যেসব হাই লেভেল ফিচার, সেগুলো সময়ের সাথে সাথে আচমকা বদলে যায়না (বিবর্তন একটা অত্যন্ত দীর্ঘমেয়াদী প্রক্রিয়া)। এজন্য একটা মডেল ট্রেইন্ড হয়ে গেলে সেটার উপযোগিতা ভবিষ্যতে বেশ কিছুদিন পর্যন্ত থেকে যায়। কিন্তু একটা টাইমসিরিজে এটা খুবই দুর্লভ। যেসব ফ্যাক্টর একটা টাইমসিরিজের গতিপ্রকৃতি নির্ধারণ করে, সেগুলো মাইক্রোসেকেন্ডে বদলে গেলেও অবাক হওয়ার কিছু নেই। এজন্য প্রতিনিয়ত একদম আনকোরা নতুন ডেটা’র যোগান দিতে হয়- সেই করতে গিয়ে জটিল সব পাইপলাইনের প্রয়োজন পড়ে, আবার পাইপলাইনের ভুলে ডাটা লিকেজ হ’তে পারে (আরো জানতেঃ [১])। এছাড়াও অনেক মেশিন/স্ট্যাটিস্টিক্যাল লার্নিং এপ্লিকেশনে ডেটা’র রিজোল্যুশন বাড়া মনে হচ্ছে বেশ আনন্দের সংবাদ। কিন্তু টাইমসিরিজ ফোরকাস্টিং এ এইটা পুরো উলটো। ঘন্টামাফিক ডেটা আর পনেরো মিনিট অন্তর অন্তর ডেটা’র মধ্যে পার্থক্য আকাশ-পাতাল – যদিও একই “প্রসেস” থেকে টাইমসিরিজটা নেয়া। মডেলিং এর টেকনিকও পুরোপুরি আলাদা। প্রথমটার ক্ষেত্রে ক্লাসিক্যাল মডেলগুলোকে কাজে লাগানো যায়, দ্বিতীয়টার ক্ষেত্রে গ্লোবাল মডেল বানানো বাঞ্ছনীয় – সেটাও আবার প্রায়শই বেশ জটিল ডিপ লার্নিং আর্কিটেকচার (যেমনঃ রিকার্সিভ নিউরাল নেটওয়ার্ক কিংবা টেম্পোরাল ফিউশন ট্রান্সফর্মার)। এই তালিকা বেশ দীর্ঘ। মোদ্দাকথা, টাইমসিরিজ ফোরকাস্টিং একটা যাচ্ছেতাই ঝামেলার কাজ।
যে বিষয় নিয়ে আদতে লিখছি- সেটা হচ্ছে মডেল সিলেকশন। ধরা যাক, আমার কাছে পনেরোটি মডেল আছে, যেগুলো ট্রেইন্ড। এদের মধ্যে থেকে কোনটা বেছে নিবো? এই প্রশ্ন এড়িয়ে যাওয়ার সহজ উত্তর হচ্ছে- সবগুলোই নিবো, তারপর প্রতিটি মডেলের ফোরকাস্ট একত্র করে একটা ফোরকাস্ট তৈরি করে নেবো (কিভাবে একত্র করা হবে, সেটা একটা বিশাল আলোচনা)। প্রশ্ন এড়িয়ে না গিয়ে উত্তর দিতে গেলে আসলে খুব বেশি অপশন হাতে থাকেনা। একটা সহজ সরল এবং বহুল ব্যবহৃত অপশন হচ্ছেঃ নিকট অতীতে যে মডেলটি ভালো পারফর্ম “করতো”, সেটাকে ধরে নিয়ে প্রডাকশনে পাঠিয়ে দেয়া। তারপর আশায় বুক বেঁধে থাকা- যেহেতু নিকট অতীতে মডেলটি বেশ ভালো কাজ “করতো”, সে এখনো ভালোই কাজ করবে। বলাই বাহুল্য, এই আশায় প্রায়ই গুড়েবালি। এ কারণে টাইমসিরিজ মডেল সিলেকশন বেশ কঠিন সমস্যা, এবং সেই ১৯৭০ থেকে শুরু করে এখনো এই বিষয়ে নিয়ম করে জার্নাল বের হচ্ছে (International Conference on Learning Representation (ICLR) 2022 এর ওপেনরিভিউতে এই বিষয়ক বেশ কিছু পেপার দেখেছি)।
কর্মক্ষেত্রে কিছুদিন আগে মডেল সিলেকশন স্ট্রাটেজি নিয়ে বসলাম, আলোচনা’র মূল বিষয়- আশায় বসে থাকলে হবে না। একটা মডেল নির্বাচিত হওয়ার পরও সেটাকে কিছুটা অডিট করা দরকার, মূল লক্ষ্য হচ্ছে যেনতেন আউটপুট ক্লায়েন্টের কাছে চলে যেন না যায়। মুশকিল হচ্ছে- হাজার ত্রিশেক টাইমসিরিজ অডিট করা অসম্ভব। কিভাবে আমরা অটোমেটিক্যালি সার্চ স্পেসটাকে ছোট করে আনতে পারি? এটা বের করার জন্য পেপার ঘাঁটতে গিয়ে ড্যানিয়েল কানেম্যান আর আমোস ভার্স্কি’র ১৯৭৪ সালের একটা পেপার হাতে এসে পড়লো। এই দুইটা নামের সাথে আমি সবিশেষ পরিচিত। আমার আগ্রহের বিষয় বিহেভিওরাল ইকোনমিক্সের প্রতিষ্ঠাতাদের একজন হচ্ছেন প্রফেসর কানেম্যান, সেই সূত্রে নোবেল পুরষ্কারও বাগিয়ে নিয়েছেন। যাইহোক, পেপারের বিষয় হচ্ছে, কিভাবে একজন মানুষ বেশ কিছু ফোরকাস্ট থেকে তার মতে সবচে’ ভালো ফোরকাস্টকে বেছে নেয়। সারসংক্ষেপ অনেকটা এইরকমঃ একজন মানুষ হিস্টোরিক্যাল ডেটা’র উপর ভিত্তি করে যখন একটা ফোরকাস্ট নির্বাচন করে, তখন সে ফোরকাস্টের “representativeness” কে প্রাধান্য দেয়। এই কাজ করতে গিয়ে সে হিস্টোরিক্যাল ডেটা’র এমন সব প্যাটার্নের উপর গুরুত্ব দেয় যেগুলো মূলত নয়েজ, কোন সিগ্ন্যাল নয়। মোটকথা, মানুষ “Similarity” কে যতটুকু গুরুত্ব দেয়া প্রয়োজন, তার চেয়ে অনেক বেশি গুরুত্ব দেয়। এই বায়াসের কারণে একজন মানুষ হয়তো সবচে’ ভালো ফোরকাস্ট বেছে নিতে পারেনা, কিন্তু উদ্ভট-দর্শন ফোরকাস্টগুলোকে আলাদা করে ফেলতে পারে। পুরো ঘটনায় আমি বেশ পুলকিত হই, কারণ কানেম্যান এর ঠিক এই কাজের সাথে আমি পরিচিত [২], কিন্তু সেটার যে সরাসরি টাইমসিরিজেই প্রয়োগ আছে – সেটা আমার জানা ছিলোনা। এবং আমরা ঠিক এমন একটা প্রক্রিয়াই খুঁজছিলাম।
নিকোলাস নাসিম তালেব সাহেবের “Fooled by Randomness” বইটার কথাও মনে হলো একই সাথে। নাসিম তালেব বরাবরই ওয়াল স্ট্রিটকে ভদ্রভাষায় গালিগালাজ করেন। তাঁর মতে, যারা স্টক মার্কেটের রিটার্ন দেখে দেখে, বিভিন্ন প্যাটার্ন বানিয়ে বিনিয়োগের ঝুঁকি নেয়, তাদের পতন অবশ্যম্ভাবী। তিনি তাঁদের একটা নামও দিয়েছেন- professional overfitter.
হঠাৎ করে এই ত্রিমূর্তি’র অপ্রত্যাশিত সংযোগ দেখে মনে হ’লো – এই আউট বই পড়ার অভ্যেসটা জারি রাখা খুবই প্রয়োজন।
নিউক্যাসল, ২০২২
[১] https://smhasan.com/2021/10/16/avoiding-data-leakage-in-timeseries-101/
[২] https://thedecisionlab.com/biases/representativeness-heuristic