في المقال السابق ، رأينا بعض العيوب الرئيسية المشتركة بين جميع مناهج التوجيه الأساسية. للتغلب على هذه القيود ، تم ابتكار طرق لتعلم التمثيلات منخفضة الأبعاد. اكتسبت هذه الأساليب ،المعروفة بالتمثيلات الموزعة، زخماً في السنوات الست إلى السبع الماضية. بحيث يتم إستخدام معماريات الشبكة العصبية لإنشاء تمثيلات كثيفة ومنخفضة الأبعاد للكلمات والنصوص. لكن قبل أن ننظر في هذه الأساليب ، نحتاج إلى فهم بعض المصطلحات الأساسية:
التمثيلات الموزعة (Distributed Representations)
التشابه التوزيعي (Distributional similarity)
الفكرة هنا أنه يمكن فهم معنى الكلمة من السياق الذي تظهر فيه الكلمة. يُعرف هذا أيضًا باسم السياق الضمني (connotation) : يتم تعريف المعنى حسب السياق. هذا يتعارض مع السياق الحرفي (denotation) : المعنى الحرفي لأي كلمة. على سبيل المثال: NLP rocks “. المعنى الحرفي لكلمة “rocks ” هو “الحجارة” ، ولكن من السياق ، يتم استخدامها للإشارة إلى شيء جيد وعصري.
فرضية التوزيع (Distributional hypothesis)
في علم اللغة ، يفترض هذا أن الكلمات التي تحدث في سياقات متشابهة لها معاني متشابهة. على سبيل المثال ، تحدث الكلمات الإنجليزية “Dog” و “Cat” في سياقات مماثلة. وبالتالي ، وفقًا لفرضية التوزيع ، يجب أن يكون هناك تشابه قوي بين معاني هاتين الكلمتين. الآن في نماذج فضاء المتجه ، يتم تمثيل معنى الكلمة بواسطة المتجه. وبالتالي ، إذا تحدثت كلمتان غالبًا في سياق مشابه ، فيجب أن تكون متجهات التمثيل المقابلة لها أيضًا قريبة من بعضها البعض.
التمثيل التوزيعي (Distributional representation)
يشير هذا إلى مخططات التمثيل التي يتم الحصول عليها بناءً على توزيع الكلمات من السياق الذي تظهر فيه الكلمات. تستند هذه المخططات على فرضيات التوزيع. يتم الحصول على الخاصية التوزيعية من السياق. رياضيًا ، تستخدم مخططات التمثيل التوزيعي متجهات عالية الأبعاد لتمثيل الكلمات.
يتم الحصول على هذه المتجهات من مصفوفة التواجد المشترك (co-occurrence matrix) التي تلتقط التكرار المشترك للكلمة والسياق. أبعاد هذه المصفوفة تساوي حجم مفردات المجموعة. المخططات الأربعة التي رأيناها في المقال السابق- خط الترميز الأحادي ، حقيبة الكلمات ، حقيبة من ن-غرام ، و تكرار المصطلح – تكرار المستند العكسي تقع جميعها تحت مظلة التمثيل التوزيعي.
التمثيل الموزع (Distributed representation)
وهو أيضًا يستند إلى فرضية التوزيع. كما تمت مناقشته في الفقرة السابقة ، فإن المتجهات في التمثيل التوزيعي هي أبعاد عالية جدًا ومتفرقة. هذا يجعلهم غير فعالين من الناحية الحسابية ويعيق التعلم. للتخفيف من ذلك ، تضغط مخططات التمثيل الموزعة على الأبعاد بشكل كبير. ينتج عن هذا متجهات مضغوطة (أي ذات أبعاد منخفضة) وكثيفة (أي بالكاد أي أصفار). تُعرف مساحة المتجه الناتجة بالتمثيل الموزع. جميع المخططات اللاحقة التي سنناقشها في هذا المقال هي أمثلة على التمثيل الموزع.
التضمين (Embeddings)
بالنسبة لمجموعة الكلمات في بيانات ما ، فإن التضمين هو تعيين بين فضاء المتجه الفادم من التمثيل التوزيعي إلى فضاء المتجه القادم من التمثيل الموزع.
دلالات المتجهات (Vector semantics)
يشير هذا إلى مجموعة طرق معالجة اللغة الطبيعية التي تهدف إلى تعلم تمثيلات الكلمات بناءً على الخصائص التوزيعية للكلمات في مجموعة كبيرة.
الآن بعد أن أصبح لديك فهم أساسي لهذه المصطلحات ، يمكننا الانتقال إلى طريقتنا الأولى: تضمينات الكلمة.
تضمينات الكلمة (Word Embeddings)
ماذا يعني عندما نقول أن التمثيل النصي يجب أن يلتقط “أوجه التشابه التوزيعية بين الكلمات”؟ دعونا ننظر في بعض الأمثلة. إذا أًعطيت لنا كلمة “USA” ، فقد تكون الكلمات المتشابهة توزيعياً هي دول أخرى (على سبيل المثال ، كندا ، ألمانيا ، الهند ، إلخ) أو مدن في الولايات المتحدة الأمريكية.
إذا أُعطينا كلمة “جميلة” ، يمكن اعتبار الكلمات التي تشترك في بعض العلاقة مع هذه الكلمة (على سبيل المثال ، المرادفات والمتضادات) كلمات متشابهة توزيعًا. هذه هي الكلمات التي من المحتمل أن تحدث في سياقات مماثلة.
في عام 2013 ، قام ميكلوف و رفاقه بنشر ورقة بحثيه (هنا) أظهروا فيها أن نموذج تمثيل الكلمات المعتمد على الشبكة العصبية والمعروف باسم “Word2vec” ، استنادًا إلى “التشابه التوزيعي” ، يمكنه التقاط علاقات تشابه الكلمات مثل:
الملك = رجل + امرأة ≈ ملكة
كان نموذجهم قادرًا على الإجابة بشكل صحيح على العديد من التشبيهات مثل هذا. يوضح الشكل أدناه لقطة لنظام يعتمد على تشبيهات الإجابة من Word2vec. يعتبر نموذج Word2vec من نواحٍ عديدة فجر معالجة اللغات الطبيعية الحديثة.
أثناء تعلم مثل هذه العلاقات الثرية لغويًا ، يضمن Word2vec أن تكون تمثيلات الكلمات المكتسبة ذات أبعاد منخفضة (متجهات ذات أبعاد بين 50-500 ، بدلاً من عدة آلاف ، كما هو الحال مع التمثيلات التي تمت دراستها مسبقًا في المقال السابق) وكثيفة (أي ، معظم القيم في هذه المتجهات ليست صفرية).
مثل هذه التمثيلات تجعل مهام تعلم الألة أكثر كفاءة وفعالية. أدى Word2vec إلى الكثير من العمل (النقي والتطبيقي) في اتجاه تعلم تمثيلات النص باستخدام الشبكات العصبية. وتسمى هذه التمثيلات أيضًا “التضمينات (Embeddings) “. دعونا نبني حدسًا لكيفية عملها وكيفية استخدامها لتمثيل النص.
بالنظر إلى مجموعة نصية ، فإن الهدف هو تعلم التضمينات لـ الكلمة ذاتها في المجموعة بحيث أن متجه الكلمة في فضاء التضمين يجسد معنى الكلمة بشكل أفضل. من أجل “اشتقاق” معنى الكلمة ، يستخدم Word2vec التشابه التوزيعي وفرضية التوزيع. أي أنها تستمد معنى الكلمة من سياقها: الكلمات التي تظهر في جوارها في النص.
لذلك ، إذا ظهرت كلمتان مختلفتان (غالبًا) في سياق مشابه ، فمن المحتمل جدًا أن تكون معانيهما متشابهة أيضًا. يقوم Word2vec بتفعيل هذا من خلال إبراز معنى الكلمات في فضاء المتجه حيث تميل الكلمات ذات المعاني المتشابهة إلى التجمع معًا ، وتكون الكلمات ذات المعاني المختلفة بعيدة عن بعضها البعض.
فببساطة، يأخذ Word2vec مجموعة كبيرة من النص كمدخلات و “يتعلم” تمثيل الكلمات في فضاء المتجهة المشتركة بناءً على السياقات التي تظهر فيها في المجموعة. بالنظر إلى كلمة w والكلمات التي تظهر في سياقها C ، كيف يمكننا العثور على المتجه الذي يمثل أفضل معنى للكلمة؟
لكل كلمة w في مجموعة البيانات، نبدأ بمتجه vw مُهيأ بقيم عشوائية. يقوم نموذج Word2vec بتحسين القيم في vw من خلال التنبؤ بـ vw ، بالنظر إلى متجهات الكلمات في السياق C. وهو يفعل ذلك باستخدام شبكة عصبية من طبقتين. سنتعمق في هذا الأمر من خلال مناقشة التضمينات المدربة مسبقًا قبل الانتقال لتدريب واحد بأنفسنا.
تضمينات الكلمات التي تم تدريبها مسبقًا
يعد تدريب التضمينات الخاصة بك عملية مكلفة للغاية (من حيث الوقت والحوسبة). لحسن الحظ ، بالنسبة للعديد من السيناريوهات ، ليس من الضروري تدريب التضمينات الخاصة بك ، وغالبًا ما يكفي استخدام التضمينات المدربة مسبقًا.
ما هي التضمينات المدربة مسبقًا؟ قام شخص ما بالعمل الشاق المتمثل في تدريب تضمين الكلمات على مجموعة كبيرة ، مثل ويكيبيديا ، أو المقالات الإخبارية ، أو حتى الويب بالكامل ، ووضع الكلمات والمتجهات المقابلة لها على الويب. يمكن تنزيل التضمينات هذه واستخدامها للحصول على المتجهات للكلمات التي تريدها. يمكن اعتبار مثل هذه التضمينات على أنها مجموعة كبيرة من أزواج المفتاح والقيمة ، حيث تكون المفاتيح هي الكلمات الموجودة في المفردات والقيم هي متجهات الكلمات المقابلة لها.
من أشهر التضمينات المدربة مسبقًا Word2vec من غوغل، و GloVe من ستانفورد ، والتضمينات السريعة بواسطة فيسبوك، . علاوة على ذلك ، فهي متاحة لأبعاد مختلفة مثل d = 25 ، 50 ، 100 ، 200 ، 300 ، 600.
يظهر الكود أدناه مثالاً على كيفية إستخدام تضمينات Word2vec المدربة مسبقًا (رابط التحميل) والبحث عن الكلمات الأكثر تشابهًا (مرتبة حسب تشابه جيب التمام) لكلمة معينة.
most_similar (“beautiful”) تسترجع الكلمات الأكثر تشابهًا مع كلمة “beautiful”. الإخراج المبين . لكل كلمة مصحوبة بدرجة تشابه. كلما زادت الدرجة ، كانت الكلمة أكثر تشابهًا مع كلمة الاستعلام:
يُرجع w2v_model متجه كلمة الاستعلام. بالنسبة لكلمة “beautiful” ، نحصل على المتجه التالية.
لاحظ أنه إذا بحثنا عن كلمة غير موجودة في نموذج Word2vec (على سبيل المثال ، “operationnlp”) ، فسنرى خطأ .لذلك ، يُنصح دائمًا بالتحقق أولاً مما إذا كانت الكلمة موجودة في مفردات النموذج قبل محاولة استرداد المتجه. مكتبة Python التي استخدمناها هنا ، gensim ، تدعم أيضًا تدريب وتحميل نماذج GloVe المدربة مسبقًا.
الآن دعونا نلقي نظرة على تدريب التضمينات الخاصة بنا.
تدريب التضمينات الخاصة بنا
الآن سنركز على تدريب التضمينات الخاصة بنا. لهذا ، سنلقي نظرة على معمارييتين مختلفتين تم اقتراحهما في نهج Word2vec الأصلي. المتغيران هما:
- حقيبة الكلمات المستمرة (Continuous bag of words) أو (CBOW)
 
- تجاوز الغرام (SkipGram)
 
كلاهما لهما الكثير من أوجه التشابه في كثير من النواحي. سنبدأ بفهم نموذج CBOW ، ثم سنلقي نظرة على تجاوز الغرام . في هذا القسم ، سنستخدم الجملة “The quick brown fox jumps over the lazy dog ” لإجراء تجارب عليها.
حقيبة الكلمات المستمرة (Continuous bag of words)
في CBOW ، تتمثل المهمة الأساسية في بناء نموذج لغة يتنبأ بشكل صحيح بالكلمة المركزية بالنظر إلى كلمات السياق التي تظهر فيها الكلمة المركزية.
ما هو نموذج اللغة؟ إنه نموذج (إحصائي) يحاول إعطاء توزيع احتمالي على متواليات من الكلمات. بالنظر إلى جملة ، على سبيل المثال ، m من الكلمات ، فإنها تقوم بتعيين احتمال Pr (w1 ، w2 ، … .. ، wn) للجملة بأكملها.
الهدف من نموذج اللغة هو تعيين الاحتمالات بطريقة تعطي احتمالية عالية للجمل “الجيدة” واحتمالات منخفضة للجمل “السيئة”. ونعني بالجيدة جمل صحيحة لغويًا ونحويًا. نعني بالسيئة الجمل غير الصحيحة – من الناحية الدلالية أو النحوية أو كليهما.
لذلك ، بالنسبة لجملة مثل “The cat jumped over the dog” ، ستحاول تعيين احتمال قريب من 1.0 ، بينما بالنسبة لجملة مثل “jumped over the the cat dog” ، فإنها تحاول تعيين احتمال قريب من 0.0.
يحاول CBOW تعلم نموذج لغوي يحاول التنبؤ بالكلمة “المركزية” من الكلمات الموجودة في سياقها. دعونا نفهم هذا باستخدام الجملة خاصتنا ” The quick brown fox jumps over the lazy dog “.
إذا أخذنا كلمة “jumps” ككلمة مركزية ، فإن سياقها يتكون من الكلمات الموجودة في محيطها. إذا أخذنا حجم السياق 2 ، فسيتم إعطاء السياق بواسطة brown ، fox ، over ، the.
يستخدم CBOW كلمات السياق للتنبؤ بالكلمة المستهدفة – jumps- كما هو موضح في الشكل أدناه . يحاول CBOW القيام بذلك لكل كلمة في المجموعة ؛ أي أنها تأخذ كل كلمة في المجموعة ككلمة مستهدفة وتحاول التنبؤ بالكلمة الهدف من كلمات السياق المقابلة لها.
يتم بعد ذلك توسيع الفكرة التي نوقشت في الفقرة السابقة لتشمل المجموعة بأكملها لبناء مجموعة التدريب. التفاصيل كالتالي:
- نقوم بتحريك نافذة منزلقة بحجم 2k + 1 فوق مجموعة النص. على سبيل المثال ، أخذنا k كـ 2. يشير كل موضع في النافذة إلى مجموعة الكلمات 2k + 1 قيد الدراسة.
 
- الكلمة المركزية في النافذة هي الهدف ، وتشكل كلمات k على جانبي الكلمة المركزية السياق. هذا يعطينا نقطة بيانات واحدة. إذا تم تمثيل النقطة على أنها (X ، Y) ، فإن السياق هو X والكلمة المستهدفة هي Y.
 
- تتكون نقطة البيانات المفردة من زوج من الأرقام: (2k مؤشرات للكلمات في السياق ، فهرس الكلمة في الهدف ). للحصول على نقطة البيانات التالية ، نقوم ببساطة بتحويل النافذة إلى اليمين في المجموعة بكلمة واحدة وتكرار العملية. بهذه الطريقة ، نقوم بتحريك النافذة عبر المجموعة بأكملها لإنشاء مجموعة التدريب. هذا موضح في الشكل 3-8. هنا ، تظهر الكلمة المستهدفة باللون الأزرق و k = 2.
 
الآن بعد أن أصبحت بيانات التدريب جاهزة ، دعنا نركز على النموذج. لهذا ، نقوم ببناء شبكة ضحلة (تكون ضحلة لأنها تحتوي على طبقة مخفية واحدة) ، كما هو موضح في الشكل أدناه نفترض أننا نريد أن نتعلم التضمينات D-dim. علاوة على ذلك ، دع V تكون مفردات مجموعة النص.
الهدف هو تعلم مصفوفة التضمين E|V| x d. ، نبدأ بتهيئة المصفوفة عشوائيًا. هنا :
- | V | هو حجم مفردات مجموعة البيانات .
 - d هو بُعد التضمين.
 
دعونا نفصل الشبكة الضحلة في الشكل السابق طبقة تلو طبقة:
- في طبقة الإدخال ، تُستخدم مؤشرات الكلمات في السياق لجلب الصفوف المقابلة من مصفوفة التضمينE|V| x d.
 - يتم بعد ذلك إضافة المتجهات التي تم جلبها للحصول على متجه واحد D-dim ، ويتم تمرير هذا إلى الطبقة التالية.
 - الطبقة التالية تأخذ ببساطة متجه d هذا وتضربه بمصفوفة أخرى |E’d x |V .
 - هذا يعطي متجة |1x|v ، الذي يتم تغذيته إلى دالة softmax للحصول على التوزيع الإحتمالي على فضاء المفردات.
 - تتم مقارنة هذا التوزيع بالتسمية ويستخدم الانتشار العكسي (backpropagation) لتحديث كل من المصفوفتين E و E’ وفقًا لذلك.
 - في نهاية التدريب ، E هي مصفوفة التضمين التي أردنا تعلمها.
 
تجاوز الغرام (SkipGram)
SkipGram مشابه جدًا لـ CBOW ، مع بعض التغييرات الطفيفة. في SkipGram ، تتمثل المهمة في التنبؤ بكلمات السياق من الكلمة المركزية. بالنسبة لجملتنا ” The quick brown fox jumps over the lazy dog ” ذات حجم السياق 2 ، باستخدام الكلمة المركزية “jumps ” ، نحاول توقع كل كلمة في السياق -“brown,” “fox,” “over,” “the” – كما هو موضح في الشكل أدناه. هذا يشكل خطوة واحدة. يكرر SkipGram هذه الخطوة لكل كلمة في المجموعة باعتبارها الكلمة المركزية.
يتم إعداد مجموعة البيانات لتدريب SkipGram على النحو التالي:
- نقوم بتحريك نافذة منزلقة بحجم 2k + 1 على مجموعة النص للحصول على مجموعة الكلمات 2k + 1 قيد الدراسة.
 - الكلمة المركزية في النافذة هي X ، وكلمات k على جانبي الكلمة المركزية هي Y.
 - على عكس CBOW ، فإن هذا يعطينا 2k نقطة بيانات. تتكون نقطة البيانات المفردة من زوج: (فهرس الكلمة المركزية ، فهرس الكلمة المستهدفة).
 - ثم نحول النافذة إلى اليمين مجموعة البيانات بكلمة واحدة ونكرر العملية.
 
بهذه الطريقة ، نقوم بتحريك النافذة عبر المجموعة بأكملها لإنشاء مجموعة التدريب. هذا موضح في الشكل أدناه
الشبكة الضحلة المستخدمة لتدريب نموذج SkipGram ، الموضحة في الشكل أدناه ، تشبه إلى حد بعيد الشبكة المستخدمة في CBOW ، مع بعض التغييرات الطفيفة.
- في طبقة الإدخال ، يتم استخدام فهرس الكلمة في الهدف لجلب الصف المقابل من مصفوفة التضمين E|V| x d ثم يتم تمرير المتجهات التي تم جلبها إلى الطبقة التالية.
 - الطبقة التالية تأخذ ببساطة متجه d هذا وتضربه بمصفوفة أخرى |E’d x |V ، هذا يعطي متجة| 1x |V ، الذي يتم تغذيته بدالة softmax للحصول على توزيع احتمالي على مساحة المفردات.
 - تتم مقارنة هذا التوزيع بالتسمية ويستخدم الانتشار العكسي لتحديث كل من المصفوفتين E و E وفقًا لذلك.
 
في نهاية التدريب ، E هي مصفوفة التضمين التي أردنا تعلمها.
هناك الكثير من التفاصيل الدقيقة الأخرى التي تدخل في كل من نموذج CBOW و SkipGram. يمكن للقارئ المهتم أن ينظر إلى المقالات التالية بقلم سيباستيان رودر [هنا ، هنا ، هنا ]
هناك جانب رئيسي آخر يجب أخذه في الاعتبار وهو مدخلات الضبط (hyper-parameters) للنموذج. هناك العديد من مدخلات الضبط: حجم النافذة ، وأبعاد المتجهات المراد تعلمها ، ومعدل التعلم ، وعدد الحقب، وما إلى ذلك ، ومن الحقائق الراسخة أن مدخلات الضبط تلعب دورًا مهمًا في جودة النموذج النهائي .
لاستخدام خوارزميات CBOW و SkipGram في الممارسة العملية ، هناك العديد من التطبيقات المتاحة التي تلخص التفاصيل الرياضية لنا. أحد أكثر التطبيقات شيوعًا هو جينسيم .
على الرغم من توفر العديد من التطبيقات الجاهزة ، لا يزال يتعين علينا اتخاذ قرارات بشأن العديد من مدخلات الضبط (أي المتغيرات التي يجب تعيينها قبل بدء عملية التدريب). دعونا نلقي نظرة على مثالين.
أبعاد متحهات الكلمة
كما يشير الاسم ، فإن هذا يحدد حجم التضمينات المكتسبة. على الرغم من عدم وجود رقم مثالي ، فمن الشائع إنشاء متجهات كلمات بأبعاد تتراوح من 50 إلى 500 وتقييمها في المهمة التي نستخدمها من أجل اختيار الخيار الأفضل.
نافذة السياق
ما هو طول أو قصر السياق الذي نبحث عنه لتعلم تمثيل المتجه.
هناك أيضًا خيارات أخرى نتخذها ، مثل استخدام CBOW أو SkipGram للتعرف على التضمينات. تعتبر هذه الاختيارات فنًا أكثر منها علمًا في هذه المرحلة ، وهناك الكثير من الأبحاث الجارية حول طرق اختيار المعلمات الفائقة المناسبة.
باستخدام حزم مثل جينسيم ، من السهل جدًا من وجهة نظر برمجية تطبيق Word2vec. يوضح الكود التالي كيفية تدريب نموذج Word2vec الخاص بنا باستخدام مجموعة بيانات تسمى Common_texts المتوفرة في gensim. بافتراض أن لديك مجموعة نصوص لنطاقك ، فإن اتباع مقتطف الكود هذا سيمنحك بسرعة التضمينات الخاصة بك:
الآن ، يمكننا الحصول على التمثيل المتجه لأي كلمة في مجموعة بياناتنا ، بشرط أن تكون في مفردات النموذج – نحن فقط نبحث عن الكلمة في النموذج. ولكن ماذا لو كان لدينا عبارة (على سبيل المثال ، “word embedding”) التي نحتاج إلى متجه لها؟
تمثيل الجمل
حتى الآن ، رأينا أمثلة على كيفية استخدام التضمينات المدربة مسبقًا وتدريب التضمينات الخاصة بنا. يمنحنا هذا تمثيلًا مضغوطًا وكثيفًا للكلمات في مفرداتنا. ومع ذلك ، في معظم تطبيقات معالجة اللغة الطبيعية ، نادرًا ما نتعامل مع الوحدات الذرية مثل الكلمات – نتعامل مع الجمل أو الفقرات أو حتى النصوص الكاملة. لذا ، نحتاج إلى طريقة لتمثيل وحدات أكبر من النص. هل هناك طريقة يمكننا استخدامها لتضمين الكلمات للحصول على تمثيلات سمات لوحدات نصية أكبر؟
تتمثل إحدى الطرق البسيطة في تقسيم النص إلى أجزاء ، وأخذ التصمينات للكلمات فردية في كل جزء، ودمجها لتشكيل تمثيل للنص. هناك طرق مختلفة لدمجها ، وأكثرها شيوعًا هو المجموع والمتوسط وما إلى ذلك ، ولكنها قد لا تلتقط العديد من جوانب النص ككل ، مثل الترتيب
. والمثير للدهشة أنها تعمل جيدًا في الممارسة العملية . في الواقع ، في CBOW ، تم توضيح ذلك من خلال أخذ مجموع متجهات الكلمات في السياق. يمثل المتجه الناتج السياق بأكمله ويستخدم للتنبؤ بالكلمة المركزية.
من الجيد دائمًا تجربة هذا قبل الانتقال إلى تمثيلات أخرى. يوضح الكود التالي كيفية الحصول على تمثيل المتجه للنص عن طريق حساب متوسط متجهات الكلمات باستخدام مكتبة spaCy :
تعتمد كل من التضمينات المدربة مسبقًا والمدربة ذاتيًا على المفردات التي يرونها في بيانات التدريب. ومع ذلك ، ليس هناك ما يضمن أننا سنرى هذه الكلمات فقط في بيانات الإنتاج للتطبيق الذي نقوم بإنشائه. على الرغم من سهولة استخدام Word2vec أو تضمين أي كلمة من هذا القبيل لاستخراج سمة من النصوص ، إلا أنه ليس لدينا طريقة جيدة للتعامل مع كلمات خارح مفرداتنا. لقد كانت هذه مشكلة متكررة في جميع التمثيلات التي رأيناها حتى الآن. ماذا نفعل في مثل هذه الحالات؟
من الأساليب البسيطة التي تعمل غالبًا استبعاد هذه الكلمات من عملية استخراج السمات ، لذلك لا داعي للقلق بشأن كيفية الحصول على تمثيلاتها. إذا كنا نستخدم نموذجًا تم تدريبه على مجموعة كبيرة ، فلا يجب أن نرى الكثير من كلمات خارج المفردات على أي حال. ومع ذلك ، إذا لم يكن جزء كبير من الكلمات من بيانات الإنتاج لدينا موجودًا في مفردات كلمة التضمين ، فمن غير المرجح أن نرى أداءً جيدًا. هذا التداخل في المفردات هو وسيلة رائعة لقياس أداء نموذج معالجة اللغة الطبيعية .
من المهم أن نعرف أنه ، إذا كان التداخل بين مفردات المجموعة ومفردات التضمين أقل من 80٪ ، فمن غير المحتمل أن نرى أداءً جيدًا من نموذج معالجة اللغة الطبيعية الخاص بنا.
حتى إذا كان التداخل أعلى من 80٪ ، فلا يزال بإمكان النموذج أن يقوم بأداء ضعيف اعتمادًا على الكلمات التي تقع ضمن 20٪. إذا كانت هذه الكلمات مهمة للمهمة ، فهذا ممكن جدًا.
على سبيل المثال ، لنفترض أننا نريد بناء مصنف يمكنه تصنيف المستندات الطبية الخاصة بالسرطان من المستندات الطبية الموجودة على القلب. الآن ، في هذه الحالة ، ستصبح مصطلحات معينة مثل القلب والسرطان وما إلى ذلك ، مهمة للتمييز بين مجموعتي المستندات. إذا لم تكن هذه المصطلحات موجودة في مفردات التضمين ، فقد يظل أداء المصنف ضعيفًا.
تمثيلات النص العالمية
في جميع التمثيلات التي رأيناها حتى الآن ، نلاحظ أن كلمة واحدة تحصل على تمثيل واحد ثابت. هل يمكن أن تكون هذه مشكلة؟ حسنًا ، إلى حد ما ، نعم. يمكن للكلمات أن تعني أشياء مختلفة في سياقات مختلفة. على سبيل المثال ، الجملتان “I went to a bank to withdraw money” و “I sat by the river bank and pondered about text representations” تستخدم كلاهما كلمة “bank “. ومع ذلك ، فإنهم يقصدون أشياء مختلفة في كل جملة. مع مناهج التوجيه والتضمين التي رأيناها حتى الآن ، لا توجد طريقة مباشرة لالتقاط هذه المعلومات.
في عام 2018 ، توصل الباحثون إلى فكرة تمثيل الكلمات السياقية ، والتي تتناول هذه المشكلة. يتم إستخدم “نمذجة اللغة” ، وهي مهمة التنبؤ بالكلمة المحتملة التالية في سلسلة من الكلمات. في أقرب أشكالها ، استخدمت فكرة ترددات n-gram لتقدير احتمال الكلمة التالية بالنظر إلى تاريخ الكلمات.
شهدت السنوات القليلة الماضية ظهور نماذج اللغة العصبية المتقدمة (على سبيل المثال ، المحولات ) التي تستخدم كلمة التضمينات التي ناقشناها سابقًا ولكنها تستخدم معماريات معقدة تتضمن تمريرات متعددة عبر النص وقراءات متعددة من اليسار إلى اليمين ومن اليمين إلى اليسار لنمذجة سياق استخدام اللغة.
تم استخدام المعماريات العصبية مثل الشبكات العصبية المتكررة (RNN) والمحولات لتطوير نماذج واسعة النطاق للغة (ELMo ، BERT) ، والتي يمكن استخدامها كنماذج مدربة مسبقًا للحصول على تمثيلات نصية. الفكرة الأساسية هي الاستفادة من “نقل التعلم” – أي تعلم التضمينات في مهمة عامة (مثل نمذجة اللغة) على مجموعة ضخمة ومن ثم ضبط التعلم على البيانات الخاصة بالمهمة. أظهرت هذه النماذج تحسينات كبيرة في بعض مهام معالجة اللغة الطبيعية الأساسية ، مثل الإجابة على الأسئلة ، ووسم الأدوار الدلالية ، والتعرف على الكيانات المسماة ، ودقة المرجع .
ختاماً
نظرنا في الأفكار الرئيسية وراء التضمينات ، وكيفية تدريبها ، وكيفية استخدام التضمينات المدربة مسبقًا للحصول على تمثيلات نصية. سنتعلم المزيد حول كيفية استخدام هذه التمثيلات في تطبيقات معالجة اللغة الطبيعية المختلفة لاحقاً. هذه التمثيلات مفيدة جدًا وشائعة في معالجة اللغة الطبيعية الحديثة. ومع ذلك، إليك بعض الجوانب المهمة التي يجب وضعها في الاعتبار أثناء استخدامها في مشروعك:
- جميع تمثيلات النص متحيزة بطبيعتها بناءً على ما رأوه في بيانات التدريب. على سبيل المثال ، من المرجح أن يحدد نموذج التضمين الذي تم تدريبه بشكل كبير على أخبار أو مقالات التكنولوجيا أن Apple أقرب إلى Microsoft أو Facebook ، على سبيل المثال ، من البرتقال أو الكمثرى. في حين أن هذا أمر غير متوقع ، فإن مثل هذه التحيزات الناتجة عن بيانات التدريب يمكن أن يكون لها آثار خطيرة على أداء نماذج وأنظمة معالجة اللغة الطبيعية التي تعتمد على هذه التمثيلات. من المهم جدًا فهم التحيزات التي قد تكون موجودة في التضمينات المكتسبة وتطوير طرق لمعالجتها. يمكن للقارئ المهتم أن ينظر إلى في هذا البحث بعنوان (Man Is to Computer Programmer as Woman Is to Homemaker? Debiasing Word Embeddings) . تعتبر هذه التحيزات عاملاً مهمًا يجب مراعاته في أي تطوير برمجيات معالجة اللغة الطبيعية.
 
- على عكس أساليب المتجهات الأساسية ، فإن عمليات التضمين المدربة مسبقًا تكون بشكل عام ملفات كبيرة الحجم (عدة غيغابايت) ، والتي قد تسبب مشاكل في سيناريوهات نشر معينة. هذا شيء نحتاج إلى معالجته أثناء استخدامها ، وإلا فقد يصبح عقبة هندسية في الأداء. يأخذ نموذج Word2vec حوالي 4.5 جيجابايت من ذاكرة الوصول العشوائي. أحد الاختراقات الجيدة هو استخدام قواعد البيانات الموجودة في الذاكرة مثل Redis مع وجود ذاكرة تخزين مؤقت فوقها لمعالجة مشاكل القياس وزمن الانتقال. قم بتحميل التضمينات الخاصة بك في قواعد البيانات هذه واستخدم التضمينات كما لو كانت متوفرة في ذاكرة الوصول العشوائي.
 
- تعد نمذجة اللغة لتطبيق في العالم الحقيقي أكثر من مجرد التقاط المعلومات عبر تضمينات الكلمة والجمل. ما زلنا بحاجة إلى طرق لترميز جوانب محددة من النص ، والعلاقات بين الجمل فيه ، وأي احتياجات أخرى خاصة بالمجال والتطبيق قد لا يتم تناولها بواسطة تمثيلات التضمين نفسها (حتى الآن!). على سبيل المثال ، تتطلب مهمة الكشف عن السخرية الفروق الدقيقة التي لم يتم التقاطها جيدًا بعد من خلال تقنيات التضمين.
 
- بينما نتحدث ، يمثل تمثيل النص العصبي مجالًا متطورًا في معالجة اللغة الطبيعية ، مع تغيير سريع في أحدث التقنيات. في حين أنه من السهل الجري وراء أخر و أحدث النماذج ، يحتاج الممارس إلى توخي الحذر والنظر في القضايا العملية مثل عائد الاستثمار من الجهد واحتياجات العمل وقيود البنية التحتية قبل محاولة استخدامها في مستوى الإنتاج التطبيقات.
 
أنصح بالإطلاع على هذا البحث للحصول على ملخص موجز لتطور تمثيلات الكلمات المختلفة وتحديات البحث المقبلة لنماذج الشبكة العصبية لتمثيل النص. الآن ، دعنا ننتقل إلى تقنيات تصور التضمينات.
        		 
        	


		                
		                
		                
		                
		                
		                
		                
		                
		                
إضافة تعليق