[1] (NMT)
1. مقدمه
در این وبلاگ سعی دارم توضیح دهم تا فرآیند کلی ساخت یک مدل ترجمه ماشین عصبی (NMT) را با توجه توضیح دهم. ابتدا، در بخش 2، من در مورد آمادهسازی دادهها برای ساخت یک مدل NMT صحبت میکنم. من با توجه به ریاضیات مدل NMT نرفتهام - در بخش 2 به وبلاگ قبلی خود مراجعه میکنم تا مروری بر مراحل تهیه مدل NMT با توجه داشته باشم. بخش 3 در مورد معیارهای ارزیابی برای مدل صحبت میکند: امتیاز BLEU و امتیاز ROUGE و در نهایت بخش 4 در مورد نمونهگیری و رمزگشایی است - که اساساً به جزئیات نحوه انتخاب بهترین پیش بینی برای یک کار مرتبط NMT میپردازد. این بحث در مورد رمزگشایی حریص بدنام، الگوریتم جستجوی پرتو و حداقل خطر بیز[2] (MBR) است.
2. آمادهسازی دادهذها برای مدل ترجمه ماشین عصبی
دادههای مدل:
اول از همه، دادهها باید برای آموزش مدل در دسترس باشند. اکثر دوره های NLP که NMT / NMT را با توجه توضیح میدهند از دادههای زیر استفاده میکنند:
https://opus.nlpl.eu/: (Opus) مجموعه رو به رشدی از متون ترجمه شده از وب است. مجموعه دادهها در Opus از طریق TensorFlow DataSets (https://www.tensorflow.org/datasets) در دسترس هستند. اگر یک مسئله NMT عملی / واقعی برای حل دارید، دادههای مناسب باید در دسترس باشد.
توکنسازی با استفاده از بازنماییهای زیر کلمه:
به عنوان اولین گام برای آمادهسازی دادهها، ما هر جمله را به جای رشتهها به صورت آرایهای از اعداد صحیح نشان میدهیم. استفاده از بازنماییهای زیرکلمهای برای نشانهگذاری جملات رایج نیست. این یک تکنیک رایج برای جلوگیری از کلمات خارج از واژگان با اجازه دادن به قسمتهایی از کلمات برای نمایش جداگانه است. به عنوان مثال، به جای داشتن ورودیهای جداگانه در واژگان خود برای --"ترس"، "بی باک"، "ترسناک"، "بعضی" و "کمتر"--، میتوانید به سادگی --"ترس"، "بعضی" را ذخیره کنید. و "کمتر" -- سپس به توکنسازی خود اجازه دهید در صورت نیاز این کلمات فرعی را ترکیب کند.
کد شما حاوی روالهای فرعی خواهد بود که توابع کتابخانه مربوطه را به نشانهگذاری (تبدیل رشته جملات به اعداد صحیح) و دتوکنیز کردن (تبدیل اعداد صحیح به کلمات مربوطه خود) فراخوانی میکند.
Bucketing:
Bucketing جملات نشانهگذاری شده یک تکنیک مهم است که برای سرعت بخشیدن به آموزش در NLP استفاده میشود. برای بیان یک اصل: ورودیها دارای طولهای متغیر هستند و میخواهید هنگام جمع کردن گروههایی از جملات با هم، اینها را یکسان کنید.
یکی از راههای انجام این کار این است که هر جمله را به طول طولانیترین جمله در مجموعه داده اضافه کنید. این ممکن است منجر به هدر رفتن محاسبات شود. به عنوان مثال، اگر چند جمله کوتاه فقط با دو نشانه وجود داشته باشد، آیا میخواهیم زمانی که طولانیترین جمله از 100 نشانه تشکیل شده است، این جملات را اضافه کنیم؟
به جای اینکه هر بار با 0s به حداکثر طول یک جمله اضافه کنیم، میتوانیم جملات نشانهگذاری شده خود را بر اساس طول و Bucket مطابق شکل زیر گروهبندی کنیم.
شکل 1: دادههای توالی دستهای (Bucketing)
2. ارزیابی مدلهای NMT با توجه
امتیاز BLEU:
امتیاز BLEU که مخفف یک دو زبانه ارزیابی زیرمجموعه است. این الگوریتمی است که برای حل برخی از دشوارترین مسائل در NLP از جمله ترجمه ماشینی ایجاد شده است. کیفیت متن ترجمه شده ماشینی را با مقایسه ترجمه متون نامزد با یک یا چند ترجمه مرجع ارزیابی می کند. معمولاً هر چه امتیاز BLEU به یک نزدیکتر باشد، مدل شما بهتر است. هر چه به صفر نزدیکتر باشد بدتر است.
برای به دست آوردن نمره BLEU، نامزدها و مراجع معمولاً بر اساس میانگین دقت uni، bi، try یا حتی چهار گرم هستند. برای نشان دادن، بیایید از uni-grams به عنوان مثالی شامل یک نامزد و 2 ترجمه مرجع همانطور که در زیر نشان داده شده است استفاده کنیم.
ما میبینیم که "I و am" در نامزد و مرجع ظاهر میشود.
امتیاز BLEU =
بنابراین، در این مثال «I» و «am» در نامزد، مرجع 1 و مرجع 2 ظاهر میشود.
امتیاز BLEU گستردهترین معیار ارزیابی برای ترجمه ماشینی است. اما قبل از شروع استفاده باید از این معایب آگاه باشید.
ROUGE:
مخفف عبارت Recall Oriented Understudy for Gisting Evaluation میباشد. به طور پیشفرض بیشتر یادآوریگرا[3] است. این بدان معناست که اهمیت بیشتری به اینکه چه مقدار از مرجع ایجاد شده توسط انسان در ترجمه ماشینی ظاهر میشود، میدهد.
ROUGE در اصل برای ارزیابی کیفیت متون خلاصه شده ماشینی ساخته شد، اما برای ارزیابی ترجمه ماشینی نیز مفید است. این کار با مقایسه متون ماشینی یا متون سیستم با متون مرجع، که اغلب توسط یک انسان ایجاد میشود، کار میکند. امتیاز ROUGE با شمارش همپوشانی n-gram بین متون ماشین و متون مرجع، دقت را محاسبه میکند و متون ماشین را به یاد میآورد. به یاد بیاورید که n-gram است، لیستی از کلماتی است که در یک جمله در کنار یکدیگر ظاهر میشوند که ترتیب آن اهمیت دارد.
خانواده معیارهای ROUGE بر روی همپوشانی n-gram بین متون ترجمه شده سیستم و مرجع تمرکز دارد. منظور از متن ترجمه شده توسط سیستم، مدلی است که برای انجام پیشبینی آموزش داده شده است. با مرجع، من به جمله صحیح ایده آلی اشاره میکنم که شما میخواهید مدل پیشبینی کند.
ROUGE: مثال - Recall در ROUGE و Precision در ROUGE
ROUGE – محدودیتها
امتیاز ROUGE پایین ممکن است نشاندهنده این نباشد که یک متن ترجمهشده مدل در واقع تمام محتوای مرتبط را با متون مرجع دریافت کرده است، فقط به این دلیل که تفاوت زیادی در همپوشانی n-gram دارد. اما نمرات ROUGE هنوز برای ارزیابی ترجمههای ماشینی و خلاصهها بسیار مفید هستند.
4. نمونهبرداری و رمزگشایی
ممکن است تاکید شود که یک مدل NMT در یک مرحله - پس از گذراندن مراحل رمزگذاری، توجه و رمزگشایی احتمالات پیشبینی کلمه بعدی در جمله را به دست میدهد - برخی از آنها در زیر توضیح داده شدهاند.
رمزگشایی حریصانه:
رمزگشایی حریصانه سادهترین راه برای رمزگشایی پیشبینیهای مدل است زیرا در هر مرحله محتملترین کلمه را انتخاب میکند. با این حال، این رویکرد محدودیتهایی دارد. وقتی بالاترین احتمال را برای هر پیشبینی در نظر میگیرید، و همه نشانههای پیشبینیشده را برای دنباله خروجی به هم میپیوندید، همانطور که رمزگشای حریص انجام میدهد، میتوانید به موقعیتی دست پیدا کنید که به جای (بگوییم) من گرسنه هستم، خروجی به شما میدهد (من هستم، هستم، هستم، هستم)!
این می تواند یک مشکل بالقوه باشد اما نه در همه موارد. برای دنبالههای کوتاهتر، میتواند خوب باشد، اما اگر بسیاری از کلمات دیگر را در نظر بگیرید، دانستن اینکه چه چیزی در آینده پیش میآید ممکن است به شما در پیشبینی بهتر دنباله بعدی کمک کند.
نمونهگیری تصادفی:
گزینه دیگر به عنوان نمونهگیری تصادفی شناخته میشود. کاری که نمونهگیری تصادفی انجام میدهد این است که احتمالاتی را برای هر کلمه ارائه میکند و بر این اساس برای خروجیهای بعدی نمونهگیری میکند. یکی از مسائل این است که ممکن است کمی بیش از حد تصادفی باشد. یک راهحل برای این کار این است که وزن بیشتری به کلمات با احتمال بالاتر و وزن کمتر به بقیه اختصاص دهیم. در نمونهگیری، دما پارامتری است که میتوانید آن را تنظیم کنید تا پیشبینیهایتان تصادفی باشد. در مقیاس 0-1 اندازهگیری میشود که نشان دهنده تصادفی کم تا زیاد است.
رمزگشایی جستجوی پرتو:
رمزگشایی جستجوی پرتو یک جایگزین اکتشافیتر برای رمزگشایی است که از یک نوع جستجوی محدود در عرض اول برای ایجاد یک جریان جستجو استفاده میکند. جستجوی پرتو به جای ارائه بهترین خروجی مانند رمزگشایی حریصانه، چندین گزینه را بر اساس احتمال شرطی انتخاب میکند.
هایپرپارامتر در اینجا پارامتر عرض پرتو B، که تعداد مسیرهای انشعاب را بر اساس عددی که انتخاب میکنید، مانند سه، محدود میکند. سپس در هر مرحله زمانی، جستجوی پرتو B تعداد بهترین گزینهها را با بیشترین احتمال به عنوان محتملترین گزینه برای مرحله زمانی انتخاب میکند. هنگامی که این احتمالات B را دارید، می توانید یکی از آنها را با بیشترین احتمال انتخاب کنید.
این یک رمزگشایی جستجوی پرتو است، که تنها به خروجی بعدی نگاه نمی کند، بلکه یک پارامتر عرض پرتو را برای انتخاب چندین گزینه ممکن که در مثال/تصویر زیر نشان داده شده است، اعمال می کند.
حداقل خطر Baye:
پیادهسازی MBR بسیار ساده است. با تولید چندین نمونه تصادفی شروع کنید، سپس هر نمونه را در آن گروه مقایسه کنید و برای هر مقایسه امتیاز شباهت را تعیین کنید و در نهایت، نمونهای را انتخاب کنید که بیشترین شباهت را داشته باشد.
در اینجا مراحل پیادهسازی MBR روی یک مجموعه کوچک از چهار نمونه آورده شده است. ابتدا شباهت بین نمونه اول و دوم را محاسبه کنید. سپس برای نمونه اول و سوم، سپس دوباره برای نمونه چهارم اول محاسبه کنید. سپس میانگین آن سه امتیاز شباهت را بگیرید.
مراحل نمونه برای MBR در زیر نشان داده شده است.
منطق پشت "نمره شباهت" در MBR:
رمزگشای MBR را میتوان به عنوان انتخاب یک ترجمه توافقی در نظر گرفت، یعنی برای هر جمله، رمزگشا ترجمهای را انتخاب میکند که به طور متوسط به همه ترجمهها و ترازهای احتمالی نزدیکتر است. نزدیکی تحت تابع زیان بهره اندازهگیری میشود.
اول، چگونه میتوانید چنین نزدیکی را اندازهگیری کنید؟ میتوان از نمره شباهت به عنوان ROUGE استفاده کرد. زیرا نمره شباهت مکمل تابع فاصله است. از این رو، هنگامی که شما شباهت بالایی داشته باشید، فاصله کمی بدست میآورید.
علاوه بر این، "همه ترجمههای احتمالی[4]" را در نظر بگیرید. از آنجایی که ما نمیتوانیم همه ترجمههای ممکن را بگیریم، بنابراین از آنها نمونه میگیریم و با نمونهبرداری از ترجمههای احتمالی شما، "ترجمههای احتمالی" را با احتمال زیاد انتخاب میکنید.
اکنون، شما ترجمههای احتمالی دارید و میخواهید بهترین را انتخاب کنید. چگونه آن را انجام میدهید؟ یکی از آنها را انتخاب کنید که نزدیکترین آنها به بقیه باشد.
به طور شهودی میتوان تصور کرد که مرکز دیسک دقیقاً با این ویژگی نقطه است. فاصله را با سایر نقاط روی دیسک به حداقل میرساند. اگر ترجمهها روی این دیسک پراکنده میشدند، بهترین آنها جایی در اطراف مرکز خواهد بود. این به این دلیل است که "به طور متوسط" بیشترین شباهت را با تمام ترجمههای دیگر دارد. این یک تقریب خوب است.
از نظر ریاضی/رسمی همه چیز پیچیدهتر میشود و MBR برای خودش یک حوزه تحقیقاتی است!