الذكاء الاصطناعي

ما هو تضمين الكلمات | Word2Vec | قفاز

لقد برع البشر دائمًا في فهم اللغات. من السهل على البشر فهم العلاقة بين الكلمات، لكن بالنسبة لأجهزة الكمبيوتر، قد لا تكون هذه المهمة بسيطة. 

على سبيل المثال، نحن البشر نفهم كلمات مثل الملك والملكة، الرجل والمرأة، النمر والنمرة، لدينا نوع معين من العلاقة بينهما، ولكن كيف يمكن للكمبيوتر اكتشاف ذلك؟

تعد عمليات تضمين الكلمات في الأساس شكلاً من أشكال تمثيل الكلمات التي تربط الفهم البشري للغة بفهم الآلة. 

لقد تعلموا تمثيل النص في فضاء متعدد الأبعاد حيث الكلمات التي لها نفس المعنى لها تمثيل مماثل. 

وهذا يعني أن كلمتين متشابهتين يتم تمثيلهما بواسطة متجهات متشابهة تقريبًا ويتم وضعها بشكل وثيق جدًا في مساحة متجهة. هذه ضرورية لحل معظم مشاكل معالجة اللغة الطبيعية.

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

يعد Word2Vec أحد الأساليب الأكثر شيوعًا لتعلم تضمين الكلمات باستخدام الشبكة العصبية الضحلة. 

تم تطويره بواسطة توماس ميكولوف في عام 2013 في جوجل.

لماذا يتم استخدام تضمين الكلمات؟

كما نعلم أن نماذج التعلم الآلي لا يمكنها معالجة النص، لذا نحتاج إلى اكتشاف طريقة لتحويل هذه البيانات النصية إلى بيانات رقمية. تمت مناقشة تقنيات مثل Bag of Words وTF-IDF سابقًا والتي يمكن أن تساعد في تحقيق استخدام هذه المهمة.

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

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

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

ومع ذلك، فإن تشفير الأعداد الصحيحة هو إجراء تعسفي لأنه لا يلتقط أي علاقة بين الكلمات. 

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

نظرًا لعدم وجود علاقة بين تشابه أي كلمتين وتشابه ترميزاتهما، فإن تركيبة وزن الميزة هذه ليست ذات معنى.

وبالتالي، باستخدام تضمينات الكلمات، يتم تجميع الكلمات المتقاربة في المعنى بالقرب من بعضها البعض في الفضاء المتجه. على سبيل المثال، أثناء تمثيل كلمة مثل ضفدع، فإن أقرب جار للضفدع سيكون الضفادع، والضفادع، وليتوريا. هذا يعني أنه لا بأس بالنسبة للمصنف ألا يرى كلمة Litoria بل ضفدع فقط أثناء التدريب، ولن يتم التخلص من المصنف عندما يرى Litoria أثناء الاختبار لأن المتجهات المكونة من كلمتين متشابهة.

 كما أن تضمين الكلمات يتعلم العلاقات. يمكن إضافة الاختلافات المتجهة بين زوج من الكلمات إلى متجه كلمة آخر للعثور على الكلمة المشابهة. على سبيل المثال، “رجل” – “امرأة” + “ملكة” ≈ “ملك”.

ما هو word2Vec؟

Word2vec هي طريقة لإنشاء تضمينات الكلمات بكفاءة باستخدام شبكة عصبية ذات طبقتين. 

تم تطويره بواسطة توماس ميكولوف وآخرون. في Google في عام 2013 كرد فعل لجعل التدريب على التضمين القائم على الشبكة العصبية أكثر كفاءة ومنذ ذلك الحين أصبح المعيار الفعلي لتطوير تضمين الكلمات المدرب مسبقًا.

مدخلات word2vec عبارة عن مجموعة نصية ومخرجاتها عبارة عن مجموعة من المتجهات المعروفة باسم ناقلات الميزات التي تمثل الكلمات في تلك المجموعة. على الرغم من أن Word2vec ليس شبكة عصبية عميقة، إلا أنه يحول النص إلى شكل رقمي يمكن للشبكات العصبية العميقة فهمه.

تؤدي الدالة الهدف Word2Vec إلى أن تحتوي الكلمات التي لها سياق مشابه على عمليات تضمين مشابهة. 

وبالتالي، في هذا الفضاء المتجه، تكون هذه الكلمات قريبة جدًا. رياضياً، جيب تمام الزاوية (Q) بين هذه المتجهات يجب أن يكون قريباً من 1، أي زاوية قريبة من 0.

Word2vec ليس خوارزمية واحدة، ولكنه مزيج من تقنيتين – CBOW (حقيبة الكلمات المستمرة) ونموذج Skip-gram.

 كلتا هاتين الشبكتين عبارة عن شبكات عصبية ضحلة تقوم بتعيين الكلمة (الكلمات) إلى المتغير المستهدف وهو أيضًا كلمة (كلمات). تتعلم كلتا التقنيتين الأوزان التي تعمل بمثابة تمثيلات متجهة للكلمات. 

نموذج حقيبة الكلمات المستمرة (CBOW)

يتنبأ CBOW باحتمالية ظهور كلمة ما في ضوء الكلمات المحيطة بها. يمكننا أن نعتبر كلمة واحدة أو مجموعة من الكلمات. ولكن من أجل التبسيط، سنأخذ كلمة سياقية واحدة ونحاول التنبؤ بكلمة مستهدفة واحدة.

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

 للتبسيط، سنعتبر أن المجموعة تحتوي على جملة واحدة فقط، وهي “إنهم يعيشون في المنزل”.

أولاً، نقوم بتحويل كل كلمة إلى نموذج ترميز واحد ساخن. وأيضًا، لن نأخذ في الاعتبار جميع الكلمات الموجودة في الجملة، ولكننا سنأخذ فقط كلمات معينة موجودة في النافذة.

 على سبيل المثال، بالنسبة لنافذة بحجم يساوي ثلاثة، فإننا نأخذ في الاعتبار ثلاث كلمات فقط في الجملة.

 يجب توقع الكلمة الوسطى ويتم إدخال الكلمتين المحيطتين بها في الشبكة العصبية كسياق.

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

عادة، نأخذ حجم نافذة يبلغ حوالي 8-10 كلمات ويبلغ حجم المتجه 300.

نموذج تخطي جرام

عادةً ما تحاول بنية نموذج Skip-gram تحقيق عكس ما يفعله نموذج CBOW. يحاول التنبؤ بكلمات السياق المصدر (الكلمات المحيطة) بالنظر إلى الكلمة المستهدفة (الكلمة المركزية)

إن عمل نموذج Skip-gram يشبه إلى حد كبير نموذج CBOW ولكن هناك اختلاف فقط في بنية شبكته العصبية وطريقة إنشاء مصفوفة الوزن كما هو موضح في الشكل أدناه:

بعد الحصول على مصفوفة الوزن، تكون خطوات الحصول على تضمين الكلمات هي نفسها خطوات CBOW.

والآن أي واحدة من الخوارزميتين يجب أن نستخدمها لتنفيذ word2vec؟ بالنسبة للأجسام الكبيرة ذات الأبعاد الأعلى، فمن الأفضل استخدام سكيب جرام، ولكن تدريبها بطيء.

 في حين أن CBOW أفضل بالنسبة للمجموعات الصغيرة وأسرع في التدريب أيضًا.

قفاز

GloVe (المتجهات العامة لتمثيل الكلمات) هي طريقة بديلة لإنشاء تضمينات الكلمات.

 يعتمد على تقنيات تحليل المصفوفات في مصفوفة سياق الكلمة.

 يتم إنشاء مصفوفة كبيرة من المعلومات المتزامنة وتقوم بإحصاء كل “كلمة” (الصفوف)، وعدد المرات التي نرى فيها هذه الكلمة في بعض “السياق” (الأعمدة) في مجموعة كبيرة.

 عادة، نقوم بفحص مجموعتنا بالطريقة التالية: لكل مصطلح، نبحث عن مصطلحات السياق في بعض المناطق المحددة بواسطة حجم النافذة قبل المصطلح وحجم النافذة بعد المصطلح. كما أننا نعطي وزنًا أقل للكلمات البعيدة.

عدد “السياقات” كبير بالطبع، لأنه في الأساس اندماجي في الحجم. ومن ثم، نقوم بتحليل هذه المصفوفة للحصول على مصفوفة ذات أبعاد أقل، حيث ينتج عن كل صف الآن تمثيل متجه لكل كلمة. 

بشكل عام، يتم ذلك عن طريق تقليل “خسارة إعادة الإعمار”. تحاول هذه الخسارة العثور على تمثيلات ذات أبعاد أقل والتي يمكن أن تفسر معظم التباين في البيانات عالية الأبعاد.

من الناحية العملية، نستخدم كلاً من GloVe وWord2Vec لتحويل النص إلى أجزاء مضمنة وكلاهما يقدم أداءً مشابهًا.

 على الرغم من أننا في التطبيقات الحقيقية نقوم بتدريب نموذجنا على نص ويكيبيديا بحجم نافذة يبلغ حوالي 5-10. ويبلغ عدد الكلمات في المجموعة حوالي 13 مليون، وبالتالي يستغرق الأمر قدرًا كبيرًا من الوقت والموارد لإنشاء هذه التضمينات.

 لتجنب ذلك، يمكننا استخدام ناقلات الكلمات المدربة مسبقًا والتي تم تدريبها بالفعل ويمكننا استخدامها بسهولة.

 فيما يلي الروابط لتنزيل Word2Vec أو GloVe المدربين مسبقًا.


المصدر: mygreatlearning

قد يهمك:

أفضل استضافة مواقع

أفضل استضافة ووردبريس

قوالب ووردبريس

سيرفر بيع متابعين

ما هو الذكاء الاصطناعي

ما هو شات جي بي تي

ما هو التسويق الإلكتروني

دعم سناب شات

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *