با در دسترس عموم قرار گرفتن ابزاری مانند چت جیپیتی و ابزار مشابه برای نوشتن، خلاصه کردن، ترجمه، تشخیص اجسام در تصویر، تبدیل صدا به نوشته و درک آن، تولید صدا، تولید تصویر و ویدیو، و غیره، انفجار آگاهی و حیرت عمومی از قابلیتهای هوش مصنوعی برانگیخته شده است.
شاید برای درک عمیق دانش و تولید انواع ابزار هوش مصنوعی به تخصصهایی نظیر برنامهنویسی کامپیوتری و ریاضیات کاربردی نیاز باشد، ولی واقعا شاید برای آشنایی اولیه با این دانش و جلوگیری از گمراه شدن توسط مطالبی که میخوانیم و میشنویم، به این تخصصها نیاز نباشد. هدف نگارنده بیان ساده و پایهای موضوعات مربوط به هوش مصنوعی به زبان فارسی بدون ورود به ریاضیات سنگین و برنامهنویسی کامپیوتری، جهت ترغیب همگانی فارسی زبانان برای یادگیری و درک بهتر این تکنولوژی و ابزار مرتبط است. طبیعی است که بیان ساده موضوع، انتقاد متخصصان امر را به همراه خواهد داشت، که چرا فلان نکته مهم گفته نشده است. ولی به نظر نگارنده، پرداختن بیش از حد به جزئیات مسئله، خصوصا توضیح دقیق انواع مدلهای محاسباتی و شبکههای عصبی، درک اصل موضوع را به حاشیه خواهد برد، خصوصا که استفاده از ابزار هوش مصنوعی آنچنان فراگیر خواهد شد که عدم آشنایی عمومی با آنها به آینده حرفهای افراد و اقتصاد جامعه لطمه خواهد زد.
از زمانهای دور مسائل مربوط به ذهن و هوش، مدنظر فلاسفه و دانشمندان بوده است. در اواسط قرن بیستم، همزمان با کارآمد شدن کامپیوترهای الکترونیکی، ایدههای جدیدی درباره ایجاد هوش مصنوعی مطرح شدند. در سالهای اخیر، افزایش قدرت پردازش کامپیوترها، همگانی شدن اینترنت و موفقیت شبکههای عصبی، منجر به تسریع پیادهسازی ایدههای جدید شدند. دسترسی گسترده دانشمندان، محققان و افراد عادی به ایدهها و ابزار تولید شده، سرعت پیشرفت را دو چندان کرد و اکنون سرعت پیشرفت تولید ابزار هوش مصنوعی به صورت تصاعدی در حال بالا رفتن است.
تکنولوژی هوش مصنوعی را میتوان از یک نظر به دوبخش 1- تشخیصی[1] و 2- مولد[2]، و از یک نظر دیگر به سه بخش 1- تشخیص و تولید صدا، 2- دید کامپیوتری[3] (تشخیص و تولید تصویر)، و 3- پردازش زبان طبیعی[4] (تشخیص و تولید متن) تفکیک و طبقهبندی کرد. به نرمافزارهایی که این سه بخش را به صورت تنها یا ترکیبی انجام میدهند، ابزار هوش مصنوعی میگوییم. مسائل مربوط به کنترلهای مکانیکی و رباتیک مقوله جداگانهای هستند. در رسانههای همگانی، رباتهای انساننما به عنوان هوش مصنوعی معرفی میشوند که میتوان گفت در واقع ترکیبی هستند از رباتهای مکانیکی و هوش مصنوعی.
در این مقاله به " شناخت واژهها" در پردازش زبان طبیعی میپردازیم که از نظر نگارنده پایه اصلی قابلیتهایی است که امروز به عنوان هوش مصنوعی "مولد متن" حیرت عمومی را برانگیخته است.
اولین ایدههای مربوط به هوش مصنوعی مدرن در نیمه اول قرن بیستم توسط ریاضیدانان مطرح شد. سپس ایدههای تشابه زبانی از طرف زبانشناسان مطرح شد. به این معنا که هرچند انسانها در زبانهای مختلف صحبت میکنند ولی دارای درک یکسانی از موضوعات هستند. به عبارتی مطلبی که در یک زبان نوشته میشود دارای کد یا رمز و قاعده مشترکی با زبانهای دیگر است که به کمک آن قاعده مشترک، میتوان مطالب را از یک زبان به زبان دیگری ترجمه کرد. زبانشناسان برای یافتن قواعد مشترک بین زبانها تلاشهای زیادی انجام دادهاند. قابلیت پردازش زبان در انسانها به دو مؤلفه اصلی وابسته است: 1- آشنایی با تعداد زیادی از لغات و دانستن معنی آنها، 2- استفاده درست از لغات در ساختار درست جمله.
تلاشهای زیادی برای ایجاد سیستمهای ترجمه طبق اصول گرامر و قواعد زبانها صورت گرفت و موفقیتهای نسبی هم بدست آمد. اما ایجاد این سیستمهای ترجمه، بسیار پرهزینه بودند و برای همگان قابل دسترس نبودند. با این وجود، پیشرفتهای قابل توجهی در زمینه تحلیل ساختار جملات و ارتباط معنایی کلمات با ساختار جملات بدست آمد و روشهایی برای بازنمایی معنی کلمات و جملات ایجاد شد. مثلا زبان شناسان با مسائلی از قبیل درجه شباهت واژهها از نظر معنا، جایگاه واژهها در جملات، ترتیب پیش و پس قرار گرفتن واژهها در جمله، و غیره دست و پنجه نرم میکردند.
تا نزدیک به اواخر قرن بیستم، وظیفه اصلی پردازش زبان طبیعی، عمدتا کار ترجمه بود و قواعد گرامر با نوشتن و کدگذاری دستی صورت میگرفت که پرهزینه و نه چندان موفق بود. از حدود 1980 به بعد، با سرعت گرفتن قدرت پردازش کامپیوترها، مدلهای آماری برای استخراج ساختار جملات، معنی کلمات و ارتباط بین معنی کلمات و ساختار جملات متداول شد. حجم زیادی از متون به سیستمهای یادگیری ماشینی نسبتا ساده وارد شدند که از طریق محاسبات آماری، ساختار جملات و معنی کلمات را استخراج میکردند و منجر به پیشرفتهای قابل توجهی در امر ترجمه شدند.
مدلهای آماری و یادگیری ماشینی اجازه دادند که چند مسئله در زبانشناسی با سرعت بیشتری حل شوند مانند پیدا کردن شباهت معنایی لغات، ترتیب پیش و پس قرار گرفتن واژهها، تغییر معنی واژهها در ساختار جمله و غیره. در سالهای اخیر، با توسعه شبکههای عمیق عصبی کامپیوتری، مدلهای بسیار موثرتری برای یافتن لغات با معنای مشابه، جایگاه آنها در جمله، دستهبندی جملات از نظر معنایی، دستهبندی جملات از نظر احساسی و غیره ایجاد شد.
توضیح کامل روش کاری شبکههای عصبی از حوصله این مقاله خارج است ولی به طور اجمالی یک جعبه سیاهی را در نظر بگیرید که در درون آن پارامترهای قابل تنظیمی هستند. حال با دادن یک ورودی و یک خروجی مورد انتظار، ما از جعبه سیاه میخواهیم که پارامترهای درونی خود را طوری تغییر دهد که خروجی آن تا حد امکان به خروجی مورد انتظار نزدیک شود. با دادن تعداد زیادی ورودی و خروجیهای مورد انتظار مرتبط و تنظیم اتوماتیک پارامتر ها، جعبه سیاه یاد میگیرد که با دادن یک ورودی جدید که قبلا با آن برخورد نکرده است، خروجی مورد انتظار خوبی تولید کند. اصطلاحا میگوییم که شبکه عصبی آموزش دیده و یاد گرفته است که با دیدن یک ورودی جدید، خروجی خوبی تولید کند.
برای نمونه تصور کنید به یک شبکه عصبی میخواهیم آموزش بدهیم که احساس مثبت یا منفی کامنتهای مشتریان یک محصول را دستهبندی کند. برای این کار، تعداد زیادی از کامنتهای قبلی محصولات مشابه را جمعآوری و خودمان این کامنتها را تک تک دستهبندی میکنیم. بعد کامنتها را به شبکه عصبی به عنوان ورودی و احساس مثبت یا منفی بودن هر کامنت را به عنوان خروجی مطلوب میدهیم. حال شبکه عصبی با تنظیم پارامترهای داخلی اش یاد میگیرد که وقتی کامنت جدیدی به او داده شود، آن را مثبت یا منفی دستهبندی کند. این یکی از نمونههای ساده پردازش زبان هوش مصنوعی است.
اما کامپیوترها فقط با اعداد میتوانند کار کنند و برای پردازش زبان طبیعی، لغات باید به اعداد تبدیل شوند. روش و چگونگی تبدیل لغات به عدد، برای استفاده در پردازش زبان و هوش مصنوعی خود مقوله مفصلی است، ولی مفهوم نهایی نسبتا ساده و قابل درک، بدون وارد شدن به ریاضیات سنگین است.
از نظر نگارنده موضوع چند بعدی یا برداری کردن واژهها[5] اولین موضوعی است که یادگیری آن به درک بهتر نحوه کار سیستمها و ابزار هوش مصنوعی مولد متن[6] کمک میکند. در نگاه اول مفهوم "برداری کردن واژهها" نامأنوس ولی در واقع مفهوم نسبتا سادهای است. برای اینکه مسئله را بدون ورود به ریاضیات سنگین ساده کنیم، از تجربه بازی "بیست سوالی" استفاده میکنیم. به یاد بیاورید که در این بازی یک نفر یک کلمه را که نماینده یک شیء یا یک موضوعی است را در نظر میگیرد و نفر دوم با طرح حداکثر بیست سوال باید کلمه مورد نظر را پیدا کند. مثلا میپرسد آیا کلمه مورد نظر نماینده یک شیء است یا یک مفهوم، اگر شیء است آیا جامد است یا مایع، اگر جامد است آیا در جیب جا میگیرد، آیا ساخته انسان است، آیا شفاف است، اگر شفاف است چقدر شفاف است و غیره. به این ترتیب میبینیم که انسانها اشیا و مفاهیم را در قالب کلمات با بعدهای مختلف دستهبندی میکنند و هر بعد نیز دارای اندازه بخصوصی است. مثلا کلمه گاو دارای ابعاد حیوان بودن، چهار پا بودن، اهلی بودن، شیر برای مصرف انسان و غیره است. کلمههای اسب و گربه و ببر هم دارای ابعادی مشابه ولی با اندازههای مختلف هستند. حال اگر دو کلمه در ابعاد مشابه دارای اندازههای نزدیک به هم باشند میتوان گفت که آن دو کلمه از نظر مفهومی به یکدیگر نزدیک هستند. مثلا از نظر مفهومی کلمه گاو به اسب نزدیکتر است تا کلمه گربه به اسب. کلمه بردار یک مفهوم ریاضی است که نشاندهنده چیزها در فضای چند بعدی است. مثلا ممکن است کلمههای اسب، گاو و گربه و ببر دارای بردار و ابعاد ساختگی زیر باشند:
بردار کلمه اسب = حیوان 100، چهار پا 100، اهلی بودن 80، سواری دادن 90، شیر برای مصرف انسان 30، بزرگی 80
بردار کلمه گاو = حیوان 100، چهار پا 100، اهلی بودن 90، سواری دادن 40، شیر برای مصرف انسان 100، بزرگی 80
بردار کلمه گربه = حیوان 100، چهار پا 100، اهلی بودن 50، سواری دادن 0، ،شیر برای مصرف انسان 0، بزرگی 10
بردار کلمه ببر = حیوان 100، چهار پا 100، اهلی بودن 10، سواری دادن 5، ،شیر برای مصرف انسان 0، بزرگی 70
در مثال بالا میبینیم که ابعاد بردار اسب به بردار گاو نزدیک تر است تا ابعاد بردار اسب به بردار گربه. از نظر معنایی میگوییم که اسب و گاو شبیهتر هستند تا اسب و گربه. هر چند ممکن است اسب و گربه هم دارای ابعاد و فصل مشترکهای زیادی باشند. ببر و گربه هم شباهت زیادی دارند.
علیرغم تلاشهای زبانشناسان محاسباتی[7] برای ایجاد روشهای چند بعدی کردن کلمات، موفقیت زیادی به دست نیامد. تا اینکه مدلهای "شبکههای عصبی عمیق"[8] در این زمینه موفقیتآمیز عمل کردند. با تغذیه میلیاردها جمله به این شبکهها، که خود دارای میلیاردها پارامتر هستند، برای هر واژه ابعاد زیادی بالغ بر 300 تا 1000 ایجاد و رابطههای جالبی بین بردار کلمات برقرار شد. هرچند برای انسانها ابعاد این بردارها به خودی خود به سادگی قابل درک نیستند، ولی محاسبات ریاضی جالبی میتوان با بردارهای یاد شده انجام داد. مثلا
(رم - ایتالیا ) = (پکن - چین )
یا
(ملکه) = (زن + مرد - شاه)
میبینیم که بردارهای کلمات، مفاهیم زیادی را در خود گنجانیدهاند. هرچند نحوه تولید این بردارها، نیازمند آشنایی بیشتر با نحوه کار شبکههای عمیق عصبی است، ولی به نظر نگارنده درک مفهومی این بردارها نسبتا ساده است، چون زبانشناسان در گذشته سعی کردهاند ابعاد مشابهی برای لغات به طور "دستی" ایجاد کنند. فقط انجام این کار توسط شبکههای عصبی اجازه داد تا بردارهایی با ابعاد بسیار بزرگ و دارای معناهای بیشتری ایجاد شوند که به موفقیت پردازش زبان طبیعی کمک بزرگی کرد.
امروزه بردارهای کلمات برای زبانهای مختلف تولید شدهاند و در دسترس همگان قرار گرفتهاند. نکته مهم و جالب این است که بردارهای کلمات معادل در زبانهای مختلف هم رابطههای مشابه دارند. در مثالهای بالا، رابطه بین لغات تقریبا در همه زبانها مشابه هستند و بنابراین با دانستن بردار یک کلمه در یک زبان میتوان کلمه یا کلمههایی با معنای مشابه آن در زبانهای دیگر را پیدا کرد. ایده این بردارها به اوایل نیمه دوم قرن بیستم بازمیگردد که زبان شناسان نشان دادند که کلمههایی که دارای معنی مشابه یا نزدیک هستند، در بستر جملات مشابهی قرار میگیرند. مثلا کلمههای اتوموبیل و کامیون اکثرا در بستر جملاتی قرار میگیرند که در آنها کلمههای چرخ، موتور، فرمان، ترافیک، جاده، و غیره وجود دارد. از نظر آماری، دفعات همزمانی لغات چرخ ، فرمان، جاده و غیره، در ارتباط با لغت اتومبیل، نزدیک دفعات همزمانی با لغت کامیون است. بنابراین نتیجه گرفته میشود که لغت اتومبیل و کامیون از نظر مفهومی به هم نزدیکتر هستند تا مثلا لغت اتومبیل و قورباغه. در گذشته، عملا برای زبان شناسان ایجاد توزیع آماری لغات هم زمان و استفاده موثر از بردارهای مناسب واژگان وجود نداشت. امروزه با توجه به حجم زیاد اطلاعات قابل دسترس از منابع متعدد، تهیه این بردارها به کمک شبکههای عصبی میسر و قابل دسترس عموم شدهاند.
در مقالات بعدی به بیان ساده دیگر مفاهیم مهم و مرتبط در حوزه پردازش زبان خواهیم پرداخت.
تبادل نظر