في هذا المستودع ، نقوم بتدريب ثلاثة نماذج لغوية على مجموعة Penn TreeBank (PTB) الكنسي. يتم تقسيم هذه المجموعة إلى مجموعات التدريب والتحقق من صحة ما يقرب من 929 كيلو و 73 كيلو ، على التوالي. نحن ننفذ (1) نموذج TRIGRAM التقليدي مع الاستيفاء الخطي ، (2) نموذج لغة احتمالية عصبية كما هو موضح من قبل (Bengio et al. ، 2003) ، و (3) شبكة عصبية متكررة منظمة (RNN) مع وحدات الذاكرة طويلة المدى (LSTM) التالية (Zaremba et al. ، 2015). نقوم أيضًا بتجربة سلسلة من التعديلات على نموذج LSTM ونحقق حيرة 92.9 على مجموعة التحقق من صحة مع نموذج متعدد الطبقات.
في مهمة تصنيف مشاعر TreeBank Sentiment Sentiment Stanford ، يتم تزويدنا بمجموعة من الجمل المأخوذة من مراجعات الأفلام. تم وضع علامة على كل جملة إما إيجابية أو سلبية أو محايدة ؛ نتبع (كيم ، 2014) في إزالة الأمثلة المحايدة وصياغة المهمة كقرار ثنائي بين الجمل الإيجابية والسلبية.
لكل متغير نموذج ، نضفي على التنبؤ
لحالة الاختبار
مثل

أين
هي وظيفة التنشيط ،
هي أوزاننا المستفادة ،
هو متجه الميزة لدينا للإدخال
، و
هو ناقل التحيز. لاحظ أنه في هذه المشكلة ، 

للجميع
نظرًا لأننا نعتبر فقط مدخلات المشاعر الإيجابية والسلبية في مجموعة بيانات SST-2. نحن نستخدم Pytorch لجميع تطبيقات النماذج ، ويتم تدريب جميع النماذج على 10 عصر كل منها باستخدام مجموعات من الحجم 10 ، ومعدل التعلم 1E-4 ، و Adam Optimizer ، ووظيفة فقدان احتمالية السجل السلبية. الاستثناء الوحيد لهذا الإعداد هو لبيز ساذج متعدد الحدود ، والذي كان مناسبًا في حقبة واحدة مع معلمة التعلم
= 1.0.
يترك 

كن هو ناقل عدد الميزات لحالة التدريب
مع تسمية التصنيف
.
هي مجموعة الميزات ، و
يمثل عدد حوادث الميزة
في القضية التدريبية
. تحديد ناقلات العد
مثل
=
+
، للمعلمة تجانس
. نتبع وانغ و manning في ثقل التهم.
= 
. فيما يتعلق بالمعادلة (1) ،
هل نسبة السجل بين عدد الأمثلة الإيجابية والسلبية ،
= سجل (
/
) أين
و
هل عدد حالات التدريب الإيجابية والسلبية في مجموعة بيانات التدريب ،
هو عدد حوادث المدخلات
، و
هي وظيفة المؤشر الثنائي التي تقوم بتعيين
إلى 1 إذا أكبر من 0 و 0 خلاف ذلك. نحن نعتبر فقط unigrams كميزات.
نتعلم مصفوفات الوزن والتحيز
و
هذا لتحسين

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

أين 

و 

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

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

أين
هي عملية التسلسل. يترك
تمثل تسلسل الكلمات
و
، ... ، ،
. في الشبكات العصبية التلافيفية ، نطبق عمليات الالتواء 

مع حجم المرشح
لإنتاج الميزات ، حيث يكون حجم المرشح فعليًا حجم نافذة الكلمات التي يجب أن تنقذها. يترك
كن ميزة تم إنشاؤها بواسطة هذه العملية. ثم

أين
هو مصطلح التحيز و
هي وظيفة الوحدة الخطية المصححة (RELU). تطبيق حجم طول المرشح
على جميع النوافذ الممكنة للكلمات في جملة الإدخال لدينا تنتج خريطة الميزة

في تنفيذنا ، ننظر على أحجام المرشح 

ثم تسلسل ميزات كل
في ناقل واحد. نحن نطبق عملية تجميع في الوقت المناسب (Collobert et al ، 2011) على هذا المتجه من خرائط الميزات المتسلسلة ، المُشار بها
، واحصل
= ماكس (
). ثم نطبق التسرب مع
= 0.50 ل
كقياس تنظيم ضد الزائد ، قم بتمرير هذا إلى طبقة متصلة بالكامل وحساب softmax على الإخراج.
أخيرًا ، قمنا أيضًا بتنفيذ سلسلة من التعديلات على بنية CNN لإعطاء تحسن بسيط في الأداء على مجموعة بيانات SST-2. في هذا التنفيذ ، نستخدم متجهات قفاز مسبقًا في ستانفورد (Pennington et al. ، 2014) ، نقوم بإجراء هذه التغييرات:
فيما يلي (كيم ، 2014) ، نستخدم نسختين من جدول تضمين الكلمات أثناء الالتفاف وخطوات التجول القصوى-واحدة غير منتظمة ، أو تم تحديثها أثناء التدريب كوحدة عادية في النموذج ، وآخر تم حذفه من المحسن وحفظه كستاتيك طوال فترة التدريب. في التمريرة الأمامية للنموذج ، يتم تسلسل هاتين المجموعتين من التضمين معًا على طول البعد "القناة" ، ثم تنتقل إلى الطبقات التنازلية الثلاث كموتر واحد ، مع قيمتين لكل من الأبعاد الـ 300 في نموذج القفاز.
بعد إنتاج ناقل الميزات المدمج الذي يمثل الميزات المتجانسة MAX من النواة التلافيفية الثلاث ، نضيف ببساطة عدد الكلمات غير المقيدة للمدخلات كبعيد إضافي واحد ، ننتج موترًا 301 للبعث يتم تعيينه بعد ذلك إلى الإخراج 2 وحدة. من وجهة نظر هندسية ، نجد أن هذا يحسن الأداء بشكل هامشي على مجموعة بيانات SST-2 ، حيث ، في المتوسط ، الجمل الإيجابية أطول قليلاً من تلك السلبية-19.41 كلمة مقابل 19.17. ليس من الواضح ما إذا كان هذا سيستمر عبر مجموعات بيانات مختلفة ، أو ما إذا كان خاصًا بـ SST-2. (على الرغم من أنه ليس من الواضح تمامًا ذلك تمامًا ، ويبدو أنه يدل على سؤال لغوي مثير للاهتمام-هل الجمل "الإيجابية" لفترة أطول عمومًا من الجمل "السلبية"؟)
بالإضافة إلى التغييرين الموصوفين أعلاه ، قمنا أيضًا بتجربة مجموعة واسعة من التعديلات الأخرى على بنية CNN ، بما في ذلك:
الجمع بين نموذج CBOW مع بنية CNN من خلال تسلسل ناقلات CNN MaxPooled مع متجه CBOW المتوسط قبل رسم الخرائط إلى وحدات الإخراج النهائية.
استبدلت تضمينات القفازات بتضمينات Googlenews (Mikolov et al. ، 2013). جاءت هذه الفكرة من التفكير في أنه قد يكون هناك بعض خصوصية المجال المفيدة لـ PTB حيث تم تدريب هذه التضمين على مقالات إخبارية.
تم تنفيذ التضمينات "متعددة القنوات" كما وصفها (كيم ، 2014) في سياق بنيات CNN. بدلاً من مجرد استخدام طبقة تضمين واحدة يتم تحديثها أثناء التدريب ، يتم نسخ مصفوفة الأوزان التي تم تدريبها مسبقًا إلى طبقتين منفصلتين للتضمين: تم تحديثها أثناء التدريب ، وآخر تم حذفه من المُحسن ويسمح له بالبقاء دون تغيير أثناء التدريب. خلال فهارس كلمة المرور إلى الأمام ، يتم تعيين فهارس كلمة إلى كل جدول بشكل منفصل ، ثم يتم تسلسل الموترات على طول البعد المضمّن لإنتاج موتر واحد ، 600 ثنائي الأبعاد لكل رمز.
جربت مع أساليب مختلفة للتضمين. بدلاً من نمذجة المجموعة كسلسلة واحدة غير منقطعة أثناء التدريب (كما هو الحال مع BPTTIterator من Torchtext) ، حاولنا تقسيم المجموعة إلى جمل فردية ثم إنتاج حالات تدريب منفصلة لكل رمز في كل جملة. على سبيل المثال ، بالنسبة للجمل "أحب القطط السوداء" أنتجنا خمس سياقات:
أ. " <SOS> أنا"
ب. " <SOS> أحب"
ج. " <SOS> أحب الأسود"
د. " <SOS> أحب القطط السوداء"
ه. " <SOS> أحب القطط السوداء <EOS> "
ويتم تدريب النموذج على التنبؤ بالرمز الأخير في كل سياق في Time Step T من الرموز T -1 الأولى. استخدمنا وظيفة pytorch's pack_padded_sequence لمعالجة مدخلات طول المتغير إلى LSTM. من الناحية العملية ، كان هذا الأمر جذابًا لأنه يسهل هندسة مجموعة واسعة من الميزات من السياق قبل كلمة واحدة -على سبيل المثال ، يصبح من السهل تنفيذ LSTMS ثنائية الاتجاه مع كل من النجاح إلى الأمام والخلف على سياق T -1 ، والذي سيكون ، على حد علمنا ، أمرًا صعبًا أو مستحيلًا في نظام التدريب الأصلي الذي يفرضه BPTTIterator . لقد أدركنا بعد محاولة ذلك ، على الرغم من أنه لن يكون تنافسيًا أبدًا مع تمثيل BPTTIterator المستمر للجسم لأن الجمل في المجموعة يتم تجميعها حسب المقالة- وبالتالي على مستوى مواضيعي / مفاهيمي. هذا يعني أن النموذج يمكن أن يتعلم معلومات مفيدة عبر حدود الجملة حول نوع الكلمة التي يجب أن تأتي بعد ذلك.
جربت مع استراتيجيات تنظيم مختلفة ، مثل تغيير النسب المئوية للتسرب ، وتطبيق التسرب على طبقات التضمين الأولية ، إلخ.
لم يتم تحسين أي من هذه التغييرات على الطبقة الواحدة الأولية ، 1000 وحدة LSTM. كان أفضل طراز أداء هو النموذج الموصوف في القسم 3.4. تم وصف الحيرة التي حققناها مع كل من نماذج القسم 3 في الجدول 1.
| نموذج | الحيرة |
|---|---|
| تداخل خطيا تريغرام | 178.03 |
| نموذج اللغة العصبية (5 غرام) | 162.2 |
| 1 طبقة LSTM | 101.5 |
| 3 طبقات LSTM + اتصالات | 92.9 |
على الرغم من أن LSTM متعدد الطبقات مع اتصالات تغلب على خط الأساس LSTM البسيط ، لم نتمكن من تكرار أداء التحقق من الصحة 78.4 الموصوف (Zaremba et al. ، 2015) باستخدام نفس المجموعة والبنية المماثلة. وهي ، عند استخدام التكوينات الموضحة في الورقة (الطبقة المكونة من 2 طبقات ، 650 و 1500 وحدة) ، تتغلب نماذجنا على 5-6 عصر ، حتى عند تطبيق التسرب بطريقة تتطابق مع النهج الموصوف في الورقة. في المقابل ، (Zaremba et al. ، 2015) ذكر التدريب لما يصل إلى 55 عصر.)
قمنا بتدريب أربع فئات من النماذج - نموذج Trigram التقليدي مع الاستيفاء الخطي ، مع الأوزان التي تعلمتها تعظيم التوقعات ؛ يتبع نموذج لغة الشبكة العصبية البسيطة (Bengio et al. ، 2003) ؛ طبقة واحدة LSTM الأساس ؛ وتمديد هذا النموذج الذي يستخدم ثلاث طبقات من الأحجام المختلفة ، وتخطي الاتصالات للطبقتين الأولين ، والتنظيم كما هو موضح من قبل (Zaremba et al. ، 2015). يحقق النموذج النهائي حيرة 92.9 ، مقارنة بـ 78.4 و 82.7 التي أبلغ عنها (Zaremba et al. ، 2015) باستخدام مكافئات مكافئة تقريبًا.
Y. Bengio ، R. Ducharme ، P. Vincent ، C. Jauvin. "نموذج لغة احتمالية عصبية." مجلة أبحاث التعلم الآلي 3 ، الصفحات 1137-1155. 2003.
D. Jurafsky. "نمذجة اللغة: مقدمة في n-grams." محاضرة. جامعة ستانفورد CS124. 2012.
ي. كيم. "الشبكات العصبية التلافيفية لتصنيف الجملة." وقائع مؤتمر 2014 حول الأساليب التجريبية في معالجة اللغة الطبيعية (EMNLP) ، الصفحات 1746-1751. 2014.
T. Mikolov ، K. Chen ، G. Corrado ، J. Dean. "تقدير فعال لتمثيل الكلمات في مساحة المتجه." Arxiv preprint Arxiv: 1301.3781. 2013.
J. Pennington ، R. Socher ، C. Manning. "القفاز: ناقلات عالمية لتمثيل الكلمات." وقائع مؤتمر 2014 حول الأساليب التجريبية في معالجة اللغة الطبيعية (EMNLP) ، الصفحات 1532-1543. 2014.
W. Zaremba ، I. Sutskever ، O. Vinyals. 2015. "تنظيم الشبكة العصبية المتكررة." Arxiv preprint Arxiv: 1409.2329. 2015.