گلوگاه یک بردار
جواب کوتاه
گلوگاه یعنی همهچیز باید از یه جای تنگ رد بشه. توی رمزگذار و رمزگشا، کل جملهی ورودی، چه سه کلمه باشه چه پنجاه کلمه، باید توی یه بردار با اندازهی ثابت جا بشه، و رمزگشا فقط همون رو میبینه. یه پژوهش ۲۰۱۴ نشون داد این روش روی جملههای کوتاه نسبتا خوب کار میکرد، ولی با بلند شدن جمله، کیفیت ترجمه بهسرعت پایین میومد. یه پژوهش دیگهی همون سال حدس زد مشکل همین بردار ثابته، و یه راه داد: بهجای یه بردار، برای هر کلمه یه بردار نگه دار و بذار رمزگشا هر بار به اونهایی که لازم داره دوباره نگاه کنه. این ایده، همون توجهه.
یعنی چی
یه چمدون با اندازهی ثابت: برای آخر هفته کافیه، برای یه سال نه.
توی درس رمزگذار و رمزگشا دیدیم که وسط دو شبکه یه بردار با اندازهی ثابت هست، مثلا ۸۰۰۰ عدد. حالا فرض کنید این بردار یه چمدونه. برای یه جملهی کوتاه، جا زیاده. ولی هر چی جمله بلندتر بشه، باید چیزهای بیشتری رو توی همون چمدون بچپونید، و یه جایی بعضیها جا میمونن. اسم این مشکل «گلوگاه»ه: یه جای تنگ که همهچی باید ازش رد بشه.
قیف
جمله از دهنهی پهن قیف وارد میشه، از گلوی باریکش رد میشه، و رمزگشا فقط چیزی رو میبینه که از این گلو رد شده. رمزگشا نمیتونه برگرده و دوباره به کلمهی سوم ورودی نگاه کنه؛ فقط همون یه بردار رو داره. هر جزئیاتی که موقع فشرده شدن گم بشه، برای همیشه گم شده.
شاهد
این فقط یه حدس نبود. یه پژوهش ۲۰۱۴ خواص همین مدلها رو بررسی کرد و دید ترجمهی عصبی روی جملههای کوتاهی که کلمهی ناشناخته ندارن نسبتا خوب کار میکنه، ولی با بلند شدن جمله، کیفیتش بهسرعت پایین میاد. یه پژوهش دیگهی همون سال نمودارش رو کشید: خط مدل یهبرداری، با بلندتر شدن جمله، شدیدا پایین اومد. اینجا فقط شکل کلیش رو کشیدیم؛ خطچین اون بالا رو هم پایینتر توضیح میدیم.
کلمههای ناشناخته
همون پژوهش ۲۰۱۴ یه مشکل دوم هم پیدا کرد که با گلوگاه جمع میشد: کلمههای ناشناخته.
اون مدلها یه واژهنامهی ثابت داشتن، مثلا ۳۰ هزار کلمهی پرتکرار. هر کلمهی دیگه، مثل یه اسم خاص یا یه کلمهی کمکاربرد، به یه نشونهی واحد «ناشناخته» تبدیل میشد؛ یعنی اسم یه محله و اسم یه غذا، هر دو یکی میشدن. پژوهشگرها دیدن ترجمه وقتی هم جمله بلندتر میشد و هم کلمههای ناشناخته بیشتر، بهسرعت بدتر میشد. این مشکل بعدا با تکه کردن کلمهها حل شد، همون روش جفتهای پرتکرار؛ که مقالهی ۲۰۱۷ هم ازش استفاده کرد.
چرا
یه حساب ساده، فقط برای شهود: اگه ۸۰۰۰ عدد داشته باشید و جمله ۱۰ کلمه باشه، بهطور میانگین حدود ۸۰۰ عدد برای هر کلمه هست. با ۵۰ کلمه، حدود ۱۶۰؛ با ۱۰۰ کلمه، حدود ۸۰. مدل دقیقا اینطوری تقسیم نمیکنه، ولی فکرش درسته: هر چی جمله بلندتر، جای کمتری برای هر جزئیات. خود پژوهش ۲۰۱۴ هم گفت این کار مخصوصا با جملههای بلندتر از جملههایی که مدل موقع آموزش دیده، سختتره. و این با فراموشی شبکهی بازگشتی هم جمع میشه: کلمههای اول، هم دورن و هم باید توی همون جای تنگ بمونن.
گلوگاه عمدی
گلوگاه همیشه بد نیست. یه جور شبکه هست که عمدا گلوگاه میذاره.
ویکیپدیا بهش میگه «خودرمزگذار»: یه رمزگذار ورودی رو به یه کد کوچیکتر فشرده میکنه، و یه رمزگشا سعی میکنه از روی همون کد، خود ورودی رو دوباره بسازه. چون کد از ورودی کوچیکتره، شبکه نمیتونه فقط کپی کنه؛ مجبوره یاد بگیره چی مهمه و چی رو میشه دور ریخت. ایدهش از دههی ۱۹۸۰ هست و برای فشرده کردن داده و پیدا کردن الگو به کار میره.
فرقش با ترجمه اینه که اینجا هدف خود فشردهسازیه؛ ولی توی ترجمه، هدف یه جملهی کامل و دقیق تو یه زبان دیگهست، و هر جزئیاتی که توی گلوگاه گم بشه، توی ترجمه هم گم میشه. پس گلوگاه برای «خلاصه کن» خوبه، برای «همهچی رو نگه دار» نه.
ایدهی راهحل
پژوهش دوم، که حدس زده بود بردار ثابت گلوگاهه، یه راه ساده داد: اصلا چرا همهچی رو توی یه بردار بریزیم؟
بهجای یه بردار، رمزگذار برای هر کلمه یه بردار نگه میداره، یعنی یه ردیف بردار. بعد رمزگشا هر بار که میخواد یه کلمه بنویسه، به این ردیف نگاه میکنه و خودش انتخاب میکنه کدومها الان به کارش میان. مثلا موقع نوشتن «bread»، بیشتر به بردار «نون» نگاه میکنه. اینطوری دیگه لازم نیست همهچی، هر طولی که داشته باشه، توی یه بردار چپونده بشه. اسم این نگاه کردن شد توجه.
چی شد
همون نمودار شاهد رو یادتونه؟ خطچین اون بالا مال مدل تازهست. پژوهش گزارش داد مدل با توجه، با بلند شدن جمله، خیلی پایدارتر بود، و یکی از نسخههاش حتی با جملههای ۵۰ کلمهای یا بیشتر هم افت نکرد. یعنی گلوگاه واقعا مشکل بود، و باز کردنش جواب داد. اینجا اولین بار بود که توجه کنار یه شبکهی بازگشتی نشست؛ سه سال بعد، ترنسفورمر کل شبکهی بازگشتی رو برداشت و فقط توجه رو نگه داشت.
چند نکته
- گلوگاه یعنی یه جای تنگ برای همهچی.
- جملهی کوتاه جا میشه، بلند نه.
- رمزگشا نمیتونست به عقب نگاه کنه.
- راه: یه بردار برای هر کلمه، و نگاه دوباره.
درس بعد، تولد همین نگاه دوباره رو از نزدیک میبینه: تولد توجه.
جمعبندی. آنچه از این درس با خودتان میبرید.
- کل جمله از یه بردار ثابت رد میشه.
- کوتاه: خوب؛ بلند: خراب.
- هر چی بلندتر، سهم هر کلمه کمتر.
- راه: یه بردار برای هر کلمه.
- رمزگشا دوباره نگاه میکنه: توجه.
خودتون رو بسنجید
۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو میبینید: چند تا درست، چند تا نادرست.