چتبات (chatbot) چیست؟
چتبات چیست؟
چتبات یک برنامه کامپیوتری مبتنی بر هوش مصنوعی است که با شبیهسازی گفتگوی (چت) میان انسانها بستری را برای ارتباط انسان با ماشین (کامپیوتر) فراهم میکند. این ارتباط به گونهای است که کاربر پاسخ سوالاتش را با یک زبان کاملا شبیه به انسان دریافت میکند و بر خلاف سایر سرویسهای پشتیبانی آفلاین، محدودیتی برای سوالات تعریف نشده است.
میتوان گفت پیشینهی چتبات به دههی 1950 میلادی و معرفی هوش مصنوعی برمیگردد (تاریخچهی هوش مصنوعی را بخوانید)، آلن تورینگ، در آزمونی که برای سنجش هوشمندی رایانه طراحی کرد که به آزمون تورینگ معروف است معیار هوشمندی یک کامپیوتر را پردازش متن ورودی و پاسخ مناسب انسانی توسط کامپیوتر مطرح کرد، به عبارت ساده گفت هر زمانی بتوانیم یک چتبات داشته باشیم که فردی که به عنوان داور پشت سیستم نشسته و چت میکند متوجه نشود که با یک انسان واقعی چت میکند یا یک نرم افزار کامپیوتری!
البته امروزه با آمدن چت بات ChatGPT غالب افراد با مفهوم چت بات آشنا هستند، اما میاوان گفت chatGPT یک هوش مصنوعی مکالمهای (Conversational AI) است، اما در ادامه برخی از مفاهیم پایهی یک چتبات سنتی را بررسی خواهیم کرد.
روند شکلگیری چتباتها
همواره یکی از نیازهای کسب و کارها برقراری ارتباط با مشتریان خود بوده است. تلاشهای اولیه برای این امر نوشتن راهنما و توضیحات برای محصولات و خدمات ارائه شده در سایت بود که در نتیجه این اقدام بخش سوالات متداول در سایتها شکل گرفت. این بخش با وجود این که به طیف وسیعی از پرسشهای متداول کاربران پاسخ میداد، اما همچنان کاربرانی بودند که نمیتوانستند جواب سوالاتشان را پیدا کنند. علاوه بر این استخراج سوال و پاسخ از میان انبوه سوالات موجود در این بخش نیز برای کاربر دشوار بود.
به دلیل مشکلات گفته شده، کسب و کارها به دنبال بهبود فرآیند این سیستم رفتند. در اولین گام به بخش سوالات متداول موتور جستجو اضافه شد تا کاربران بتوانند با جستجوی یک کلمه خاص سوال و جواب مورد نظرشان را پیدا کنند. ایراد این روش این بود که به دلیل ذات تغییرپذیر زبان، کلماتی که کاربران جستجو میکردند همیشه به بخشی از سوالات پیشبینی شده اشاره نمیکرد. درنتیجه گاهی اوقات با وجود این که سوال و پاسخ آن در میان پرسشهای متداول وجود داشت، کاربر نمیتوانست آن را پیدا کند.
با توجه به این موارد، ابزارها به سمتی رفتند تا بتوانند مفهوم سوال را درک کنند و یک پاسخ روشن و قطعی به آن بدهند. نتیجه این اقدام شکلگیری سیستمهای سوال و جواب بود. در این سیستمها از پردازش زبان طبیعی (NLP) و شبکههای عصبی مصنوعی (ANN) استفاده میشود. برای طراحی این سیستمها نیاز است سوالات کاربران دستهبندی شود و پاسخ مناسب برای هر یک سوالات درنظر گرفته شود.
از جمله مشکلات سیستم سوال و جواب میتوان به این موارد اشاره کرد که به دلیل ذات پیچیده زبان، در بسیاری از موارد گفتگوها ممکن است به یک مسیر جدید وارد شوند که از قبل پیشبینی نشدهاند. علاوه بر این کاربر همیشه دقیقا به موردی که در ذهن دارد اشاره نمیکند و با سوالات پیدرپی سعی در رساندن منظور خود دارد. از آنجایی که سیستمهای سوال و جواب پاسخ کاربران را تنها بر اساس آخرین سوال کاربر میدهند، موارد ذکر شده مشکلساز خواهند بود.
ایده طراحی چتباتها با هدف رفع مشکلات بیانشده شکل گرفت. در چتباتها علاوه بر استفاده از مزایای سیستم سوال و جواب و استفاده از پردازش زبان طبیعی به منظور درک و استخراج هدف کاربر از سوال، گفتگوهای قبلی کاربر نیز در این فرآیند پاسخگویی درنظر گرفته میشوند.
معرفی چتباتهای open domain و closed domain:
به طور خلاصه میتوان گفت که یک سیستم چتبات closed domain تنها به منظور درک و پردازش مکالمات خاصی طراحی میشود. مثلا چتبات فروش نمونهای از این نوع چتباتها هستند. چت بات open domain برعکس چت بات close domain برای پردازش کلیه مکالمات طراحی میشود، مثل chatGPT. بسته به هدف و پیچیدگی مکالمات مورد انتظار از کاربران، میتوان یکی از این دو چتبات را انتخاب کرد.
تمرکز چتبات closed domain بر روی موضوعات خاصی است و از آن میتوان به خوبی برای ارائه پاسخ به مشتریان یک کسب و کار خاص استفاده کرد. از این رو به این چتباتها domain specific نیز گفته میشود. مثلا یک چت بات ارسال غذای آماده میتواند به مشتریان در زمینه سفارش غذا، پیدا کردن رستوران و یا رهگیری پیک ارسال غذا کمک کند.
از چتباتهای open domain انتظار میرود که بتوانند هر نوع مکالمهای را پردازش و مدیریت کنند. این چتباتها باید این توانایی را داشته باشند که به هر نوع سوالی، پاسخی متناسب با آن بدهند. به عنوان مثال چتبات گوگل , ChatGPT شرکت OpenAI چتباتهای open domain هستند که قادر به گفتگو درباره هر موضوعی میباشند.
چتباتهای closed domain چگونه کار میکنند؟
ساز و کار یک چتبات هوشمند را میتوان به دو بخش اصلی تقسیمبندی کرد. بخش اول عبارت است از فرآیند درک و استخراج هدف کاربر از درخواستی که مطرح کرده است و بخش دوم تشخیص و ارائه پاسخ مناسب به کاربر. قبل از توضیح روند کار چتباتها لازم است چند اصطلاح مهم را تعریف کنیم.
utterance
به پرسشی است که کاربر مطرح میکند utterance گفته میشود. مثلا کاربر سوال میکند «چگونه میتوانم یک سفارش خرید ثبت کنم؟» یا «وضعیت هوا در تهران چگونه است؟». این نمونه سوالات و سوالات مشابه را utterance میگویند.
intent
مفهوم intent در چتبات به معنای هدف کاربر از طرح یک پرسش است. درواقع چتبات پس از مواجهه با یک درخواست از طرف کاربر باید intent یا آن چیزی که کاربر در زمان طرح پرسش در ذهنش بوده است را تشخیص دهد. در بسیاری از موارد intent یک سوال با بررسی “فعل” آن جمله قابل تشخیص است؛ اما در برخی از موارد لازم است کل سوال تحلیل شود.
entity
entity در چتبات به موجودیتهای مستقلی در سوال کاربر گفته میشود که به ماشین کمک میکند بهترین پاسخ برای درخواست کاربر را پیدا کند.
به عنوان مثال فرض کنید کاربری پس از ورود به یک سایت غذا این سوال را مطرح میکند: «میخواهم یک پیتزای قارچ سفارش دهم.» یا «چطور میتوانم یک پیتزای قارچ سفارش دهم؟»
در پرسشهای فوق کاملا مشخص است که قصد کاربر از طرح آنها، سفارش غذا است. پس intent در این پرسشها «سفارش غذا» میشود. کلمه «پیتزای قارچ» در پرسشهای فوق entity است. تشخیص این کلمه به عنوان entity به چتبات کمک میکند تا بتواند به درستی به کاربر پاسخ دهد.
بنابراین وظیفه اصلی چتبات شناسایی intent و entity از سوال کاربر و سپس تحلیل و بررسی آن و در نهایت یافتن پاسخ مناسب به پرسش کاربر است. در نهایت به محض انجام این فرآیند، پاسخ مناسب در اختیار کاربر قرار خواهد گرفت.
فرآیند درک و استخراج هدف سوال
جهت تشخیص intent و entity از پردازش زبان طبیعی (NLP) استفاده میشود و روندی که در آن طی میشود مشابه با سیستم سوال و جواب است. پردازش زبان طبیعی شاخهای از هوش مصنوعی است که از طریق آن میتوان ماشین را قادر به خواندن، درک و استخراج مفهوم زبان انسان کرد. پس از پردازش سوال توسط ماشین، intent و entity از آن استخراج میشود.
نحوه تشخیص پاسخ مناسب
از آنجایی که پیشبینی همه حالتهای ممکن برای گفتگو غیر ممکن است، برای تشخیص پاسخ مناسب، از یک شبکه عصبی استفاده میشود. ورودی این شبکه عصبی نمونههای گفتگوی انجام شده با کاربر است. در این حالت شبکه عصبی بر اساس نمونههای دریافت شده بهترین عمل بعدی را برای پاسخ به کاربر انتخاب میکند. این عمل میتواند یک پاسخ ثابت از پیش تعیین شده و یا یک عمل خاص باشد.
در این بخش میتوان در صورت ناقص بودن اطلاعات سوال کاربر، با پرسیدن سوالات بیشتر جواب مناسبی به او داد؛ اما حافظه سیستم از پرسیدن سوال تکراری و بیجا جلوگیری میکند و مانع خستگی کاربر میشود.
معرفی چتبات Rasa
چتبات rasa یک نوع چتبات closed domain است که سازکار آن مشابه با توضیحاتی است که در بالا ارائه شد. در این چتبات از پردازش زبان طبیعی جهت درک سوال و استخراج intent و entity استفاده میشود و پس از آن از شبکه عصبی مصنوعی جهت تشخیص پاسخ مناسب استفاده میشود. برخی از مزایای چتبات rasa به شرح زیر است:
استخراج مفهوم پیامها
برای استخراج مفهوم سوال، چتبات rasa متن را به دادههای ساختاریافته تبدیل میکند. چتبات rasa از نوع multiple intent است که قادر به تشخیص چندید intent در پرسش کاربر خواهد بود. همچنین میتوان به کمک قابلیت پردازش زبان طبیعی، آن را برای هر کسب و کار و یا مصارف خاصی آموزش داد.
امکان مدیریت مکالمات پیچیده
چتبات rasa قابلیت پردازش و مدیریت گفتگوهای پیچیده را دارد. این چتبات از طریق گفتگوهای رفت و برگشتی این مکالمات را مدیریت میکند. چتبات rasa تغییرات موضوعی را به آرامی مدیریت میکند و موضوع اصلی کسب و کار را به صورت یکپارچه در جریان مکالمه ادغام میکند.
یادگیری تعاملی
چتبات rasa قابلیت تولید داده برای آموزش را دارد. از این دادهها برای آموزش خود و یادگیری نحوه پاسخگویی به پرسشهای جدید استفاده میکند بدین معنا که شما میتوانید با چتبات صحبت کنید تا از این طریق چتبات آموزش ببیند. بنابراین میتوان چتبات را با کاربران تستی آموزش داد.
دیدگاهتان را بنویسید