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

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

امتیاز توجه: ضرب پرسش در کلید

جواب کوتاه

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

یعنی چی

امتیاز یعنی پرسش یه کلمه چقدر با کلید یه کلمه‌ی دیگه جوره.

توی درس پرسش، کلید و مقدار دیدیم هر کلمه یه پرسش داره و یه کلید. حالا سوال اینه که این «جور بودن» رو چطور با عدد بسنجیم. جواب ترنسفورمر خیلی ساده‌ست: یه ضرب. همون ضرب داخلی که توی مسیر یادگیری ماشین دیدیم.

فلش‌ها

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

با عدد

یه مثال ساختگی با بردارهای دوعددی، توی جمله‌ی «گربه روی فرش نشست».

پرسش «نشست» دو تا عدد داره، ۱ و ۲. کلید «گربه» هم ۲ و ۱. عدد اول ضرب در عدد اول می‌شه ۲، عدد دوم ضرب در عدد دوم هم ۲، جمعشون می‌شه ۴. با همین حساب، «روی» امتیاز ۲ می‌گیره و «فرش» امتیاز ۱. پس «نشست» بیشتر از همه با «گربه» جوره. اگه یه کلید فرضی منفی ۱ و منفی ۱ بود، امتیازش می‌شد منفی ۳. توی مدل واقعی همین کار با ۶۴ عدد انجام می‌شه، نه دو تا.

همه با هم

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

جدول قرینه نیست

یه نکته‌ی ظریف توی همین جدول هست: امتیاز «نشست» به «گربه»، با امتیاز «گربه» به «نشست» یکی نیست.

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

از امتیاز به وزن

امتیازها هنوز وزن نیستن؛ می‌تونن منفی باشن و جمعشون هر چیزی باشه. برای همین از سافت‌مکس رد می‌شن. سافت‌مکس همه رو مثبت می‌کنه و جوری تقسیم می‌کنه که جمعشون یک بشه. امتیازهای ۴ و ۲ و ۱ می‌شن تقریبا ۰٫۸۴ و ۰٫۱۱ و ۰٫۰۴. دقت کنید فاصله بیشتر شد: «گربه» دو برابر «روی» امتیاز داشت، ولی وزنش حدود هفت برابره. اون کلید منفی ۳ هم وزنی نزدیک صفر می‌گیره. بعد همین وزن‌ها روی مقدارها می‌شینن.

هزینه‌ش

چون هر کلمه با همه‌ی کلمه‌ها امتیاز می‌گیره، جمله‌ی ۴ کلمه‌ای ۱۶ امتیاز داره و جمله‌ی ۸ کلمه‌ای ۶۴ تا. یعنی طول جمله که دو برابر بشه، حساب چهار برابر می‌شه. برای چند کلمه مهم نیست، ولی برای یه کتاب کامل خیلی سنگین می‌شه. درس هزینه‌ی مربعی این رو کامل باز می‌کنه و می‌گه چه راه‌هایی براش پیدا کردن.

فقط جهت

ضرب داخلی دو چیز رو با هم می‌سنجه: هم‌جهت بودن، و طول بردارها. گاهی این دومی دردسر می‌سازه.

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

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

چند نکته

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

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

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

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

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

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

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

۱۵ پرسش

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

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