تنفيذ "ربط ناقلات الكلمات ومصنفات الكلمات: إطار خسارة لنمذجة اللغة"
تحاول هذه الورقة استخدام تنوع كلمة معنى لتدريب الشبكة العصبية العميقة.
في نمذجة اللغة (التنبؤ بتسلسل الكلمة) ، نريد التعبير عن تنوع معنى الكلمة.
على سبيل المثال ، عند التنبؤ بالكلمة بجانب "الموز لذيذ ___" ، فإن الإجابة هي "الفاكهة" ، ولكن "الحلويات" ، "الطعام" على ما يرام. لكن التدريس المتجه العادي واحد غير مناسب لتحقيق ذلك. لأن أي كلمات مماثلة تم تجاهلها ، ولكن كلمة الإجابة الدقيقة.

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


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

لاستخدام فقدان نوع التوزيع وتضمين الإدخال وتقييد معادلة الإسقاط الإخراج يحسن حيرة النموذج.

perplexity كبيرة ، لم أستطع ثقة في تنفيذها. أنا في انتظار طلب السحب!augmentedmodel بشكل أفضل من خط الأساس ( onehotmodel ) ، ويتفوق augmentedmodel_tying على خط الأساس!python train.pyلقد قمت بتنفيذ نسخة LSTM الحكومية. نتيجة لها على اتباع.

تم تحسين الحيرة (ولكن Zaggy) ، وفقدت طريقة ربط تأثيرها قليلاً.
من الصعب للغاية استخدام LSTM في keras (لا سيما reset_states في مجموعة التحقق من الصحة) ، لذلك قد يكون هناك بعض الحد الأقصى.
بالمناسبة ، مثال Pytorch يستخدم بالفعل طريقة ربط! لا تخف من استخدامه!