HeadlinesBriefing favicon HeadlinesBriefing.com

সময় সিরিজে Transformers এর পজিশনাল এনকোডিং

Towards Data Science •
×

সময় সিরিজের জন্য ফাউন্ডেশন মডেলগুলিতে গভীরভাবে ডুব দেওয়ার সময়, আমি বুঝতে পারলাম যে প্রথমে transformers বুঝতে না পেরে আমি সেগুলি সত্যিই বুঝতে পারব না। আমি এই মডেলগুলিকে ব্ল্যাক বক্স হিসাবে ব্যবহার করতে চাইনি, তাই আমি ধারণাগুলি পিছনের দিকে অনুসরণ শুরু করলাম, ফাউন্ডেশন মডেল থেকে transformers পর্যন্ত এবং transformers থেকে সেলফ-অ্যাটেনশন পর্যন্ত। রূপান্তরটিকে আকর্ষণীয় করে তুলেছে এই বিষয়টি যে যদিও transformers মূলত ভাষার জন্য তৈরি করা হয়েছিল, মূল ধারণাটি স্বাভাবিকভাবে সময় সিরিজে প্রযোজ্য। দুটি মোডালিটি খুব আলাদা, কিন্তু তারা কিছু মৌলিক বিষয় ভাগ করে: উভয়ই সিকোয়েন্স, এবং উভয় ক্ষেত্রেই, ক্রম অর্থ পরিবর্তন করে। ভাষায়, কুকুর মানুষকে কামড়ায় মানুষ কুকুরকে কামড়ায় থেকে অনেক আলাদা। সময় সিরিজ আলাদা নয়। গতকাল 30° এবং আজ 20° তাপমাত্রা গতকাল 20° এবং আজ 30° থেকে একটি ভিন্ন গল্প বলে। মানগুলি একই হতে পারে, কিন্তু তাদের ক্রম সিকোয়েন্সের অর্থ পরিবর্তন করে। প্রশ্নটি হল যদি সেলফ-অ্যাটেনশন একসাথে সমস্ত পর্যবেক্ষণ দেখে, তবে একটি transformer কীভাবে জানে কোন পর্যবেক্ষণ প্রথমে এসেছে, কোনটি পরে এসেছে, বা দুটি পর্যবেক্ষণ কতদূরে রয়েছে? সেই প্রশ্নটি আমাকে পজিশনাল এনকোডিংয়ের দিকে নিয়ে গেছে। আমাকে সবচেয়ে অবাক করেছে এই ধরনের একটি সাধারণ গাণিতিক ধারণা কীভাবে একটি Transformer-কে ক্রমের অনুভূতি দিতে পারে। তখন থেকে সঠিক কৌশলগুলি যথেষ্ট বিকশিত হয়েছে, কিন্তু অন্তর্নিহিত সমস্যাটি একই রয়ে গেছে। এই নিবন্ধটি ভূমি থেকে সেই অন্তর্দৃষ্টি তৈরি করার আমার প্রচেষ্টা, একটি সাধারণ সময় সিরিজ দিয়ে শুরু করে এবং কাঁচা পর্যবেক্ষণ থেকে সেলফ-অ্যাটেনশন এবং অবশেষে পজিশনাল এনকোডিংয়ের পথ অনুসরণ করে।

স্কেলার পর্যবেক্ষণ থেকে ভেক্টর উপস্থাপনায় পাঁচটি কর্মদিবসে রেকর্ড করা তাপমাত্রা সম্বলিত একটি সাধারণ সময় সিরিজ বিবেচনা করুন: সময় সিরিজের উদাহরণ: ৫-দিনের তাপমাত্রা ইতিহাস প্রতিটি পর্যবেক্ষণ x_t কেবল একটি স্কেলার। একটি transformer, তবে, d_model মাত্রিকতার ভেক্টরে কাজ করে। স্কেলার পর্যবেক্ষণগুলি তাই প্রথমে সেই উপস্থাপনা স্থানে ম্যাপ করা প্রয়োজন। এটি করার একটি সহজ উপায় হল একটি শেখা রৈখিক প্রজেকশনের মাধ্যমে, অর্থাৎ এম্বেডিং: e_t = W_e x_t + b_e আমাদের ভেক্টর উপস্থাপনার একটি সিকোয়েন্স দেয়: e_1, e_2, e_3, e_4, e_5 একটি এম্বেডিং হল সিরিজের একটি গভীর, বিমূর্ত উপস্থাপনা যা একটি বহুমাত্রিক সংখ্যাসূচক ভেক্টরের আকারে এর বৈশিষ্ট্যগুলি এনকোড করে এবং যা মডেল বোঝে। প্রতিটি সময় সিরিজ টোকেন একটি শেখা এম্বেডিং দ্বারা উপস্থাপিত হয়। প্রতিটি e_t সেই সময়-পদক্ষেপে পর্যবেক্ষণ করা মান সম্পর্কে তথ্য ক্যাপচার করে, কিন্তু এই মুহূর্তে, এটি কেবল পর্যবেক্ষণের একটি উপস্থাপনা। এখানে গুরুত্বপূর্ণ শব্দটি হল শেখা। মডেলটিকে 18° এর মতো তাপমাত্রার জন্য পূর্বনির্ধারিত ভেক্টর উপস্থাপনা দেওয়া হয় না। প্যারামিটার W_e এবং b_e প্রশিক্ষণের সময় শেখা হয় যাতে ফলস্বরূপ উপস্থাপনাগুলি কাজের জন্য কার্যকর হয়। এই মুহূর্তে, e_t যা পর্যবেক্ষণ করা হয়েছিল তা উপস্থাপন করে। এটি এখনও মডেলকে বলে না যে সিকোয়েন্সে সেই পর্যবেক্ষণ কোথায় ঘটেছিল।

সেলফ-অ্যাটেনশন কীভাবে প্রসঙ্গ তৈরি করে? সেলফ-অ্যাটেনশন প্রতিটি পর্যবেক্ষণকে সিকোয়েন্সের বাকি অংশ থেকে তথ্য ব্যবহার করতে দেয়। ধরা যাক আমরা শুক্রবারের উপস্থাপনা আপডেট করতে চাই। মডেলটি প্রথমে প্রতিটি e_t থেকে তিনটি শেখা প্রজেকশন তৈরি করে: q_t = W_Q e_t, k_t = W_K e_t, v_t = W_V e_t কোয়েরি, কী এবং ভ্যালু ভেক্টর সেলফ-অ্যাটেনশন ব্লকে শেখা হয়। ম্যাট্রিক্স W_Q, W_K এবং W_V ও প্রশিক্ষণের সময় শেখা হয়। মডেলকে আগে থেকে বলা হয় না যে একটি কার্যকর কোয়েরি, কী বা ভ্যালু কেমন হওয়া উচিত। শুক্রবারের জন্য, এর কোয়েরি q_5 সমস্ত পর্যবেক্ষণের কীগুলির সাথে তুলনা করা হয়: k_1, k_2, k_3, k_4, k_5। প্রতিটি তুলনা একটি... উৎপন্ন করে