معمای شروع: چرا مدل‌های زبانی به ترتیب کلمات نیاز دارند؟

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

چالش اصلی: ترنسفورمرها ذاتاً فاقد حس زمانی هستند

پیش از پیدایش ترنسفورمرها، شبکه‌های بازگشتی (RNN) در پردازش زبان طبیعی حکممرانی می‌کردند. این شبکه‌ها ذاتاً ترتیب داده‌ها را طی پردازش گام‌به‌گام و توالی‌وار درک می‌کنند. اما ترنسفورمرها، آن‌گونه که در مقاله Attention Is All You Need معرفی شدند، معماری را تغییر دادند. این مدل‌ها از پردازش توالی‌وار پرهیز می‌کنند تا بتوانند داده‌ها را به‌طور کاملاً موازی پردازش کنند. این ویژگی سرعت محاسبات را چندین برابر می‌کند، اما یک چالش بزرگ به همراه دارد: مدل در نگاه اول نمی‌داند کدام توکن اول، دوم یا آخر توالی قرار دارد.

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

نمایش شماتیک نحوه ترکیب بردارهای معنایی با کدگذاری موقعیت در ترنسفورمر

کدگذاری موقعیت دقیقاً به چه شکل عمل می‌کند؟

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

[The, cat, sat, on, the, mat]

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

چرا صرفاً از شماره اندیس استفاده نمی‌شود؟

بسیاری از مبتدیان تصور می‌کنند ساده‌ترین راه، افزودن شماره 1، 2، 3 و ادامه آن به هر توکن است. اما این رویکرد با دو مانع جدی روبروست:

  • مشکلات بزرگی مقادیر: در توالی‌های طولانی، اعداد اندیس به‌شدت بزرگ می‌شوند و فرآیند همگرایی شبکه عصبی را مختل می‌کنند.
  • چالش‌های نرمال‌سازی: اگر بخواهیم این اعداد را بین 0 و 1 نرمال کنیم، توالی‌های با طول‌های مختلف، الگوهای نرمال‌سازی متفاوتی خواهند داشت که ثبات مدل را از بین می‌برد.

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

ریاضیات پشت صحنه؛ سینوس و کسینوس

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

فرض کنید توالی ورودی طولی برابر با L داشته باشد و بخواهیم کدگذاری موقعیت kام را محاسبه کنیم. فرمول نهایی بدین شکل ساخته می‌شود:

  • ابعاد با اندیس زوج: P(k, 2i) = sin(k / 10000^(2i/d))
  • ابعاد با اندیس فرد: P(k, 2i+1) = cos(k / 10000^(2i/d))

در این معادلات، k جایگاه توکن در جمله، d بُعد فضای امبدینگ (مثلاً 512) و i ایندکس ستون‌های ماتریس کدگذاری است. مقیاس 10000 به‌عنوان عددی ثابت برای کنترل شیب نوسانات موج انتخاب شده است. با اجرای این فرمول، ستون‌های زوج ماتریس با مقادیر سینوس و ستون‌های فرد با مقادیر کسینوس پر می‌شوند. جمله توانی 10000^(2i/d) تعیین می‌کند که فرکانس موج‌ها چگونه در ابعاد مختلف تغییر کند.

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

افق پیش‌رو

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