درک توجه در ترانسفورماتورها | به سمت هوش مصنوعی


نویسنده(های): شاشانک بوشان

در ابتدا منتشر شد به سمت هوش مصنوعی.

مقدمه

ترانسفورماتورها همه جا هستند یادگیری ماشینی امروزه چیزی که به عنوان یک معماری جدید برای کارهای زبانی ترتیب به ترتیب مانند ترجمه، پاسخگویی به سؤال و غیره شروع شد، اکنون تقریباً در همه موارد یافت می شود. ML دامنه ها، از بینایی کامپیوتر گرفته تا صدا و توصیه. در حالی که یک ترانسفورماتور دارای اجزای متعددی است، قطعه هسته بدون شک استفاده آن از مکانیسم توجه است. در این پست ما با بررسی اینکه توجه چیست و ترانسفورماتورها چگونه از آن استفاده می کنند شروع می کنیم، سپس به برخی استدلال های نظری برای اینکه چرا اینقدر خوب کار می کند / مقیاس می شود و در نهایت به برخی از کاستی های پیشنهاد اولیه ترانسفورماتور و بررسی خواهیم کرد. بهبودهای بالقوه

توجه چیست

فرض کنید برای شما جمله «امروز تاریخ به خوبی گذشتو نیاز به کشف کردن کلمه چیست تاریخ به معنی. از آنجایی که خود این کلمه معانی زیادی دارد، میوه، تاریخ تقویمو غیره، معنای جهانی وجود ندارد که بتوان از آن استفاده کرد. درعوض، باید به زمینه تکیه کنیم، یا به عبارت دیگر به زمینه توجه کنیم، «خوب پیش رفت» تا بفهمیم که احتمالاً به معنای یک قرار عاشقانه است. حال بیایید ببینیم چگونه از نظر ریاضی الف) این کلمات متنی را پیدا می کنیم و ب) سپس از آنها برای رسیدن به معنای صحیح کلمه استفاده می کنیم.

ابتدا، جمله را به کلمات یا نشانه‌ها تقسیم می‌کنیم (در کاربردهای عملی، نشانه‌ها معمولاً زیر کلمه هستند) و سپس هر کلمه را با نمایش تعبیه‌شده مربوط به آن از یک سیستم از پیش آموخته شده جایگزین می‌کنیم. اگر مطمئن نیستید جاسازی ها چیست، فقط آنها را به عنوان یک بردار n بعدی در نظر بگیرید که از نظر معنایی یک کلمه را نشان می دهد. این نمایش ها همچنین ویژگی های رابطه ای را بین کلمات حفظ می کنند. مثلاً فاصله بین نمایش پادشاه و ملکه به اندازه فاصله بین زن و مرد خواهد بود.

حالا بیایید به توجه برگردیم. با توجه به اینکه ما این تعبیه‌ها را داریم که اطلاعات معنایی را جمع‌آوری می‌کنند، یکی از راه‌های کشف کلمات متنی محاسبه شباهت بین واژه‌های embeddings است. کلمات با شباهت زیاد به احتمال زیاد با هم در متن یافت می شوند و آنها را کاندیدای مناسبی برای ارائه اطلاعات متنی می کند. شباهت را می توان با استفاده از توابعی مانند شباهت کسینوس یا حاصل ضرب نقطه محاسبه کرد. هنگامی که شباهت کلمه مورد نظر را با تمام کلمات در جمله (از جمله کلمه مورد نظر) محاسبه کردیم، می‌توانیم با استفاده از شباهت به عنوان وزن، یک مجموع وزنی از جاسازی‌های کلمه را انجام دهیم تا یک جاسازی به روز برای کلمه مورد نظر بدست آوریم.

اگر مشخص نیست چرا انجام یک جمع وزنی کار می کند. به تعبیه اولیه کلمه هدف “تاریخ” به عنوان یک نمایش متوسط ​​که همه معانی مختلف کلمه را در بر می گیرد فکر کنید و ما می خواهیم این نمایش را به سمتی ببریم که با بافت فعلی آن هماهنگ تر باشد. شباهت جاسازی به ما می گوید که چگونه کلمات مختلف باید بر جهت نهایی جاسازی «تاریخ» تأثیر بگذارند. بنابراین، مجموع وزنی به ما اجازه می دهد تا جاسازی را در جهت مناسب حرکت دهیم.

توجه: قبل از انجام جمع وزنی، وزن‌های تشابه باید نرمال شوند تا به 1 برسد.

نحوه استفاده از توجه در ترانسفورماتورها

اکنون، ما آماده هستیم تا چگونگی تعریف توجه در مقاله اصلی Transformer را بررسی کنیم. توجه تنها چیزی است که نیاز دارید.

در اینجا Q، K و V همگی یک ماتریس NxD هستند که به ترتیب ماتریس query، key و value نامیده می شوند. N تعداد نشانه‌ها/کلماتی است که هر کدام با یک بردار اندازه D نشان داده می‌شوند. همچنین یک ضریب مقیاس‌بندی و پوشش اختیاری در معادله وجود دارد که من برای سادگی آن را نادیده می‌گیرم. در حالی که این ممکن است بسیار متفاوت از آنچه که ما به آن نگاه کردیم به نظر برسد، همان کار را انجام می دهد. اگر فرض کنیم که Q، K و V همه یک ماتریس NxD هستند. سپس Q*Kᵗ یک عملیات ماتریسی است که محاسبه شباهت را برای همه جفت توکن ها به طور همزمان انجام می دهد. خروجی این عملیات یک ماتریس NxN خواهد بود که ردیف ith شباهت ith را با توکن های باقیمانده در جمله نشان می دهد. با استفاده از مثال قبلی «امروز تاریخ خوب گذشت” سطر 1 (با فرض 0 ماتریس نمایه شده) شباهت کلمه “تاریخ” را با همه کلمات دیگر در جمله ذخیره می کند.

سپس Softmax این مقادیر شباهت را عادی می کند. در نهایت، ضرب ماتریسی خروجی softmax با V، مجموع وزنی جاسازی‌ها را برای همه نشانه‌ها/کلمات به طور همزمان محاسبه می‌کند.

پس چرا 3 ماتریس مختلف وجود دارد و اهمیت آنها چیست؟

ماتریس‌های Query، Key و Value نسخه‌های تبدیل‌شده ماتریس تعبیه‌شده ورودی هستند. قبل از اینکه به مکانیسم توجه منتقل شود، تعبیه ورودی از 3 پیش بینی خطی عبور می کند، دلیل انجام این کار اضافه کردن قدرت یادگیری بیشتر به مکانیسم توجه است. اصطلاحات مورد استفاده از سیستم های پایگاه داده به عاریت گرفته شده است. Q/query مقادیری را نشان می دهد که می خواهیم توجه را برای آنها محاسبه کنیم، K/keys مقادیری را نشان می دهد که می توان توجه را بر روی آنها محاسبه کرد (کلیدهای موجود در پایگاه داده). در نهایت، V/values ​​مقادیر خروجی هستند.

توجه چند سر

هر بلوک ترانسفورماتور دارای مکانیسم های توجه یا سرهای متعددی است که به صورت موازی کار می کنند. خروجی‌های هدهای مجزا به یکدیگر متصل می‌شوند و سپس از طریق یک لایه خطی عبور می‌کنند تا خروجی نهایی را ایجاد کنند. شکل زیر تنظیمات کلی را نشان می دهد.

توجه چند سر، منبع: توجه تمام چیزی است که شما نیاز دارید

دو نکته مهم در مورد راه اندازی چند سر وجود دارد:

  1. هر سر توجه ماتریس های مخصوص به خود را دارد که ماتریس های Q، K و V را ایجاد می کند. این به هر سر توجه اجازه می دهد تا روی ویژگی های مختلف تمرکز کند
  2. بعد تعبیه هر نشانه در ماتریس Q، K و V، K کوچکتر از بعد جاسازی اصلی E است به طوری که K = E/n که در آن n تعداد سرهای توجه است. به همین دلیل است که خروجی سرهای توجه به هم متصل می شود و در نتیجه دوباره اندازه خروجی E می شود. دلیل انجام این کار اطمینان از این است که توجه چند سر از نظر محاسباتی معادل یک توجه واحد است که اندازه تعبیه آن E است.

چه چیزی ترانسفورماتورها را قدرتمند می کند

برخلاف Convolutional یا شبکه عصبی مکرر، ترانسفورماتورها یا به عبارتی تنظیم توجه هیچ فرضی در مورد راه اندازی مشکل نمی کند. بلکه این رابطه بر اساس داده ها آموخته می شود. یک ترانسفورماتور می تواند هر دو a را تقلید کند شبکه عصبی کانولوشنال و یک RNN. این فقدان فرض یا عدم تعصب القایی چیزی است که ترانسفورماتورها را بسیار قدرتمند می کند.

اما این بدان معناست که ترانسفورماتورها برای تعمیم خوب به داده های زیادی نیاز دارند. در اولین مقاله Vision Transformer “یک تصویر 16×16 کلمه ارزش داردنویسندگان خاطرنشان کردند که ترانسفورماتورها فقط شروع به عملکرد بهتر کردند CNN معماری مبتنی بر زمانی که آنها بر روی مجموعه های آموزشی بزرگ مانند JFT 300M که دارای 300M تصاویر برچسب دار هستند آموزش دیده اند.

عملکرد مدل‌های ViT در مقایسه با BiT ResNets (منطقه سایه‌دار) زمانی که از قبل در موارد کوچک آموزش داده شده‌اند، بدتر هستند مجموعه داده ها، وقتی روی بزرگتر از قبل آموزش داده می شوند می درخشند مجموعه داده ها. منبع: یک تصویر 16×16 کلمه ارزش دارد

راه دیگر برای درک عبارت “ترانسفورماتورها فاقد القایی هستند” این است که مکانیسم توجه را به عنوان یک شبکه عصبی کاملا متصل در نظر بگیرید که ورودی آن V و وزن ها خروجی عملیات Softmax (Q*Kᵗ) هستند. ماهیت دینامیکی و وابسته به ورودی وزن ها به ترانسفورماتور قدرت توصیفی آن را می دهد.

کارآمدتر کردن ترانسفورماتورها

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

روش های مبتنی بر الگو

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

  • باند یا بلوک توجه: این الگو بر این واقعیت متکی است که بیشتر داده ها دارای ویژگی محلی قوی هستند. بنابراین طبیعی است که هر پرس و جو را محدود به توکن های همسایه خود کنیم. مدل هایی مانند در جهت بلوک (Qiu و همکاران) از این رویکرد استفاده کنید
  • توجه گام به گام: این الگو شبیه توجه Band/Block است، به جز میدان دریافتی، یعنی میدان توجه بزرگتر با شکاف های بین آن است. مدل هایی مانند ترانسفورماتور اسپارس (چایلد و همکاران) از این روش استفاده کنید
  • الگوهای قابل یادگیری: به جای تکیه بر الگوهای از پیش تعیین شده ثابت، الگوها از داده ها آموخته می شوند. نمونه‌ای از این Reformer (Kitaev و همکاران، 2020) است که از یک معیار تشابه مبتنی بر هش برای خوشه‌بندی مؤثر توکن‌ها در ماتریس‌های Q و K استفاده می‌کند و سپس توجه را برای یک نشانه داده شده فقط به نشانه‌های موجود در خوشه آن محدود می‌کند.

این رویکردهای مبتنی بر الگو، سوگیری استقرایی را به معماری مدل اضافه می‌کنند تا آن را کارآمدتر کنند.

روش های کم رتبه

روش های پایین رتبه راه دیگری برای بهبود کارایی است. ایده کلیدی این است که فرض کنیم یک تقریب رتبه پایینی از ماتریس توجه به خود وجود دارد. لینفورمر (وانگ و همکاران، 2020c) نمونه اولیه این تکنیک است. ابتدا به طور تجربی نشان می‌دهد که توجه به خود رتبه پایینی دارد و سپس برای بهره‌برداری از آن، ماتریس کلیدها و مقادیر را به یک ماتریس KxD (N »K) پایین‌تر نشان می‌دهد.

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

آنها نشان می‌دهند که انتخاب K می‌تواند ثابت و مستقل از طول دنباله باشد، بنابراین پیچیدگی زمان اجرا را به طول دنباله ورودی N خطی می‌کند.

این همه برای این پست است، ممنون که خواندید!

مراجع

  1. واسوانی و همکاران توجه تنها چیزی است که نیاز دارید
  2. دوسوویتسکی و. al. ارزش یک تصویر 16×16 کلمه است: ترانسفورماتور برای تشخیص تصویر در مقیاس
  3. تای و همکاران ترانسفورماتورهای کارآمد: یک بررسی
  4. لین و همکاران بررسی ترانسفورماتورها
  5. چایلد و همکاران ایجاد توالی های طولانی با ترانسفورماتورهای پراکنده
  6. کیو و همکاران خود توجهی در جهت بلوک برای درک طولانی سند
  7. کیتایف، قیصر و همکاران. Reformer: The Efficient Transformer
  8. وانگ و همکاران Linformer: توجه به خود با پیچیدگی خطی

منتشر شده از طریق به سمت هوش مصنوعی



منبع: https://towardsai.net/p/machine-learning/understanding-attention-in-transformers