قراءة
وضع القصص

تطبيقات التسلسلات

~22 دقيقة قراءة الدرس 3 من 3 في الوحدة 8

من البنية إلى التطبيق

بنى الدرسان السابقان الآلية: الوصلات المتكررة التي تحمل الذاكرة عبر خطوات الزمن، وآليات البوابات التي تحمي الاعتماديات البعيدة المدى من تلاشي التدرجات. يضع هذا الدرس تلك الآلية في العمل. لا تعدّ الشبكات المتكررة وLSTM وGRU مجرد تركيبات نظرية، بل كانت المحرك وراء عقد من الإنجازات في اللغة والسلاسل الزمنية والكلام واتخاذ القرارات المتسلسلة. فهم كيفية تعيين البنية على كل مسألة هو المهارة الأساسية لتطبيق نماذج التسلسلات عمليًا.

سنفحص خمسة مجالات تطبيقية ملموسة: نمذجة اللغة، وتصنيف النصوص، وترجمة تسلسل إلى تسلسل، والتنبؤ بالسلاسل الزمنية، والتعرف على الكلام. يوضح كل مجال طريقة مختلفة لصياغة مسألة متسلسلة، مع هياكل مدخلات ومخرجات ودوال خسارة وإجراءات استدلال مختلفة. نختتم باستعراض آلية الانتباه، الابتكار الرئيسي الذي أفضى في نهاية المطاف إلى المحوّلات وتجاوز التكرار البحت في كثير من المهام.

نمذجة اللغة: التنبؤ بالكلمة التالية

يُسند نموذج اللغة احتمالًا لكل تسلسل من الرموز. تستخدم الصياغة المعيارية قاعدة السلسلة للاحتمال: P(w1, w2, …, wT) = ∏t=1T P(wt | w1, …, wt−1). يختزل التدريب إلى مهمة التنبؤ بالرمز التالي: بإعطاء التسلسل حتى الآن، تنبأ بالرمز التالي. الشبكة المتكررة مناسبة طبيعيًا لهذا لأن الحالة المخفية ht−1 تضغط جميع الرموز السابقة في متجه ذي حجم ثابت، ويحوّل طبقة softmax هذا التمثيل إلى توزيع احتمالي على المفردات.

في كل خطوة زمنية، تقيس خسارة الإنتروبيا المتقاطعة الفرق بين التوزيع الذي تنبأ به النموذج والرمز التالي الحقيقي (وهو متجه أحادي التنشيط، صفر في كل مكان إلا موضع الرمز الصحيح). ثم تُحسب الخسارة كمتوسط على جميع المواضع وجميع التسلسلات في الدفعة الصغيرة. أما أثناء الاستدلال فتُؤخذ الرموز من التوزيع المتنبأ به بشكل انحداري ذاتي: يصبح الرمز المأخوذ هو المدخل التالي، وتتكرر العملية حتى يُولَّد رمز نهاية التسلسل أو يُبلغ الطول الأقصى.

خسارة نموذج اللغة
\mathcal{L} = -\frac{1}{T}\sum_{t=1}^{T}\log P(w_t \mid w_1,\ldots,w_{t-1})
خسارة نموذج اللغة هي متوسط اللوغاريتم السالب لاحتمال كل رمز حقيقي بإعطاء البادئة. تدريب الشبكة على تعظيم الاحتمال يُخفّض هذه الخسارة. المقياس الأسي لهذه الخسارة يُسمى الحيرة — كلما انخفضت الحيرة كان النموذج أقل مفاجأة بالبيانات.

نماذج اللغة على مستوى الحرف تجزّئ النص إلى حروف مفردة، فيستطيع النموذج توليد أي سلسلة نصية والتعامل مع كلمات لم يرها في التدريب. أما النماذج على مستوى الكلمة فتجزّئ إلى كلمات أو إلى كلمات فرعية (بترميز أزواج البايتات مثلًا)، فتخرج نصًا أكثر تماسكًا في المعنى لكن بمفردات أكبر بكثير. والشبكات المتكررة على مستوى الحرف كانت من أوائل البراهين المقنعة على أن نماذج التسلسلات العصبية قادرة على توليد نص متماسك وشيفرة برمجية وبيانات مُهيكلة.

الحيرة كمقياس تقييم

الحيرة (PPL) هي المقياس المعياري لنماذج اللغة: PPL = exp(الخسارة). وحيرةٌ مقدارها k تعني أن النموذج، في المتوسط، حائرٌ كما لو كان عليه أن يختار بالتساوي بين k احتمالًا متكافئًا في كل خطوة. نموذج عشوائي على مفردات 50,000 كلمة له حيرة 50,000. تحقق شبكة RNN مدربة جيدًا حيرة 60-100 على معيار Penn Treebank. تحقق نماذج المحوّلات الحديثة أقل من 20 على المعيار ذاته.

تصنيف النصوص: ترميز التسلسل في تسمية

يُعيّن تصنيف النصوص تسلسلًا متغير الطول إلى تسمية فئوية ثابتة: إيجابية أو سلبية في تحليل المشاعر، بريد مزعج أو لا، موضوع مقال. الصياغة الطبيعية للشبكة المتكررة هي تشغيل التسلسل عبر الشبكة المتكررة واستخدام الحالة المخفية الأخيرة hT كتمثيل ملخص للتسلسل بأكمله. رأس تصنيف متصل بالكامل فوق hT يحوّل هذا المتجه ذا الحجم الثابت إلى احتمالات الفئات عبر softmax.

المفتاح هو أن hT هو ملخص متعلّم لكامل تسلسل المدخلات، مضغوط عبر الانتقالات المتكررة وآليات البوابات. وفي LSTM تحمل حالة الخلية cT إشارة مكمّلة في كثير من الأحيان، فتُوصل مع hT قبل رأس التصنيف. أما في النماذج ثنائية الاتجاه فتُتسلسل الحالتان المخفيتان الأخيرتان [&overrightarrow;hT ; &overleftarrow;h1]، فتلتقط السياق من الأمام والخلف معًا.

وهنا مسألة عملية مهمة: كيف تتعامل مع تسلسلات مختلفة الأطوال داخل الدفعة الصغيرة الواحدة؟ الحل هو التبطين — تُمدّ كل التسلسلات إلى الطول نفسه برمز تبطين خاص PAD — مع آلية إخفاء تستخدم قناعًا تضمن أن الخسارة تُحسب على الرموز الحقيقية فقط لا على التبطين. والحالة المخفية النهائية تُؤخذ من آخر موضع حقيقي في كل تسلسل، لا من نهاية التبطين. والأطر الحديثة توفّر تمثيلات "تسلسلات محزومة" تتجنّب الحساب على التبطين من أصله.

التسلسل إلى التسلسل: الترجمة وما هو أكثر

تتطلب مهام كثيرة توليد تسلسل مخرجات متغير الطول من تسلسل مدخلات متغير الطول: الترجمة الآلية (إنجليزي ← فرنسي)، والتلخيص (مستند طويل ← ملخص قصير)، والحوار (كلام المستخدم ← رد النظام). ولا يمكن حل هذه المهام بشبكة RNN واحدة، لأن طول المخرجات لا يحدده طول المدخلات.

تعالج بنية المشفر-فك الشفرة (Sutskever وآخرون، 2014) هذا بتقسيم النموذج إلى شبكتين متكررتين. يقرأ المشفر تسلسل المدخلات كاملًا ويضغطه في متجه سياق c ذي حجم ثابت، وهو عادةً حالته المخفية الأخيرة. ثم يُهيَّأ فك الشفرة بـ c ويولّد تسلسل المخرجات رمزًا واحدًا في كل مرة بشكل انحداري ذاتي، فيُغذّي كل رمز يولّده مدخلًا للخطوة التالية، ويستمر حتى يولّد رمز نهاية التسلسل الخاص.

المشفر–فك الشفرة
\begin{aligned}c &= h_T^{\text{enc}}\\ s_t &= f_{\text{dec}}(s_{t-1},y_{t-1},c)\\ P(y_t) &= \text{softmax}(W_o s_t)\end{aligned}
يضغط المشفر المدخل في السياق c = hTenc. يولّد فك الشفرة رموز المخرجات yt مشروطًا بالسياق c وحالته المخفية السابقة st−1 والرمز السابق yt−1. وتُدرَّب كل المعاملات معًا بتعظيم لوغاريتم احتمال تسلسل المخرجات الصحيح.

لكن هذه البنية تحمل عنق زجاجة واضحًا: متجه السياق الواحد. فتسلسل المدخلات كله — جملة من عشرين أو خمسين كلمة — يجب أن يُضغط في متجه واحد ذي حجم ثابت. وفي التسلسلات الطويلة، الحالة المخفية الأخيرة للمشفر ببساطة لا تستطيع الاحتفاظ بكل ما يهم. هذا العنق تحديدًا هو ما دفع إلى آلية الانتباه، التي تسمح لفك الشفرة بالنظر إلى حالات المشفر المخفية كلها بدلًا من الاعتماد على ملخص واحد.

البحث الحزمي وقت الاستدلال

الفك الجشع يختار دائمًا الرمز الأكثر احتمالًا في كل خطوة، لكنه كثيرًا ما ينتج تسلسلات دون المستوى الأمثل، لأن اختيارًا جشعًا مبكرًا قد يقطع الطريق على خواتيم أفضل. أما البحث الحزمي فيحتفظ بأفضل k تسلسل مرشح (وهي الحزمة) في كل خطوة، فيوسّع كل المرشحات ثم يُبقي على التسلسلات الجزئية الأعلى احتمالًا وعددها k. وعرض حزمة بين 4 و10 يحسّن جودة الترجمة تحسينًا ملموسًا مقارنةً بالفك الجشع، بثمنٍ هو مضاعفة حساب الاستدلال k مرة. وتطبيع الطول (قسمة لوغاريتم الاحتمال على طول التسلسل) يمنع البحث الحزمي من التحيّز للمخرجات الأقصر.

التنبؤ بالسلاسل الزمنية

لم يقتصر استخدام الشبكات المتكررة على اللغة، بل طُبّقت على السلاسل الزمنية الرقمية: التنبؤ بقيم مستقبلية لإشارة من تاريخها. سعر سهم بعد يوم، والطلب على الكهرباء في الساعة القادمة، والعمر المتبقي المفيد لآلة صناعية — كلها مهام تنبؤ تُعيّن تسلسلًا من المشاهدات الماضية إلى قيمة مستقبلية واحدة أو أكثر.

في التنبؤ بخطوة واحدة مقدمًا، يأخذ النموذج x1, …, xT مدخلًا ويتنبأ بـ xT+1. والمخرج قيمة مستمرة، فالخسارة هي الخطأ التربيعي المتوسط (MSE) أو الخطأ المطلق المتوسط (MAE) لا الإنتروبيا المتقاطعة. البنية هي نفسها بنية مصنّف الشبكة المتكررة تقريبًا، إلا أن طبقة المخرجات انحدار خطي بدلًا من softmax. أما في التنبؤ متعدد الخطوات، فإما أن يولّد فك الشفرة القيم المستقبلية بشكل انحداري ذاتي، أو أن تتنبأ طبقة مخرجات واحدة بكل الخطوات المستقبلية H في وقت واحد (وهي الاستراتيجية المباشرة).

أكبر تحدٍّ في السلاسل الزمنية هو عدم الاستقرارية: خصائص السلسلة الإحصائية — المتوسط والتباين والموسمية — تتغيّر مع الزمن. والمعالجة المسبقة المعتادة تشمل أخذ الفروق (طرح القيمة السابقة لإزالة الاتجاه العام)، والتطبيع (متوسط صفري وتباين واحدي)، والتفكيك الموسمي. وقد أثبتت شبكات LSTM فعالية خاصة في السلاسل الزمنية متعددة المتغيرات، حيث يجب التقاط الارتباطات بين إشارات متعددة معًا — مثل الحرارة والرطوبة وسرعة الريح مجتمعةً للتنبؤ بالطلب على الطاقة.

التعرف على الكلام

يُعيّن التعرف التلقائي على الكلام (ASR) تسلسلًا من إطارات الميزات الصوتية — عادةً متجهات بنك مرشحات مِل اللوغاريتمية بطول 25 مِلّي ثانية، تُستخرج كل 10 مِلّي ثانية — إلى تسلسل من الأحرف أو الكلمات. وطولا المدخل والمخرج مختلفان: نطق مدته ثلاث ثوانٍ قد ينتج 300 إطار صوتي و40 حرفًا فقط. والأسوأ أن المحاذاة بين الإطارات ورموز المخرجات غير معلوم وقت التدريب.

خسارة التصنيف الزمني التوصيلي (CTC)، التي طرحها Graves وآخرون عام 2006، حلّت مشكلة المحاذاة دون الحاجة إلى نصوص مُوسمة يدويًا على مستوى الإطار. تُدخل CTC رمزًا فارغًا خاصًا، ثم تُهمّش على جميع حالات المحاذاة الصحيحة الممكنة بين تسلسل المخرجات وإطارات المدخلات، فتحسب الاحتمال الكلي لتسلسل المخرجات الصحيح على كل توزيعات الإطارات على الرموز. وبهذا يصبح التدريب من النصوص المكتوبة وحدها ممكنًا، ويتعلّم النموذج المحاذاة ضِمنًا.

خسارة CTC
\mathcal{L}_{\text{CTC}} = -\log\sum_{\pi\in\mathcal{B}^{-1}(y)} P(\pi \mid x)
تُعظّم خسارة CTC الاحتمال الإجمالي لجميع مسارات المحاذاة الصحيحة π التي تنهار — بدمج الرموز المكررة وحذف الفراغات — إلى النص الحقيقي y. يُشير Β−1(y) إلى مجموعة جميع مسارات CTC الصحيحة لمخرجات y. ويُحسب هذا بكفاءة بخوارزمية برمجة ديناميكية أمامية-خلفية.

شبكات LSTM العميقة ثنائية الاتجاه المدرَّبة بـ CTC وصلت بحلول عام 2015 إلى معدلات خطأ في الكلمات (WER) تقارب مستوى الإنسان على معايير الكلام النقي. والبنية المعيارية كانت تُكدّس من خمس إلى سبع طبقات LSTM ثنائية الاتجاه فوق الميزات الصوتية، مع تطبيع الدفعات والإسقاط العشوائي للتنظيم. وكان التعرف على الكلام من أوائل التطبيقات الواقعية التي أثبتت أن الشبكات المتكررة العميقة، إذا دُرّبت على آلاف الساعات من الصوت، تستطيع أن تجاري دقة الإنسان في المهام الضيّقة وتتجاوزها.

الانتباه: استعراض مبدئي

عنق زجاجة المشفر-فك الشفرة، والتسلسلية المتأصلة في الشبكات المتكررة، كانا يشيران إلى الحدّ نفسه: قد تكون المعلومة المهمة بعيدة جدًا في سلسلة الحالات المخفية بحيث لا يمكن استرجاعها بثقة. وآلية الانتباه، التي طرحها Bahdanau وآخرون عام 2015 للترجمة الآلية العصبية، عالجت هذا الحدّ مباشرةً.

بدلًا من ضغط المدخل في متجه سياق واحد، تتيح آلية الانتباه لفك الشفرة أن يحسب مجموعًا موزونًا على جميع الحالات المخفية للمشفر في كل خطوة فك. وتُحسب الأوزان (درجات الانتباه) بشبكة توافق صغيرة متعلّمة تقارن حالة فك الشفرة الحالية st بكل حالة مشفر hj. ومتجه السياق الناتج ct هو في جوهره عملية بحث ناعمة وقابلة للتفاضل في ذاكرة المشفر، مركّزة على أجزاء المدخل الأكثر صلة بالرمز الذي يُنتَج الآن.

انتباه بهدانو
\begin{aligned}e_{tj} &= a(s_{t-1},h_j)\\ \alpha_{tj} &= \frac{\exp(e_{tj})}{\sum_k \exp(e_{tk})}\\ c_t &= \sum_j \alpha_{tj}h_j\end{aligned}
تقيس درجة المحاذاة etj مدى تطابق حالة فك الشفرة st مع حالة المشفر hj. تُطبَّع الدرجات بـ softmax للحصول على أوزان الانتباه αtj التي مجموعها 1. متجه السياق ct هو المجموع الموزون لحالات المشفر، ثم يولّد فك الشفرة yt من (st, ct).

حسّن الانتباه جودة الترجمة تحسينًا كبيرًا في الجمل الطويلة، حيث كان متجه السياق الثابت لا يكفي. ولو رسمتَ مصفوفة أوزان الانتباه لرأيت أنماط محاذاة مفهومة للعين: في الترجمة من الإنجليزية إلى الفرنسية، ينتبه النموذج غالبًا إلى الكلمة المصدرية الصحيحة وهو يولّد كل كلمة هدف، حتى إذا اختلف ترتيب الكلمات بين اللغتين. كما أتاح الانتباه للنموذج أن يتعامل مع جمل بأي طول دون تدهور في الأداء، لأن فك الشفرة يملك دائمًا وصولًا مباشرًا إلى كل حالات المشفر المخفية أيًا كان طول التسلسل.

ثم عُمِّمت فكرة "الاسترجاع الموزون" هذه إلى أبعد من ذلك: ماذا لو لم يكن الانتباه إضافةً على الشبكات المتكررة، بل كان هو الآلية الأساسية؟ بنية المحوّل (الوحدة 9) تحذف التكرار حذفًا كاملًا وتضع مكانه الانتباه الذاتي — كل موضع ينتبه إلى جميع المواضع الأخرى في التسلسل نفسه في آنٍ واحد. والنتيجة نموذج يقبل التوازي أثناء التدريب (إذ لم تبقَ اعتمادية تسلسلية بين المواضع)، ويتوسّع إلى تسلسلات أطول بكثير، وصار أساسًا لكل نموذج لغوي كبير حديث تقريبًا.

متى تستخدم الشبكات المتكررة اليوم

تجاوزت المحوّلات الشبكات المتكررة في معظم المهام التي يتوفر فيها التسلسل الكامل (الترجمة، ومعالجة اللغات الطبيعية، وتحليل السلاسل الزمنية على نوافذ ثابتة). لكن الشبكات المتكررة تحتفظ بميزات عملية في الاستدلال المتدفق: معالجة خطوة واحدة في كل مرة بحساب O(1) لكل خطوة وذاكرة محدودة. مستشعر إنترنت أشياء يصنّف الأحداث في الزمن الحقيقي، أو نظام تركيب كلام يجب أن يولّد عيّنات صوتية بلا توقف، أو متحكّم روبوت يعالج تدفقات المستشعرات — كلها تستفيد من الكفاءة التسلسلية للشبكات المتكررة. وحين تكون البيانات قليلة أو الحساب مقيّدًا، يصبح عدد المعاملات الأصغر في GRU وLSTM ميزةً أخرى على المحوّلات الكبيرة.

النقاط الرئيسية
  • تُدرَّب نماذج اللغة بالتنبؤ بالرمز التالي (خسارة الإنتروبيا المتقاطعة) وتُقيَّم بالحيرة. تضغط الحالة المخفية للشبكة المتكررة البادئة في متجه ذي حجم ثابت، يُنتج توزيعًا على الرموز عبر softmax. أخذ العينات الانحداري الذاتي يولّد تسلسلات جديدة.
  • يستخدم تصنيف النصوص الحالة المخفية الأخيرة كتمثيل للتسلسل، مغذىً إلى رأس تصنيف. التسلسلات المتغيرة الطول تُعالج بالتبطين والإخفاء. الخسارة هي إنتروبيا متقاطعة على تسميات الفئات.
  • تستخدم نماذج التسلسل إلى التسلسل مشفرًا لضغط المدخل في متجه سياق وفكّ شفرة لتوليد المخرجات بشكل انحداري ذاتي. عنق الزجاجة ذو المتجه الواحد يحد من الأداء على التسلسلات الطويلة. البحث الحزمي يحسن جودة الاستدلال.
  • يعامل التنبؤ بالسلاسل الزمنية الإشارات العددية كتسلسلات، باستخدام خسارة MSE/MAE وطبقات مخرجات خطية. وتلتقط شبكات LSTM الاعتماديات الزمنية متعددة الخطوات والارتباطات بين المتغيرات بفعالية، وتتولّى المعالجة المسبقة (أخذ الفروق والتطبيع) أمر عدم الاستقرارية.
  • يُعيّن التعرف على الكلام تسلسلات الإطارات الصوتية إلى أحرف باستخدام خسارة CTC، التي تُهمَّش على جميع حالات المحاذاة الصحيحة. حققت شبكات BiLSTM العميقة معدلات خطأ في الكلمات قريبة من مستوى الإنسان بحلول عام 2015.
  • تتيح آلية الانتباه لفك الشفرة حساب مجموع موزون على جميع حالات المشفر في كل خطوة، متجاوزةً عنق الزجاجة. تعميم الانتباه للانتباه الذاتي — حيث ينتبه كل موضع لجميع المواضع الأخرى — أفضى مباشرةً إلى بنية المحوّل التي تتناولها الوحدة 9.
السابق LSTM وGRU نظرة عامة التالي آلية الانتباه