پیشآموزش در پردازش زبان طبیعی: معرفی پنج فناوری کلیدی
در این مقاله، تصویری کلی از پیشآموزش (pre-training) در پردازش زبان طبیعی (NLP) ترسیم میکنیم. علاوه بر تعریف پیشآموزش، با مروری بر اصلیترین فناوریهایی که در آن نقش دارند، دیدی کلی از توسعه آن به دست میدهیم. در انتهای این مقاله باید بتوانید پیشآموزش را تعریف کنید و شناخت پایهای از این فناوریهای کلیدی داشته باشید:
1- Word2vec
2- ELMo
3- GPT
4- BERT
5-XLNet
پیشآموزش چیست؟
پیشآموزش در هوش مصنوعی به آموزش یک مدل با یک مسئله (task) اشاره دارد؛ از طریق این آموزش، مدل پارامترهایی را تشکیل میدهد که میتوانند در حل دیگر مسائل هم استفاده شوند.
مفهوم پیشآموزش الهامگرفتهشده از تواناییهای انسان است. انسان بهدلیل یک توانایی ذاتی نیاز ندارد، تا هر چیزی را از صفر بیاموزد. در عوض، با انتقال دانشی که قبلاً فراگرفته است و استفاده از آن، دانستههای جدید را درک میکند و به این ترتیب انواع مختلفی از تکالیف جدید را انجام میدهد.
پیشآموزش در حوزه هوش مصنوعی، از روش انسان در پردازش دانش جدید تقلید میکند. به این معنی که از پارامترهای مدل مسائلی که قبلاً یاد گرفته برای مقداردهی پارامترهای مدل مسئله جدید، استفاده میکند. در این روش، دانش قدیمی به مدلهای جدید کمک میکند، تا با استفاده از تجربه گذشته، مسائل جدید را با موفقیت حل کنند و از صفر شروع نکنند.
پنج فناوری اصلی پیشآموزش
اجازه دهید با معرفی مختصر پنج روش اصلی پیشآموزش، بر درک شما از آن بیفزاییم.
1- Word2vec
Word2vec چیست؟ Word2vec یکی از ابزارهای گوگل برای انجام تعبیه پایدار کلمه است.
در سال 2013، گوگل word2vec را که ابزاری مشهور برای تعبیه کلمه است، بهصورت منبع باز منتشر کرد. این مدل میتواند بهصورت کارآمد با میلیونها کلمه، آموزش ببیند. مشخص شده است که تعبیه کلمه آموزشدیده با word2vec این قابلیت افسانهای را دارد که تشابه واژهبهواژه را اندازه بگیرد.
حال ببینیم word2vec از چه اجزایی ساخته شده است.
word2vec از یک شبکه عصبی کمعمق استفاده میکند و ورودی و خروجی آن تعبیههای هر کلمه هستند که به روش one-hot کدگذاری میشوند.
تعبیه one-hot به چه شکل است؟
اگر یک لغتنامه از چهار کلمه تشکیل شده باشد، {‘have’, ‘a’, ‘good’, ‘day’}، تعبیه one-hot کلمه good به شکل [0, 0, 1, 0] است. بهعبارت دیگر، در این طرح هر کلمه i ام در لغتنامه V بهصورت یک بردار دودویی (متشکل از ۰ و ۱) ارائه میشود. برای مشخص کردن iمین کلمه در بردار، ما iمین المان این بردار را برابر ۱ قرار داده و مابقی المانها را برابر ۰ قرار میدهیم.
یک راه آموزش این است که کلمه هدف (تعبیه one-hot کلمه) را بهعنوان خروجی و تعبیه one-hot کلمات پیرامون آن را به عنوان ورودی، پیشبینی کرد. روش دیگر، پیشبینی کلمات پیرامون بهعنوان خروجی و کلمه هدف بهعنوان ورودی است. هر کدام از این روشها با مطابق با مدلهای CBOW و Skip-gram هستند.
بعد از پایان آموزش، ماتریکس پارامتر مدل، لغتنامه تعبیه کلمه را شکل خواهد داد و تعبیه هر کلمه داده آموزشی را به دست میدهد.
در واقع، وقتی از الگوریتم یا مدل word2vec صحبت میکنیم، به مدلهای CBOW و Skip-gram اشاره میکنیم. word2vec بهخودی خود، مدل یا الگوریتم خاصی نیست.
در پایان، باید گفت که سافتمکس سلسلهمراتبی و نمونهبرداری منفی، الگوریتمهای بهینهسازی آموزش مدلهای CBOW و Skip-gram هستند.
2- ELMo
ELMo یک فناوری هوش مصنوعی برای تعبیه پویای کلمه با استفاده از حافظه بلندمدت و کوتاهمدت یا بهاختصار LSTM است.
برای درک ELMo باید در نظر داشت که تعبیه کلمه در Word2Vec پایدار است: بافت هرچه باشد، تغییری در آن ایجاد نمیشود. این ویژگی باعث میشود که روش تعبیه کلمه Word2Vec در مواجهه با کلمات چندمعنا، ناکارآمد باشد. برای رفع این مشکل، مدل ELMo به میان میآید. این مدل میتواند بسته به بافت، معانی متفاوتی برای کلمه ایجاد کند. در این مدل تعبیه کلمه بهصورت پویا و مطابق با بافتی که در آن بهکار رفته است، انجام میشود.
معماری شبکه ELMo از LSTM دوسویه دولایهای بر روی لایه تعبیه کلمه که بهوسیله word2vec آموخته شده است، استفاده میکند.
برای فهم نحوه کار ELMo از لایه word2vec شروع میکنیم که محصول آن تعبیه 1 نامیده میشود. سپس دو لایه دوسویه LSTM را اضافه میکنیم که در آن هر لایه از دو LSTM تشکیل شده است، یکی متن را از راست به چپ و دیگری از چپ به راست میخواند. اکنون سه لایه بهدست میآید. اگر بهعنوان مثال، از نزدیک به لایه دوم نگاه کنیم، میبینیم که دو LSTM درون آن، دو تعبیه جدید تولید میکنند.
پس از به هم پیوستن دو تعبیه لایه دوم، تعبیه 2 را داریم که لایه سوم را تغذیه میکند. LSTM دوسویه لایه سوم، تعبیه 3 را به همان روش لایه دوم ایجاد میکند.
سپس به هر سه تعبیه، وزن داده و جمع بسته میشوند. حال تعبیه کلمه جدیدی بهدست آمده که اطلاعات نحوی (تعبیه 2، خروجی لایه دوم) و اطلاعات معنایی (تعبیه 3، خروجی لایه سوم) در آن رمزنگاری شده است.
فرایند پیشآموزش ELMo نهتنها تعبیه کلمه بلکه ساختار شبکه دولایهای و دوسویه LSTM را نیز میآموزد که هر کدام از آنها در مواجهه با مسائل جدید، نقش خاص خود را ایفا میکنند.
3- GPT
GPT یک مدل زبانی خودهمبسته مبتنی بر ترنسفورمر-رمزگشا است.
هر مدل ترنسفورمر، با مکانیزم خودتوجهی اجرا میشود؛ خودتوجهی قابلیت توجه به موقعیتهای مختلف در توالی ورودی بهمنظور محاسبه یک بازنمایی از آن توالی است.
هر ترنسفورمر از دو بخش تشکیل شده است: رمزنگار و رمزگشا.
GPT یک روش مبتنی بر بخش رمزگشای ترنسفورمر است. همچنین از تعبیه ثابت کلمه بهعنوان ورودی استفاده میکند و افزون بر آن، تعداد لایه مشخصی از بخش رمزگشای ترنسفورمر در روی آن قرار دارند.
بهعنوان مثال، یک جمله چهار کلمهای را در نظر بگیرید: “w1, w2, w3, w4.”
در این جمله w3 را در نظر میگیریم. پس از اینکه تعبیه این کلمه از یک لایه رمزگشا میگذرد، تبدیل به یک تعبیه جدید میشود که شامل اطلاعات توجه این کلمه به w1 و w2 یا بهعبارت دیگر، کلمات سمت چپ w3 است.
اطلاعات توجه، نوعی تعبیه هستند که به تعبیه جدید تصویر بهتری ارائه میدهند، تا مسئله پیشبینی کلمه بعدی را بهتر حل کند.
هنگام تنظیم دقیق مسائل خاص NLP بهوسیله یادگیری نظارتشده، GPT برخلاف ELMo برای حل مسائل، نیازی به بازسازی ساختارهای مدل جدید ندارد. در عوض، مستقیماً آخرین لایه را بهعنوان لایه خروجی مسئله به سافتمکس متصل میکند و سپس کل مدل را بهدقت تنظیم میکند.
4- BERT
در حوزه هوش مصنوعی، BERT یک مدل زبانی خودرمزنگار مبتنی بر ترنسفورمر-رمزنگار است.
گوگل در مقالهای با عنوان « BERT: پیشآموزش ترنسفورمرهای دوسویه عمیق برای درک زبان» روشهای بازنمایی زبانی پیشآموزشدیده را به روشهای مبتنی بر ویژگی مانند ELMo و روشهای مبتنی بر تنظیمات دقیق مانند GPT تقسیم کرده است.
BERT یک روش مبتنی بر تنظیمات و مبتنی بر رمزنگار است (به یاد داشته باشید که GPT مبتنی بر رمزگشا است).
BERT برخلاف GPT یک مدل زبانی دوسویه است و به جای پیشبینی کلمه بعدی با روش معمول خواندن از چپ به راست، دو تکلیف جدید ارائه میکند.
اولین مسئله پیشآموزش BERT، مدل زبانی پوشیده یا MLM نام دارد. در توالی کلمات ورودی این مدل، 15 درصد از کلمات بهصورت تصادفی پوشیده میشوند و مدل باید این کلمات را پیشبینی کند. BERT برخلاف مدلهای قبلی، میتواند این کلمات را از دو جهت پیشبینی کند (چپ به راست و راست به چپ).
بهعلاوه، به جای تعبیه استاندارد کلمه از الگوریتم تعبیهسازی BERT WordPiece بهعنوان ورودی مدل استفاده میشود. دلیل این امر آن است که BERT بهصورت پیشفرض، از کلمات بهعنوان توکن استفاده نمیکند، بلکه از بخشهای سازنده کلمات استفاده میکند. بهعنوان مثال، کلمه playing را در نظر بگیرید که از دو بخش play و ing تشکیل شده است. در اینجا تعبیه مکانی و تعبیه بخشی اضافه میشوند.
تعبیه مکانی، نقصانهای مکانیزم خودتوجهی در نادیده گرفتن اطلاعات موقعیت کلمه را کاهش میدهد. تعبیه بخشی، نشانگر جداسازی دو جمله است. دو جمله ورودی در تعبیه بخشی، با 0 و 1 نشان داده میشوند.
پس از جمعبندی تعبیه WordPiece، تعبیه مکانی و تعبیه بخشی، یک تعبیه جدید بهدست میآید که شامل اطلاعات کلمه و اطلاعات مکانی است. سپس این تعبیه وارد لایه رمزنگار ترنسفورمر BERT میشود، تا آموزش آغاز شود.
5- XLNet
XLNet یک فناوری هوش مصنوعی است که دو مدل GPT و BERT را با هم ادغام میکند.
XLNet ما را با مدل خودهمبسته و مدل DAE (خودرمزنگارهای برطرفکننده خطا) آشنا میکند.
آن مدل زبانیای که کلمه ممکن بعدی را بر اساس بافت پیشین (کلمات سمت چپ در خط انگلیسی) یا کلمات قبلی را بر اساس بافت پسین (کلمات سمت راست در خط انگلیسی) پیشبینی میکند، مدل زبانی خودهمبسته نام دارد.
مدلهای زبانی خودهمبسته بهطور طبیعی با مسائلی منطبق شدهاند که کلمات بعدی را تولید میکنند. از سوی دیگر، مدل خودرمزنگار، بهطور طبیعی میتواند در مدل زبانی دوسویه ادغام شود و بهدلیل داشتن همین ویژگی، برای حل مسائلی که به هر دو بافت پیشین و پسین نیاز دارند، مانند درک مطلب، عالی است.
هدف از ایجاد XLNet این است که بتوان از هر دو مدل زبانی خودهمبسته و خودرمزنگارهای برطرفکننده خطا بهره برد.
بهبیان دیگر، XLNet سعی میکند که مدلهای زبانی دوسویه را در مدلهای زبانی خودهمبسته وارد کند.
همانطور که میدانیم، مدل زبانی خودهمبسته از چپ به راست میخواند؛ بهعبارت دیگر، این مدل نمیتواند بافت پسینی را که در سمت راست کلمه قرار دارد، مشاهده کند. اگر بتوانیم کاری کنیم که این مدل سمت راست کلمه را ببیند، در واقع موفق شدهایم که یک مدل زبانی دوسویه را در یک مدل زبانی خودهمبسته بهکار ببریم.
روش کار XLNet این است که جای کلمه را در جمله ثابت نگه میدارد. بهبیان دیگر، کلمه w که در جایگاه 3 است، در جایگاه 3 باقی میماند، اما کلمات دیگر جمله بهصورت تصادفی به جایگاههای مختلف حرکت میکنند. به این ترتیب، با اینکه مدل تنها سمت راست خود را مشاهده میکند، میتواند کلمات دیگر جمله را نیز ببیند.
بنابراین، فهرستی از جملات ممکن بهدست میآیند و سپس بهصورت تصادفی، چند جمله از جملات ممکن بهعنوان ورودی پیشآموزش مدل انتخاب میشوند. با این روش، کلمات سمت راست و سمت چپ کلمه مدنظر مشاهده میشوند و صورت مدل خودهمبسته، بدون تغییر باقی میماند.
نتیجهگیری
پیشآموزش، پربارترین شاخه پژوهشهای فعلی در حوزه پردازش زبان طبیعی است. بیشک این مفهوم، مسیر پژوهشی NLP را در گذشته تغییر داد. فهم پیشآموزش، فرایندی ضروری برای یادگیری هوش مصنوعی است.
انواع کاربردهای هوش مصنوعی در صنایع مختلف را در هوشیو بخوانید