HeadlinesBriefing favicon HeadlinesBriefing.com

لماذا تحتاج Transformers إلى الترميز الموضعي للسلاسل الزمنية

Towards Data Science •
×

أثناء التعمق في النماذج التأسيسية للسلاسل الزمنية، أدركت أنني لا أستطيع فهمها حقًا دون فهم transformers أولاً. لم أرغب في استخدام هذه النماذج كصناديق سوداء، لذلك بدأت بتتبع الأفكار للخلف، من النماذج التأسيسية إلى transformers، ومن transformers إلى الانتباه الذاتي. ما جعل الانتقال مثيرًا للاهتمام هو أنه على الرغم من أن transformers تم بناؤها في الأصل للغة، فإن الفكرة الأساسية تنتقل بشكل طبيعي إلى السلاسل الزمنية. النمطان مختلفان جدًا، لكنهما يشتركان في شيء أساسي: كلاهما تسلسلات، وفي كلتا الحالتين، يغير الترتيب المعنى. في اللغة، الكلب يعض الرجل مختلف جدًا عن الرجل يعض الكلب. السلاسل الزمنية ليست مختلفة. درجة حرارة 30° أمس و20° اليوم تروي قصة مختلفة عن 20° أمس و30° اليوم. قد تكون القيم هي نفسها، لكن ترتيبها يغير معنى التسلسل. السؤال هو أنه إذا كان الانتباه الذاتي ينظر إلى جميع الملاحظات في وقت واحد، فكيف يعرف transformer أي ملاحظة جاءت أولاً، أيها جاءت لاحقًا، أو كم تبعد ملاحظتان عن بعضهما؟ ذلك السؤال قادني إلى الترميز الموضعي. أكثر ما فاجأني هو كيف يمكن لفكرة رياضية بسيطة كهذه أن تعطي Transformer إحساسًا بالترتيب. تطورت التقنيات الدقيقة بشكل كبير منذ ذلك الحين، لكن المشكلة الأساسية تظل كما هي. هذه المقالة هي محاولتي لبناء تلك الحدس من الأساس، بدءًا بسلسلة زمنية بسيطة واتباع المسار من الملاحظات الخام إلى الانتباه الذاتي وأخيرًا إلى الترميز الموضعي.

من الملاحظات القياسية إلى التمثيلات المتجهة ضع في اعتبارك سلسلة زمنية بسيطة تحتوي على درجة الحرارة المسجلة على مدار خمسة أيام عمل: مثال على سلسلة زمنية: سجل درجات الحرارة لمدة 5 أيام كل ملاحظة 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. تنتج كل مقارنة...