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


مسئله‌ طبقه بندی، این بار بدون دیتا

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

افزایش قدرت محاسباتی، رشد دیتای موجود در اینترنت و طرح مدل‌های جدید و منجر به ظهور مدل‌های Pretrained در ‍پردازش زبان طبیعی شد که به واسطه آن شکسته شدن رکوردها و بالا رفتن کیفیت‌های کسب شده بر روی دیتاست‌ها روند سریعتری به خودش گرفت. مدل‌های Pretrained موجود در پردازش زبان طبیعی در سال‌های اخیر اکثرا روی مسئله‌ای به اسم مدل زبانی آموزش می‌بینند. مدل زبانی به بیان ساده یعنی اینکه بفهمیم چقدر احتمال دارد که یک جمله در زبان اتفاق بیفتد. یا اینکه با داشتن یک جمله ناقص بتوان آن را کامل کرد. برای این منظور می‌توان با جمع آوری دیتا از اینترنت، شامل وبلاگها، ویکی پدیا، خبرگزاری‌ها و... دیتای مورد نیاز برای Pretrained کردن را درست کنیم. اگر مدل ما بتواند به عملکرد مناسبی برسد نیاز دارد برای درک زبان اطلاعات زیادی رو راجع به کلیه مفاهیم کسب کند و این به معنی این است که برای مثال اگر جمله «کشور ایران در قاره … قرار دارد» را برای پر کردن به مدل بدهیم، مدل برای این که بتواند جای خالی را به درستی پر کند نیاز دارد که اطلاعاتی راجع به جغرافیا را به یک نحوی در خودش ذخیره کرده باشد. بعد از اینکه مدل Pretrained تهیه شد که اطلاعاتی راجع به جهان و مفاهیم را در خود گنجانده است. می‌توان با کپی کردن بخش‌هایی از شبکه عصبی ساخته شده از آن برای آموزش مسئله‌های دیگری استفاده کرد. نتیجه این کار کیفیت بالاتری در مقایسه با آموزش از صفر بر روی دیتای مسئله می‌شود. البته این روش مورد نقد برخی از افراد هم قرار دارد و مشکلاتی را مطرح می‌کنند که نمی‌توان کارهای مهم و حیاتی را به دست این گونه مدل‌ها سپرد. این مدل‌ها تفسیر پذیری کمی دارند و ممکن است نتایج عجیب و غریبی را رقم بزند که در این مسئله‌‌های مهم قابل قبول نباشد. در اینجا نمونه‌هایی از این رفتارهای عجیب غریب مدل GPT-3 آورده شده است.

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

این راه حل که از سال ۲۰۱۶ مطرح شده است به چند روش امکان پذیر است، می‌توان بردار جمله بدست آمده را با بردار کلمات دسته‌های مورد نظر بر حسب شباهت کسینوسی مقایسه کرد یا چند قدم بیشتر در این راستا برداشت که کیفیت را افزایش داد. یکی از روش‌هایی که جدیدا مطرح شده استفاده از مسئله Natural Language Inference یا استنتاج زبان طبیعی است که منجر به کسب کیفیت‌های جدیدی شده است.

مسئله استنتاج زبان طبیعی یا Natural Language Inference

این مسئله به این صورت تعریف می‌شود که بر حسب دو جمله که جمله اولی فرض اولیه و جمله دومی فرض ثانویه است. باید مدل تشخیص دهد که جمله دومی بر اساس جمله اول درست است (entailment) یا غلط می‌باشد (contradiction) یا بی‌طرف (neutral) است.

برای مثال اگر جمله اول این باشد که «او تنیس حرفه‌ای بازی می‌کند.» جمله دوم اگر «او یک ورزشکار است.» باشد استنتاج درست است. اما اگر «او تنیس را بلد نیست باشد.» استنتاج غلط است. همچنین اگر این باشد که «او کارمند بانک است.» این جمله بر حسب جمله قبلی بی‌طرف می‌باشد.

استفاده از مسئله استنتاج زبان طبیعی در طبقه‌بندی

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

نتیجه گیری

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

 

خوراک بیشتر

جزییات فنی روش Zero-shot و مقایسه با روش‌های قبلی

مقاله علمی مربوط به Zero-shot Classification با استنتاج