زمان Imagenet برای پردازش زبان طبیعی فرارسیده است!

دیتاست imagenet انقلابی در پردازش تصویر و هوش مصنوعی ایجاد کرد طوری که بسیاری از مسایل دیرپای این حوزه بعد از مدتی با روش های یادگیری عمیق به زانو در آمدند و توسط ماشین قابل حل شدند. به سرعت نتایج چنین راه حل هایی حتی صنعتی شد و میوه های آن را حتی بر روی یک موبایل ساده می توان دید! (آنلاک کردن گوشی با تصویر چهره تان)


شاید چموش ترین بخش هوش مصنوعی پردازش زبان طبیعی باشد چرا که اساسی ترین سوالات بشر در مورد هوش ماشین به یادگیری زبان توسط ماشین مرتبط می شود. آزمون معروف تورینگ سند محکمی برای این ادعا است. تمام تلاش های زبان شناسان، معناشناسان، دانشمندان علوم کامپیوتر، علوم شناختی و عصب شناسی با نظریات ابتدایی از زبان در دهه های ۶۰ و ۷۰ میلادی در برابر واقعیت زبان های بشری به خاکستر تبدیل شد. پروژه های جاه طلبانه زیادی با شکست مواجه شدند اما امروز متخصصین با فروتنی بسیار بیشتر به نتایج شگفت انگیزی رسیده اند.


در سالهای گذشته مدل سازی احتمالاتی زبان، در مرکز تقریبا تمامی تلاش ها برای برملا کردن چند راز از این هزارتوی عجیب و غریب قرار گرفته است. مدل های زیادی ارایه شده اند که هر کدام ساده سازی های زیادی انجام میدهد. هدف این مدلسازی ها اتوماتیک کردن برخی از کارهایی است که مردم می توانند با زبان انجام دهند. مثلا آیا دو جمله از لحاظ معنایی یکسان هستند؟ شباهت معنایی جملات چقدر است؟ چه چیزی از چند جمله می توان نتیجه گرفت؟چگونه می توان یک متن را خلاصه کرد؟ این جمله مثبت است یا منفی؟ و ده ها وظیفه دیگر که اگرچه برای انسان فوق العاده ساده بنظر می رسد اما الگوریتم ها نمی توانند برای آن کاری بکنند.


خیلی از مدل ها در طول چندین سال فقط توانستند پیشرفت های اندکی در این زمینه داشته باشند. اما یکی از این مدل های احتمالاتی به اسم BERT که سه ماه پیش توسط گوگل ارایه شد برای اولین بار توانست از این سد عبور کند و در بسیاری از وظایف تعریف شده حتی از انسان پیشی بگیرد!! این تقریبا نخستین بار است که ماشین در درک زبان توانسته از انسان پیشی بگیرد. اگر با ادبیات موضوع این زمینه آشنا باشید متوجه می شوید مدلی که گوگل به آن رسیده خیلی پیچیده نیست. ایده اصلی در واقع به طرز عجیبی ساده است. در مدل های معمول برای زبان از شبکه های عصبی ای استفاده می شود که یک حالت را نگه می دارند و همزمان که بر روی کلمات یک متن حرکت می کنند آن حالت را بروز رسانی می کنند. دلیل اینکه چرا کل متن را همزمان به عنوان ورودی نمی دهند این است که در این صورت مدل زبانی نمی تواند کلمه بعدی را پیش بینی کند چون ما از قبل آن را به شبکه خورانده ایم. شبکه عصبی BERT از یک کلک ساده استفاده می کند. به جای دادن کل متن به صورت تصادفی تنها بخشی از کلمات از متن حذف می شوند اما شبکه همزمان می تواند اول و آخر جملات را ببیند. به این مدل Masked Language Model گفته می شود. این بیشتر شبیه به cloze test هایی است که دانش آموزان ابتدایی پر می کنند. چند کلمه انداخته می شود و از آن ها خواسته می شود که جمله را کامل کنند. اینطور نیست که اولین کلمه را به دانش آموز نشان دهند و از اون بخواهند کل جمله را کامل کند چنین چیزی ممکن نیست اما این کاری بوده که سالها در NLP انجام می شده!! رویکرد قدیمی به تولید جملات ضعیف،‌ تکراری و گاه از لحاظ گرامری غلط منجر می شد.


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


گوگل سورس کد BERT را بر روی گیت هاب قرار داده است. برای مطالعه بیشتر چندین لینک جالب و خواندنی اینجا می گذارم.


سورس کد BERT:
https://github.com/google-research/bert


یک توضیح ساده در مورد BERT:
https://jalammar.github.io/illustrated-bert



الگوهای کشف شده در BERT:


https://towardsdatascience.com/deconstructing-bert-distilling-6-patterns-from-100-million-parameters-b49113672f77