الرؤية الحاسوبية2015متوسط12 دقيقة قراءة

أَرِني، انتبِه وأخبرني: توليد وصف الصور بالانتباه البصري

Show, Attend and Tell: Neural Image Caption Generation with Visual Attention

Xu, K. · Ba, J. · Kiros, R. · Cho, K. · Courville, A. · Salakhutdinov, R. · Zemel, R. · Bengio, Y. — ICML

المشكلة

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

الإسهام

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

الأثر

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

تخيّل أنك مرشد سياحي تصف لوحة لزائر عبر الهاتف. الطريقة القديمة أشبه بأن تلقي نظرة واحدة على اللوحة، تحفظ كل شيء في ذهنك، ثم تتحدث لدقيقتين من الذاكرة. ستصيب الفكرة العامة لكنك ستخلط في التفاصيل — هل الكلب على اليسار أم اليمين؟ هل كان هناك قارب في الخلفية؟

ما يفعله هذا النموذج هو أنه يستبدل تلك النظرة الواحدة بـمؤشر وعدسة مكبِّرة: كلما نطقتَ كلمة، حرّكتَ العدسة نحو الجزء الذي تتحدث عنه. تقول «كلب»؟ تكبِّر على الكلب. تقول «قرص طائر»؟ العدسة تنتقل إلى القرص. لا حاجة لحفظ اللوحة كلها في رأسك — فقط انظر إلى ما يهمّك الآن.

عنق الزجاجة: متجه واحد لصورة بأكملها

قبل هذه الورقة، كان وصف الصور يسير بخطوتين بسيطتين:

  1. (عادةً VGGNet أو GoogLeNet) تعالج الصورة وتُخرج واحداً — ملخصاً رقمياً ثابت الطول للمشهد بأكمله.

  2. من نوع يستقبل ذلك المتجه مرة واحدة عند الخطوة الأولى، ثم يولّد الوصف كلمةً بكلمة معتمداً فقط على .

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

افتح في المختبر
اليسار: الطريقة القديمة تضغط الصورة في متجه واحد. اليمين: الانتباه يتيح للمفكك العودة والنظر إلى مناطق مختلفة عند كل كلمة.
تستيقظ التجربة عند وصولك…

الفكرة: دع المفكك يعود وينظر إلى الصورة

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

المُرمِّز (شبكة التفافية): بدلاً من أخذ السمات من الطبقة المتصلة بالكامل الأخيرة، نأخذها من طبقة التفافية أدنى — تحديداً الطبقة الرابعة من VGGNet. الناتج هو L=14×14=196L = 14 \times 14 = 196 من ، كل منها ببُعد D=512D = 512. كل متجه يحمل معلومات عن رقعة مكانية محددة من الصورة. تخيّلها كشبكة 14×14 مُسقَطة فوق الصورة، كل خلية فيها تحتوي وصفاً غنياً لمحتواها.

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

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

افتح في المختبر
انقر على أي مكوّن لترى دوره في خط المعالجة.
تستيقظ التجربة عند وصولك…

كيف يعمل الانتباه: التقييم والترجيح والتركيز

عند كل خطوة زمنية tt، يحتاج النموذج أن يقرر أيّ المناطق الـ196 في الصورة يركّز عليها. يتمّ ذلك عبر ثلاث مراحل:

المرحلة الأولى — درجة الطاقة: شبكة محاذاة صغيرة تأخذ كل متجه توصيف aia_i مع الحالة الخفية السابقة ht1h_{t-1}، وتُخرج قيمة عددية etie_{ti} تعبّر عن مدى ارتباط المنطقة ii بالخطوة الحالية. هذا هو — الآلية نفسها التي استخدمها بهداناو في الترجمة.

المرحلة الثانية — : تُطبَّع درجات الطاقة عبر softmax ليصبح مجموعها 1. بذلك يصبح αti\alpha_{ti} هو احتمال أن الموقع ii هو المكان الصحيح للنظر إليه عند توليد الكلمة tt.

المرحلة الثالثة — متجه السياق: متجه السياق z^t\hat{z}_t هو تركيبة موزونة من متجهات التوصيف. هذا المتجه — وهو ملخص ديناميكي للصورة يتغيّر مع كل كلمة — يُمرَّر إلى LSTM مع الكلمة السابقة.

eti=fatt(ai,ht1)=vatanh(Waai+Uaht1)e_{ti} = f_{att}(a_i, h_{t-1}) = v_a^\top \tanh(W_a a_i + U_a h_{t-1})
درجة الطاقة — ما مدى ارتباط المنطقة i بالكلمة الحالية؟aia_i = متجه التوصيف للمنطقة i · ht1h_{t-1} = الحالة الخفية السابقة للمُفكِّك · WaW_a وUaU_a وvav_a = معاملات مُتعلَّمة لشبكة المحاذاة
αti=exp(eti)k=1Lexp(etk)\alpha_{ti} = \frac{\exp(e_{ti})}{\sum_{k=1}^{L} \exp(e_{tk})}
وزن الانتباه — احتمال التركيز بعد التطبيعsoftmax على جميع المواقع الـ196 · مجموع αti\alpha_{ti} يساوي 1 على المواقع · وزن أعلى = تركيز أكبر على تلك المنطقة
z^t=ϕ({ai},{αi})=i=1Lαtiai\hat{z}_t = \phi(\{a_i\}, \{\alpha_i\}) = \sum_{i=1}^{L} \alpha_{ti} a_i
متجه السياق — ملخص الصورة الخاص بكل كلمةمتوسط موزون لجميع متجهات التوصيف · يتغير في كل خطوة زمنية · المُفكِّك يرى «منظوراً» جديداً من الصورة مع كل كلمة يولّدها
افتح في المختبر
تابع آلية الانتباه خطوة بخطوة: شاهد كيف تُضاء مناطق مختلفة بينما يولّد النموذج كل كلمة.
تستيقظ التجربة عند وصولك…

صيغتان: الانتباه الناعم مقابل الانتباه الصلب

تقترح الورقة صيغتين لآلية الانتباه، لكل منهما مفاضلاتها:

الانتباه الناعم (الحتمي) يحسب المتوسط الموزون لـجميع متجهات التوصيف. كل منطقة تُساهم في الناتج، لكن المناطق ذات أوزان α\alpha الأعلى تُساهم أكثر. هذه الصيغة قابلة للتفاضل بالكامل — يمكن تدريبها بـ المعتاد. تخيّل أنك تنظر إلى اللوحة كلها عبر مرشّح يُسطِّع المناطق المهمة ويُخفت الباقي.

الانتباه الصلب (العشوائي) يسحب عيّنة من منطقة واحدة وفق توزيع α\alpha. في كل خطوة زمنية، يختار النموذج موقعاً واحداً بالضبط sts_t من الشبكة ويستخدم asta_{s_t} فقط كسياق. هذا أشبه بأن تسلّط كشّافاً على جزء واحد من اللوحة وتتجاهل كل ما عداه. ولأن عملية السحب العشوائي ليست قابلة للتفاضل، يحتاج الانتباه الصلب إلى بخوارزمية REINFORCE — وهي أسلوب من يعامل قرارات الانتباه كسلسلة أفعال متتالية.

الصيغة الناعمة أبسط في التدريب وأكثر استقراراً. الصيغة الصلبة قد تحقق أداءً أفضل قليلاً لأنها تفرض تركيزاً أحدّ، لكن الثمن هو أعلى أثناء التدريب.

افتح في المختبر
بدّل بين الانتباه الناعم والصلب لترى كيف يختار كلٌّ منهما مناطق الصورة. الناعم يمزج جميع المناطق؛ الصلب يختار واحدة.
تستيقظ التجربة عند وصولك…

التنظيم ثنائي العشوائية: لا تتجاهل أي جزء من الصورة

بحكم التصميم، أوزان الانتباه αti\alpha_{ti} في كل خطوة زمنية مجموعها 1 على جميع المواقع — أي أن تركيز كل كلمة يمثّل توزيعاً احتمالياً صحيحاً. لكن لا شيء يمنع النموذج من أن يظل دائماً ينظر إلى المناطق نفسها ويتجاهل بقية الصورة.

لحل هذه المشكلة، يُدخل المؤلفون ما يُسمى : إلى جانب قيد الصفوف (iαti=1\sum_i \alpha_{ti} = 1)، يُضيفون عقوبة تدفع مجموع الأعمدة ليكون قريباً من 1 أيضاً (tαti1\sum_t \alpha_{ti} \approx 1). الفكرة أن كل منطقة في الصورة يجب أن تحظى بحصة عادلة من الانتباه على مدار الوصف الكامل — لا منطقة يُسمح بتجاهلها كلياً.

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

Ld=λi=1L(1t=1Cαti)2L_d = \lambda \sum_{i=1}^{L} \left(1 - \sum_{t=1}^{C} \alpha_{ti}\right)^2
عقوبة العشوائية الثنائية — تدفع نحو تغطية كاملةتُضاف إلى دالة الخسارة الرئيسية · CC = طول الوصف · LL = عدد مناطق الصورة · تعاقب المناطق التي ينحرف إجمالي انتباهها عبر الوصف عن 1
افتح في المختبر
شاهد كيف يوزّع التنظيم ثنائي العشوائية الانتباه على جميع مناطق الصورة أثناء توليد الوصف.
تستيقظ التجربة عند وصولك…

بوابة β: متى يحتاج النموذج أن ينظر إلى الصورة؟

ليست كل كلمة في الوصف تحتاج إلى معلومات من الصورة. الكلمات الوظيفية مثل «في» و«على» و«من» يحددها السياق اللغوي والنحو لا محتوى الصورة. لذلك تُقدِّم الورقة قيمة بوابة مُتعلَّمة βt=σ(fβ(ht1))\beta_t = \sigma(f_\beta(h_{t-1})) تتحكّم في قوة متجه السياق: z^t=βtiαtiai\hat{z}_t = \beta_t \sum_i \alpha_{ti} a_i. حين تقترب β\beta من 1، يعتمد LSTM بشكل كبير على الصورة. وحين تقترب من 0، يعتمد على السياق اللغوي وحده.

فكرة بسيطة لكن فعّالة جداً: النموذج يتعلّم بنفسه متى يحتاج أن ينظر إلى الصورة ومتى يكتفي بأنماط اللغة. عند توليد حرف جر مثل «في»، تنخفض β\beta لأن الصورة لا تفيد هنا. وعند توليد كلمة مثل «كلب»، ترتفع β\beta لأن النموذج يحتاج أن يرى الشيء الذي يتحدث عنه.

تدريب النموذج

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

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

كلا النموذجين يستخدمان المُرمِّز الالتفافي نفسه (VGGNet المُدرَّب مسبقاً على ImageNet)، والمُفكِّك هو LSTM بـ512 وحدة خفية. الحالة الخفية الأولية وحالة الخلية في LSTM تُحسبان من متوسط متجهات التوصيف عبر إسقاطات خطية مُتعلَّمة.

آلية الانتباه برمجياً

الانتباه الناعم لوصف الصور، خطوة بخطوةpython

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

import numpy as np

def softmax(x):
    e = np.exp(x - x.max(axis=-1, keepdims=True))
    return e / e.sum(axis=-1, keepdims=True)

def attention(annotations, h_prev, W_a, U_a, v_a):
    """
    annotations: (L, D) — 196 متجه توصيف، كل منها ببُعد 512
    h_prev:      (H,)   — الحالة الخفية السابقة للمُفكِّك
    W_a:         (D, A) — إسقاط متجه التوصيف إلى بُعد المحاذاة
    U_a:         (H, A) — إسقاط الحالة الخفية إلى بُعد المحاذاة
    v_a:         (A,)   — متجه المحاذاة
    """
    # المرحلة 1: درجات الطاقة — ما مدى ارتباط كل منطقة؟
    energy = np.tanh(annotations @ W_a + h_prev @ U_a)  # (L, A)
    energy = energy @ v_a                                 # (L,)

    # المرحلة 2: تطبيع إلى أوزان انتباه
    alpha = softmax(energy)                               # (L,) مجموعها 1

    # المرحلة 3: المجموع الموزون = متجه السياق
    context = alpha @ annotations                         # (D,)

    return context, alpha

# عند كل خطوة، يتلقى LSTM:
#   المدخل = [تضمين_الكلمة(الكلمة_السابقة); متجه_السياق]
# متجه السياق يتغير في كل خطوة — «منظور» جديد من الصورة.
# هذا هو الفرق الجوهري عن المتجه الثابت في نموذج Show and Tell.

النتائج وقابلية التفسير

قُيِّم النموذج على ثلاث مجموعات بيانات قياسية في وصف الصور: Flickr8k وFlickr30k وMS COCO، باستخدام مقياسي وMETEOR. كلا نموذجي الانتباه — الناعم والصلب — تفوّقا على نموذج أَرِني وأَخبرني الذي لا يستخدم انتباهاً، وهذا يؤكد أن الانتباه يقدّم تحسيناً حقيقياً وليس مجرد تعقيد إضافي.

لكن النتيجة الأبرز لم تكن في الأرقام — بل في خرائط الانتباه. حين عرض المؤلفون أوزان α\alpha عند كل خطوة من التوليد، ظهر بوضوح أن النموذج يتعلّم فعلاً أن يثبّت نظره على الأشياء الصحيحة: عند توليد كلمة «طائر»، يُسلَّط الانتباه على الطائر، وعند توليد «ماء»، ينتقل التركيز إلى الماء. كان هذا أول دليل مقنع على أن الانتباه في الشبكات العصبية يعكس شيئاً يستطيع الإنسان فهمه وتفسيره.

افتح في المختبر
انقر على كل كلمة لترى أين يركّز النموذج انتباهه على شبكة الصورة.
تستيقظ التجربة عند وصولك…

لماذا كانت هذه الورقة مهمة

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

  1. 2014

    انتباه بهداناو (معالجة اللغة)

    قدّم الانتباه الجمعي للترجمة الآلية. المُفكِّك ينتبه لكلمات مختلفة من المصدر عند كل خطوة. ألهم مباشرةً ورقة «أَرِني، انتبه وأخبرني».

  2. 2015

    أَرِني وأَخبرني (بدون انتباه)

    مُرمِّز التفافي يُخرج متجهاً واحداً، ومُفكِّك LSTM. لا انتباه — المُفكِّك يرى الصورة مرة واحدة فقط. ورقة «أَرِني، انتبِه وأخبرني» حسّنت هذا النهج.

  3. 2015

    أَرِني، انتبِه وأخبرني

    هذه الورقة. أول انتباه بصري لوصف الصور — صيغتان ناعمة وصلبة، تنظيم ثنائي العشوائية، وخرائط انتباه قابلة للتفسير.

  4. 2016

    الإجابة البصرية عن الأسئلة (VQA)

    امتد الانتباه ليشمل الإجابة عن أسئلة حول الصور. النموذج ينتبه لمناطق الصورة المرتبطة بالسؤال، مستنداً إلى إطار الانتباه ذاته.

  5. 2017

    المُحوِّل (الانتباه الذاتي)

    الانتباه الذاتي حلّ محل التكرار بالكامل. القفزة المفاهيمية من الترميز الثابت إلى الاستعلام الديناميكي — التي بدأها الانتباه البصري — أصبحت ركيزة الذكاء الاصطناعي الحديث.

  6. 2021

    CLIP (الرؤية واللغة على نطاق واسع)

    تعلّم تبايني بين الصور والنصوص على نطاق ضخم. ورث رؤية الربط بين التمثيلات البصرية واللغوية التي أسّستها ورقة «أَرِني، انتبِه وأخبرني».

المرجعXu, Ba, Kiros, Cho, Courville, Salakhutdinov, Zemel, Bengio. Show, Attend and Tell: Neural Image Caption Generation with Visual Attention. ICML, 2015.

مصطلحات هذه الورقة