معیار سرگشتگی (perplexity)


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

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

بر همین ایده و شهود معیاری به نام سرگشتگی یا به انگلیسی perplexity تهیه شده که بررسی می‌کنه یک مدل به یک جمله صحیح، تا چه حد خوبی میتونی احتمال نسبت بده و البته برای این که طول جملات در محاسبه این معیار دخالت نکنن و باعث به هم خوردن نتایج نشن این معیار در فرمول خودش از طول جمله صحیح هم استفاده میکنن تا بر حسب اون هم نرمال بشه.

اگر یک جمله رو با W نشون بدیم که W خود جمله‌ای به طول n متشکل از کلمات با ترتیب w1, w2,w3, .. ,wn باشه اون وقت برای محاسبه سرگشتگی یک مدل زبانی برای جمله W داریم:

یا اگر کمی راحت‌تر به قضیه نگاه کنیم:

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

حالا همه چیز بستگی به این داره که مدل زبانی مورد نظر عبارت p(w1, w2, ...,wn) رو چطور می‌خواهد مدل و حساب کنه. فرض کنید با یک مدل زبانی آماری یونیگرام طرفیم که قاعدتا مشخصه که هیچ بهره هوشی نداره اون وقت داریم:

نحوه محاسبه کردن احتمال جمله از دیدگان یک مدل یونیگرام
نحوه محاسبه کردن احتمال جمله از دیدگان یک مدل یونیگرام

ولی مثلا اگر مدل زبانی مورد استفاده ما یک مدل بایگرام باشه داریم:

نحوه محاسبه کردن احتمال جمله از دیدگان یک مدل بایگرام
نحوه محاسبه کردن احتمال جمله از دیدگان یک مدل بایگرام

نگاه احتمالاتی به سرگشتگی

سرگشتگی یک تعریف از زاویه دیدگاه احتمالاتی هم داره و اون اینه که یک مدل احتمالاتی چه قدر خوب می‌تونه یک نمونه از توزیع رو پیش‌بینی کنه. مثلا فرض کنید شما با یک کیف رمزدار مواجه هستید که رمزهایش سه رقمی هستند و هر رقم می‌تونه یکی از ارقام ۰ تا ۹ باشه. این جا رمزها یک سمپل از توزیع احتمالاتی متغیرتصادفی رمزهای انتخاب شده هستند و اون جوری که شما رمزها رو انتخاب میکنید هم توزیع احتمالاتی هستش که برای پیش‌بینی این نمونه‌های رمز به کار می‌برید. حالا فرض کنیم شما بدون هیچ اطلاعاتی بخواین یکنواخت ارقام رو انتخاب کنین اون وقت perplexity روی این مجموعه می‌شه:

جالب شد، نه؟ یک شهود دیگه ای که از سرگشتگی ارائه میدن اینه که ضریب انشعاب متوسط یک مدل در فرآیند پیش‌بینی یک سمپل به چه شکل هستش. یعنی اینجا به طور متوسط مدل در انتخاب هر یک از سه رقم ۱۰ انتخاب داره.

حالا بیایم مسئله رو ساده‌تر کنیم و فرض کنیم شخصی به شما اطلاع داده که میدونه که رقم اول رمز صفر نیستش و رقم دوم هم یک عدد فرده،قاعدتا با این اطلاعات در این حالت دانش شما نسبت به نمونه‌های رمز بیشتره حالا برای محاسبه سرگشتگی تو این مورد داریم:

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

میزان سرگشتگی مدل‌های زبانی فعلی

در نهایت برای این که عددی دستتون بیاد که وضع فعلی سرگشتگی مدل‌های زبانی چه شکلیه، باید بگم که بنا بر پیپرها و روش‌های ارائه شده بر روی دیتاست Penn Treebank، میزان سرگشتگی یک مدل زبانی LSTM ای حول و حوش ۷۸، سرگشتگی مدل GPT-2 با یک و نیم میلیارد پارامتر برابر با 35.76 و میزان سرگشتی مدل جدید GPT3 با ۱۷۵ میلیارد پارامتر برابر با 20.5 هستش.