Attention Mechanism

n web 28
الذكاء الاصطناعي

Attention Mechanism

المقدمة: ثورة ال Attention Mechanism

الـ Attention هو آلية موجودة في الDeep Learning تُستخدم بشكل رئيسي في NLP Models مثل Transformer Model. ببساطة، الـ Attention يسمح لل model أن يركز على أجزاء معينة من ال inputs الي دخلاله (مثل الكلمات في جملة) بشكل أكبر أو أقل عند توليد ال outputs. وده بيشبه إلى حد ما كيفية انتباه الإنسان لمعلومة معينة في محادثة أو نص ويعطيها أهمية أكبر بناءً على سياق المحادثة أو النص.

كيف يعمل الـ Attention؟

الـ Attention يعتمد على مبدأ بسيط للغاية “لا تحتاج كل الأجزاء في ال inputs إلى نفس الاهتمام أو التركيز”. على سبيل المثال، لما تقرأ جملة مثل “القط يأكل الطعام”، في بعض الأحيان ممكن تحتاج إلى إعطاء المزيد من الانتباه إلى “القط” و”يأكل” لفهم الجملة بشكل أفضل بدلاً من إعطاء نفس القدر من الانتباه إلى “الطعام”.

الفرق بين الـ Attention وال models السابقة:

قبل ظهور الـ Attention، كانت الmodels زي ال (RNN) وال (LSTM) تستخدم طرقًا للتعامل مع التسلسلات (Sequential Data)، لكن هذه الطرق كانت تعتمد على معالجة المعلومات بشكل تسلسلي،يعني كانت تفقد بعض المعلومات أثناء المعالجة الطويلة أو لما بيكون في تسلسل كبير.
لكن مع ظهور الـ Attention، تغيرت الأمور بشكل كبير. الـ Attention يتيح لل model أن يركز على أجزاء مختلفة من التسلسل في نفس الوقت، دون الحاجة لمعالجة كل عنصر بشكل تسلسلي.

الـ Attention في الـ Transformer:

ال Transformer Model الذي قدمه Vaswani وآخرون في 2017، استخدم الـ Attention بشكل مبتكر ليحل محل RNNs Models. الفكرة الأساسية هي أنه بدلاً من معالجة التسلسل كلمة تلو الأخرى كما يحدث في RNN أو LSTM، يتم معالجة كل الكلمات في التسلسل بشكل متوازي.
داخل الـ Transformer، يتم استخدام الـ Self-Attention، وهي نوع من الـ Attention يسمح لل model أن يقيّم علاقات كل كلمة مع الكلمات الأخرى في نفس الجملة. بمعنى آخر، يمكن لكل كلمة أن تكون مؤثرة في جميع الكلمات الأخرى في الجملة، وبالتالي يساعد هذا في فهم السياق بشكل أفضل.

الفائدة الكبيرة للـ Attention:

الـ Attention قدم نقلة في المجال لأنه يحسن القدرة على معالجة التسلسلات الطويلة. بدلاً من الاعتماد على الأنماط التكرارية، يسمح الـ Attention لل model بالتركيز على الأجزاء الأكثر أهمية في الجملة أو النص، مما يجعل فهم السياق بشكل دقيق أسهل وأسرع. مثلاً، في الجملة “القط يأكل الطعام في المطبخ”، يمكن لل model أن يركز على “القط” و”يأكل” لفهم الفعل بشكل أفضل قبل أن يعطي الاهتمام لبقية الجملة.

كيف غيّر الـ Attention المجال؟

الـ Attention كان له تأثير هائل على تطور ال models في مجال الذكاء الاصطناعي، خاصة في معالجة اللغة الطبيعية. قبل ذلك، كانت ال models زي RNN وLSTM تقدم حلولًا جيدة ولكنها كانت محدودة في قدرتها على التعامل مع تسلسلات طويلة ومعقدة.
مع دخول الـ Attention، تم تحسين دقة ال models بشكل ملحوظ وتمكن الباحثون والمطورون من بناءmodels ضخمة زي GPT وBERT وT5 التي تستخدم الـ Attention بشكل أساسي.
بشكل عام، قدم الـ Attention تحول كبيرا في الطريقة التي نفهم بها النصوص ونتعامل مع البيانات التسلسلية، وده أدى إلى تطوير تقنيات أفضل وأكثر دقة في العديد من التطبيقات التي تعتمد على الذكاء الاصطناعي.

الأساس الرياضي لل Attention

لفهم كيفية عمل ال Attention Mechanism، هنبدا بمثال يوضح كيفية عمل ال attention رياضيا :
المثال: ترجمة جملة من اللغة الإنجليزية إلى اللغة العربية باستخدام attention mechanism :
الجملة الإنجليزية ” The cat sat on the mat.”

الخطوات:
1. تمثيل الكلمات كمتجهات (Word Embeddings) :

يتم تحويل كل كلمة في الجملة إلى متجه رياضي باستخدام تقنيات مثل Word2Vec أو GloVe. على سبيل المثال:
⦁ “The” → [0.1, 0.2, 0.3]
⦁ “cat” → [0.4, 0.5, 0.6]
⦁ “sat” → [0.7, 0.8, 0.9]
⦁ “on” → [0.1, 0.2, 0.3]
⦁ “the” → [0.1, 0.2, 0.3]
⦁ “mat” → [0.4, 0.5, 0.6]

2.ال Vector Representations

يتم تحويل كل عنصر من عناصر الإدخال إلى ثلاث متجهات رئيسية:
⦁ (Query): بيحدد ما يبحث عنه العنصر الحالي.
⦁ (Key): بيمثل ما يقدمه العنصر للآخرين.
⦁ (Value): بيحتوي على المعلومات الفعلية المراد نقلها.

يتم إنشاء هذه الRepresentation عبر ضرب ال vectorsالأصلية في weight matrix الي اتعلمها ال model أثناء التدريب.

الكود:
3. Attention Scores

أولا حساب ال Dot Product، يتم حساب ال Dot Product بين Query Vector و Key Vector هذا الحساب يُظهر مدى التشابه بين ال query وال. key

⦁ درجة الانتباه بين

The”, ” cat” = Query “The” × “cat” Key
The” ,” sat” = Query “The” × “sat” Key
⦁ وهكذا لبقية الكلمات.

3. تعديل Attention Score :


بعد حساب ال Dot Product ، يتم تعديل الناتج بتقسيمه على الجذر التربيعي لعدد الأبعاد في Query and Key Vectors .العملية دي بتهدف إلى تجنب تضخيم القيم لما تكون الأبعاد كبيرة.

حيث:
⦁ dk هو عدد الأبعاد في Query and Key Vectors .

5. تطبيقfunction Softmax:

في النهاية، تُستخدم function Softmax لتحويل Attention Scores إلى قيم احتمالية، بحيث يتم تطبيع جميع القيم لتكون بين 0 و 1، مما يسهل استخدامها في المراحل التالية من الحسابات.

الكود:
6. حساب تمثيل السياق (Contextual Representation) :

يتم ضرب كل قيمة في درجة انتباهها المقابلة، ثم جمع النتائج للحصول على تمثيل سياقي لكل كلمة.

7. توليد الترجمة (Translation Generation) :

يتم استخدام التمثيلات السياقية لتوليد الترجمة باللغة العربية، كلمة بكلمة، بناءً على السياق المحسوب.

Multi-Head Attention

أهم ما يميز attention mechanism هو استخدامها ل Multi-Head Attention ، حيث يتم تشغيل عدة مسارات attention بالتوازي لالتقاط أنماط مختلفة.

كيف يعمل ال Multi-Head Attention ؟

في ال Single Attention يتم حساب ال attention بين Query Vector and Key Vector على مستوى واحد فقط. لكن في ال Multi-Head Attention يتم تقسيم (Query)، (Key)، و (Value) إلى عدة أجزاء (Multi-head)، ويتم حساب ال attention بشكل Parallel لكل جزء، بعد كده يتم دمج النتائج للحصول على representation شامل.

الخطوات الرئيسية في ال Multi-Head Attention:

⦁ تقسيم المتجهات (Splitting the Vectors) : يتم تقسيم Query Vector وKey Vector وValue Vector إلى عدة أجزاء أصغر (Multi-heads). على سبيل المثال، إذا كان لدينا 8 Multi-head، فيتم تقسيم الVectors إلى 8 أجزاء، بحيث يكون لكل head جزء خاص به من البيانات.
⦁ حساب الانتباه لكل رأس : (Compute Attention for Each Head) لكل head، يتم حساب ال attention باستخدام ال Dot Product بين Query Vector و Key Vector، ثم يتم تطبيع النتيجة باستخدام Softmax Function للحصول على ال Weights المناسبة لكل جزء.
⦁ دمج النتائج : (Concatenate the Results) بعد حساب ال attention لكل head، يتم دمج النتائج المترتبة من جميع ال multi heads . يتم ذلك عن طريق ربط (Concatenation) الأجزاء الناتجة، ثم تطبيق linear Transformation للحصول على النتيجة النهائية.

الفوائد الرئيسية لل multi head attention :

⦁ قوة ال parallelization : يسمح ال parallel computing ل multi heads بتسريع العملية وزيادة كفاءة ال model في التعامل مع بيانات متعددة الأبعاد.
⦁ القدرة على التقاط أنماط متعددة: كلhead في ال multi head attention يركز على جانب مختلف من البيانات. على سبيل المثال، يمكن أن يلتقط head علاقة معينة بين الكلمات في الجملة، بينما يمكن head آخر أن يلتقط علاقة مختلفة.
⦁ تحسين الأداء: بفضل دمج المعلومات من عدة heads، يصبح ال model أكثر قدرة على التعلم من البيانات المعقدة والمتنوعة.

معادلة ال Multi Head Attention :
⦁ ال Linear projections for queries, keys, and values :

يتم إسقاط كل من (query) و (key) و (value) إلى فضاءات فرعية ذات أبعاد أقل، حيث يمثل كل headمن هذه الإسقاطات. إذا كان لدينا h heads، يتم إسقاط query و key و valueإلى فضاءات فرعية متعددة.
لكل رأس i، المعادلات هي كما يلي:

حيث :
⦁ ال attention باستخدام ال Dot Product المقايَس لكل head :

لكل head i بنقوم بحساب attention score باستخدام ال query وال key، ثم نطبق softmax function للحصول على attention weights :

حيث :
⦁ دمج مخرجات جميع ال heads :

بعد حساب ال attention لكل head، يتم دمج النتائج معًا:

⦁ حساب Final linear projection :
حيث :
الكود:
الخلاصة

أل attention mechanism مش مجرد تقنية حديثة، بل تعتبر نقلة نوعية في الذكاء الاصطناعي، حيث مكّنت models مرنة وقوية تفهم السياق وتولد نصوصًا بدقة. قدرتها على محاكاة الانتباه البشري عبر الجمع بين التركيز المحلي وفهم السياق الأوسع جعلتها الأساس لأنظمة الذكاء الاصطناعي الحديثة.

اترك أفكارك هنا