آموزشترنسفورمرها

درس ۱۰ از ۶۲، هوش مصنوعی، حدود ۱۰ دقیقه خواندن

تولد توجه (۲۰۱۴)

جواب کوتاه

توجه سال ۲۰۱۴ توی یه پژوهش ترجمه به دنیا اومد. به‌جای اینکه کل جمله توی یه بردار جا بشه، رمزگذار برای هر کلمه یه «یادداشت» نگه می‌داشت، با خوندن جمله از هر دو طرف. بعد رمزگشا، هر بار که می‌خواست یه کلمه بنویسه، با یه شبکه‌ی کوچیک به هر یادداشت یه امتیاز می‌داد، امتیازها رو با سافت‌مکس به وزن‌هایی تبدیل می‌کرد که جمعشون یکه، و یادداشت‌ها رو با همین وزن‌ها با هم قاطی می‌کرد. نتیجه یه بردار زمینه‌ی تازه برای همون کلمه بود. خود پژوهش اسمش رو گذاشت سازوکار توجه: رمزگشا تصمیم می‌گیره به کدوم بخش جمله نگاه کنه. با این کار، ترجمه‌ی جمله‌های بلند خیلی بهتر شد.

یعنی چی

مترجمی که کل متن جلوشه، و هر کلمه که می‌نویسه، با انگشت نشون می‌ده الان به کجا نگاه می‌کنه.

توی درس گلوگاه دیدیم رمزگشا فقط یه بردار داشت و نمی‌تونست به عقب نگاه کنه. حالا فرض کنید مترجم، به‌جای یه یادداشت کوچیک، کل متن اصلی جلوشه، و هر کلمه‌ای که می‌خواد بنویسه، انگشتش رو روی بخشی از متن اصلی می‌ذاره که الان مهمه. اون انگشت، همون توجهه. این درس نشون می‌ده این انگشت چطور با عدد ساخته شد.

یه یادداشت برای هر کلمه

قدم اول اینه که برای هر کلمه یه یادداشت داشته باشیم. پژوهش ۲۰۱۴ این کار رو با یه شبکه‌ی بازگشتی دوطرفه کرد: یکی جمله رو از اول به آخر می‌خونه، یکی از آخر به اول. برای هر کلمه، حالت این دو کنار هم گذاشته می‌شه. این‌طوری یادداشت هر کلمه هم از قبلی‌ها خبر داره هم از بعدی‌ها، ولی بیشتر روی کلمه‌های دور و بر خودش تمرکز داره. حالا به‌جای یه بردار، یه ردیف یادداشت داریم.

وزن و جمع

حالا رمزگشا می‌خواد اولین کلمه‌ی ترجمه، «I»، رو بنویسه. سه قدم.

اول امتیازه. یه شبکه‌ی کوچیک، که پژوهش اسمش رو گذاشت «مدل تطبیق»، به هر یادداشت یه امتیاز می‌ده؛ یعنی این کلمه چقدر به کلمه‌ای که الان می‌خوام بنویسم ربط داره. این شبکه با بقیه‌ی مدل با هم آموزش می‌بینه. بعد وزن. امتیازها با سافت‌مکس به وزن تبدیل می‌شن، عددهایی مثبت که جمعشون یکه. توی مثال ساختگی ما، امتیازهای ۲ و ۰٫۵ و ۰٫۱ می‌شن ۰٫۷۳ و ۰٫۱۶ و ۰٫۱۱. آخر جمع. یادداشت‌ها با همین وزن‌ها با هم قاطی می‌شن و یه «بردار زمینه»ی تازه می‌سازن، که این‌جا بیشترش از «من»ه. برای کلمه‌ی بعد، همه‌ی این کار از اول تکرار می‌شه، با وزن‌های تازه.

چی یاد گرفت

جالب‌ترین بخش پژوهش اینه که وزن‌ها رو کشیدن: برای هر کلمه‌ی خروجی، به هر کلمه‌ی ورودی چقدر نگاه کرده.

بیشتر وزن‌ها روی قطر بودن، یعنی ترتیب کلمه‌ها توی دو زبان شبیه هم بود. ولی جاهایی نه. توی فرانسوی صفت بعد از اسم میاد، برعکس انگلیسی. مدل «European Economic Area» رو درست به «zone économique européenne» ترجمه کرد: برای «zone» از روی دو کلمه پرید و به «Area» نگاه کرد، بعد قدم‌به‌قدم عقب رفت. هیچ‌کس این قاعده رو بهش نگفته بود؛ از روی جفت جمله‌ها، خودش یاد گرفت.

نرم، نه سخت

چرا وزن، و نه فقط انتخاب یه کلمه؟ چون گاهی یه کلمه‌ی خروجی به چند کلمه‌ی ورودی ربط داره. پژوهش مثال «the man» رو آورد که می‌شه «l’ homme»؛ برای نوشتن «l’» مدل باید هم به «the» نگاه کنه هم به «man»، چون شکل «l’» به کلمه‌ی بعدش بستگی داره. با وزن می‌شه به هر دو نگاه کرد. یه دلیل دیگه هم داره: چون وزن‌ها نرم و پیوسته‌ان، سیگنال آموزش از توشون رد می‌شه و کل مدل، با مدل تطبیقش، با هم یاد می‌گیره.

امتیاز ساده‌تر

یه سال بعد، یه پژوهش ۲۰۱۵ پرسید: اون شبکه‌ی کوچیک امتیازدهی واقعا لازمه؟

سه راه برای امتیاز دادن رو امتحان کرد. یکی همون شبکه‌ی کوچیک پژوهش ۲۰۱۴. یکی خیلی ساده‌تر: ضرب داخلی حالت رمزگشا با هر یادداشت؛ یعنی هر چی دو بردار هم‌جهت‌تر، امتیاز بیشتر. و یکی وسط این دو: ضرب داخلی، ولی با یه جدول وزن یادگرفتنی وسطش. یه فرق دیگه هم امتحان کرد: به‌جای نگاه به همه‌ی کلمه‌ها، فقط به یه پنجره دور یه جای حدسی نگاه کنه.

نتیجه: توجه روی ترجمه‌ی انگلیسی به آلمانی، ۵ واحد BLEU از مدل بی توجه بهتر بود، و ترکیب چند مدلشون به ۲۵٫۹ رسید، بهترین نتیجه‌ی اون زمان. ولی مهم‌ترین میراثش برای ما همون ضرب داخلی ساده‌ست: سه سال بعد، ترنسفورمر امتیاز توجه رو دقیقا با ضرب داخلی حساب کرد؛ درس امتیاز توجه همین رو قدم‌به‌قدم باز می‌کنه.

چقدر بهتر شد

پژوهش هر دو مدل رو با یه داده و یه روش آموزش داد، هر کدوم حدود ۵ روز. با جمله‌های تا ۵۰ کلمه، مدل یه‌برداری به ۱۷٫۸ BLEU رسید و مدل با توجه به ۲۶٫۸. حتی مدل با توجه‌ای که فقط با جمله‌های تا ۳۰ کلمه آموزش دیده بود، از مدل یه‌برداری ۵۰ کلمه‌ای بهتر شد. و روی جمله‌هایی که کلمه‌ی ناشناخته نداشتن، به اندازه‌ی یه سیستم ترجمه‌ی آماری جاافتاده رسید، که داده‌ی اضافه هم داشت. سه سال بعد، مقاله‌ی ۲۰۱۷ پرسید: اگه توجه این‌قدر خوبه، چرا شبکه‌ی بازگشتی رو نگه داریم؟

توجه روی عکس

توجه خیلی زود از ترجمه بیرون رفت. یکی از اولین جاهاش، نوشتن توضیح برای عکس بود.

یه پژوهش ۲۰۱۵ به‌جای جمله‌ی ورودی، یه عکس به مدل داد که به تکه‌های زیادی تقسیم شده بود؛ هر تکه یه یادداشت. بعد رمزگشا موقع نوشتن هر کلمه‌ی توضیح، با همون امتیاز و وزن و جمع، به تکه‌هایی که الان مهمن نگاه می‌کرد. تصویرهای خود پژوهش نشون می‌دادن موقع نوشتن اسم یه چیز، مدل بیشتر به همون جای عکس نگاه می‌کنه که اون چیز اون‌جاست. یعنی همون انگشت مترجم، این بار روی یه عکس. همین فکر سال‌ها بعد به مدل‌های چندحالته رسید.

چند نکته

  • یادداشت برای هر کلمه، نه یه بردار برای همه.
  • امتیاز، وزن، جمع. برای هر کلمه‌ی خروجی، از اول.
  • وزن‌ها جمعشون یکه. کار سافت‌مکس.
  • نرم، تا هم چند کلمه دیده بشن و هم آموزش رد بشه.

با این درس ایستگاه «پیش از ترنسفورمر» تموم شد. ایستگاه بعد توجه رو از صفر، با عدد و حتی با دست، می‌سازه: مکانیزم توجه چیست.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • یه یادداشت برای هر کلمه، از دو طرف.
  • هر کلمه‌ی خروجی، امتیاز برای همه.
  • سافت‌مکس: امتیاز به وزن.
  • جمع وزن‌دار: بردار زمینه‌ی تازه.
  • جمله‌ی بلند دیگه خراب نشد.

خودتون رو بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخرش فقط کارنامه رو می‌بینید: چند تا درست، چند تا نادرست.

خودتون رو بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها عوض می‌شه.
  • تا آخر نمی‌گیم کدوم جواب درست بوده؛ می‌تونید برگردید و جوابتون رو عوض کنید.
  • آخرش کارنامه می‌گیرید: چند تا درست، چند تا نادرست.
  • اگه وسطش بستید، دوباره که باز کنید از همون‌جا ادامه می‌دید.

فصل‌های این درس

درس بعد