گفتگو
Dialogue
سامانه گفتگو به مجموعهای از سیستمها برای ایجاد مکالمه با کاربر گفته میشود. که میتوان این مجموعه را به دو دسته هدفدار و بات گفتگو (بدون هدف) تقسیم کرد.
مقدمه
زبان ویژگی منحصر بفرد انسان است و مکالمه قسمت مهمی از زبان را دربرمیگیرد.ابتداییترین زبان آموزی در انسان در دوران کودکی بصورت مکالمه میباشد. کیفیت و سرعت انتقال اطلاعات بین افراد تنها وابسته به تکنولوژی انتقال همچون اینترنت نیست.شاید بتوان گفت بهترین روش برای انتقال اطلاعات بین انسانها مکالمه در زبان طبیعی است. اگرچه این روش محدودیتهای بسیاری دارد برای مثال شما نمیتوانید همزمان با هزاران نفر در طول شبانه روز مکالمه شخصی داشته باشید. نمیتوانید از بسیاری از دانشمندانی که درگذشتهاند سوالات خود را بپرسید ، نمیتوانید همزمان هزاران مسافر را راهنمایی و برایشان بلیط هواپیما رزرو کنید.
سامانه گفتگو معمولا به سیستمها مکالمه هدف-دار گفته میشود همچون منشی گوشیهای همراه ( Siri, Cortana, Alexa, Google Now/Home ) که برای انجام هدف خاصی طراحی شدهاند. طول مکالمه این سیستمها معمولا کوتاه است و بیشتر به منظور دریافت اطلاعات از کاربر برای به انجام رساندن هدف مورد نظر میباشد.
تاریخچه
از جمله اولین تلاشها برای بررسی ساختار مکالمه هدف دار آزمایش Wizard of Oz بود. در این آزمایش دو شخص در اتاق مجزا توسط یک رابط متنی با یکدیگر در ارتباطند. شخص اول یک خبره در حوزه و شخص دوم یک فرد معمولی میباشد. فرد دوم باور دارد که با یک ربات صحبت میکند نه انسان. برای مثال در مکالمهای که در تصویر روبرو آمده است هدف آموزش سرهم کردن یک وسیله مکانیکی به فرد دوم میباشد.
از جمله اولین تلاشهابرای ایجاد یک سامانه گفتگو ، سامانه TRAINS در سال ۱۹۹۵ بود. این سیستم برای مدیریت قطارهای باری طراحی شد.
معماری
ایجاد و طراحی این سیستمها معمولا در دو روش کلی pipeline و یا end-to-end صورت میگیرد. انتخاب هر یک از این روشها بستگی به میزان دادگان و نوعدادگان دردسترس میباشد.
معماری pipeline
در این روش سیستم به اجزای مختلفی تقسیم ميشود که با هم در ارتباط هستند.در این معماری اجزای مختلفی همچون NLU (فهم زبان طبیعی) ، state tracker ( ذخیره و نگهداری اطلاعات و موقعیت مکالمه) ، dialog policy (انتخاب واکنش مناسب) و NLG برای تولید متن بصورت پشتسرهم (pipeline) عمل میکنند و خروجی هر بخش به عنوان ورودی بخش بعدی در نظر گرفته میشود. هر یک از اجزا جداگانه طراحی میشوند مستقل از یکدیگرند. هر یک از این بخشها میتوانند بصورت rule-based یا با استفاده از روش های یادگیری ماشین طراحی شوند.
معماری end to end
منظور از مدل یادگیری عمیق end-to-end معماریست که فقط از یک جز مدل (شبکه عصبی) تشکیل شده باشد بصورتی که back propagation از خروجی تا ورودی سیستم لحاظ شود ،برعکس طراحی های pipeline که سیستم از بخشهای مجزایی تشکیل شده است که بصورت جداگانه train میشود.
معایب:
- نیازمند دادگان بسیار برای مسله خاص موردنظر هستیم.
- عدم استفاده این معماری ازدانش موجود انسانی و ویژگیهای استخراج شده توسط انسان که گاهی ایجاد این ویژگیها و فراهم کردن این دانش کار سادهای میباشد.
مزایا:
- زحمت انسانی کمتری موردنیاز است . به همین خاطر میتوان مسله را براحتی به دامنه های دیگر انتقال داد.
- اجازه میدهیم تا بهترین ویژگیها توسط خود داده ارایه شوند.
از جمله مسائلی را که استفاده از این معماری برایشان مناسب است :
- ترجمه ماشین
- دسته بندی تصاویر
و البته مثالهایی که این روش جوابگو نیست :
- احراز هویت شخص با استفاده از تصویر : برای این مسله روش مناسب این است که ابتدا محدودهی چهرهي تصویر شخص یافته شود سپس چهره شخص احراز هویت گردد.
- تشخیص سن کودک از تصویر x-ray : برای اینکار بهتر است ابتدا استخوانها تشخیص داده شوند و سپس میانگین اندازه استخوانها به عنوان ویژگی استفاده شوند.
رویکردها
آموزش End-to-End
برای آموزش سامانه گفتگو بصورت end-to-end نیازمند دادگانی از مکالمه مربوط به هدف موردنظر میباشیم تا بتوانیم شبکه عصبی موردنظر برای این دادگان آموزش دهیم. از جمله معایب شبکههای عصبی مرسوم مانند RNN و LSTM حافظه اندک این شبکهها میباشد که به همین دلیل از معماری memory networks برای این منظور استفاده میشود.
ساخت بخشهای یک pipeline
در این رویکرد هر یک از اجزاٰ مورد نیاز همچون NLU ، NLG ، dialogue state tracker, dialogue policy جداگانه پیادهسازی و آموزش داده میشوند. و در آخر با سرهم کردن این بخشها سیستم کلی بدست میاید.
رویکرد Hybrid Code Networks
همانطور که گفته شد از جمله اشکالات آموزش بصورت end-to-end نیاز به دادگان بسیار میباشد. برای مثال آموزش یک تسک ساده همچون مرتب سازی میتواند نیازمند دادگان فراوانی باشد که هزینه ایجاد این دادگان باتوجه به سادگی هدف منطقی نیست. با استفاده از روشهای ترکیبی end-to-end و pipeline میتوان اطلاعات موجود خبرگان حوزه را بصورت برنامهنویسی در سیستم گنجاند و به این صورت میزان زیادی از نیاز به دادگان را کاهش داد.
ارزیابی
مهمترین جنبه عملکرد سامانه گفتگوهای هدفدار به اتمام رساندن هدف کاربر میباشد. اینکه سامانه گفتگو چند درصد از کاربرانش را بتواند به اهدافشان نايل کند مهمترین معیار ارزیابی این سیستم هاست.اگرچه ما نیاز داریم تا بصورت اتوماتیک این ارزیابی را انجام دهیم و نیازی به حضور کاربران نداشته باشیم. برای همین منظور محیط آزمونی برای ارزیابی سامانه گفتگوها توسط Bordes 2016 ارایه شد. در این محیط سیستم بروی یک دادگان از مکالمه حول رزرو رستوران در تسکهای مختلف سنجیده میشود. در تصویر روبرو نحوه تقسیم عملکر سیستم به تسکهای مختلف را مشاهده میکنید. با وجود این معماریهای pipeline از اجزأ مختلفی تشکیل شده اند که میتوانند جداگانه ارزیابی شوند برای مثال بخش NLU که در معمولا بصورت مسئله slot filling پیاده سازی میشود میتواند با معیارهای موجود برای فهم زبان طبیعی ارزیابی شود.
بات گفتگو
Chat Bot
بات گفتگو، سیستم هوشمندی است که با انسان به صورت نوشتاری و یا گفتاری تعامل دارد. در واقع هدف از بات گفتگو توسعه نرمافزاری است که شبیه انسان گفتگو کند. امروزه با رشد روزافزون اطلاعات موجود در وب، کاربران برای یافتن اطلاعات مورد نیاز خود نیاز به روشی آسان دارند. باتهای گفتگو اخیرا بسیار مورد توجه قرار گرفته اند و در سیستمهای تجاری به عنوان تعامل با مشتری مورد استفاده قرار میگیرند.
تاریخچه
در سال ۱۹۵۰، آلن تورینگ در مقاله خود آزمونی تحت عنوان آزمون تورینگ برای تشخیص هوشمندی کامپیوتر پیشنهاد کرد، که در آن هوشمندی بر اساس مشابهت پاسخهای سیستم با پاسخهای عامل انسانی تعریف میشد. در سال ۱۹۶۶،ELIZA را توسعه داده شد که یک بات مشاور روانشناسی بود. پس از آن تلاشهای زیادی در جهت توسعه بات گفتگو انجام شد اما آنها هوشمند نبودند و صرفا مجموعهای از جوابهای از پیش آماده را بر اساس ورودی کاربر پاسخ میدادند. watson بات هوشمندی بود که در شرکت IBM ساختهشد و از ابزارهای پردازش زبان طبیعی، استخراج اطلاعات، بازنمایی دانش استفاده میکند تا پاسخ مناسبی به سوالات بدهد.
روشها
روش کلی کار بات گفتگو به این صورت است که ابتدا کاربر سوال یا درخواست خود را وارد میکند، سپس بات جمله را به ماژول پردازش زبان طبیعی میدهد تا مورد سوال و موجودیتهای ذکر شده در آن مشخص شود، سپس با داده مورد نیاز برای پاسخ کاربر استخراج میشود و در نهایت تبدیل به جملهای در زبان طبیعی میشود.
روش AIML
روش Artificial Intelligence Markup Language یک زبان مبتنی بر XML است که هدف آن ساخت جریان گفتگو برای بات است. از این زبان برای توسعه باتهای گفتگو استفاده میشود که در آن نوع موضوع و الگوی مورد نظر مشخص میشود.
پردازش زبان طبیعی
در روشهای مبتنی بر پردازش زبان طبیعی سعی میشود تا جملاتی که زبان طبیعی هستند تجزیه شوند تا موجودیتها و منظور و مفهوم مطرح شده در جمله استخراج شوند. سپس از پایگاهداده استفاده میشود تا پاسخ مناسب تولید شوند.
تطبیق الگو
تطبیق الگو رایجترین روش در پیادهسازی باتهای گفتگو است، در این روش الگوهای ساده و از پیش تعیین شدهای وجود دارد که شامل متغیرهایی است. هنگامی که کاربر جملهای وارد سیستم میکند، متغیرها مقداردهی میشوند و پاسخ تولید میشود. عیب اصلی این روش قابل پیشبینی بودن و تکراری بودن پاسخهای تولید شده توسط بات است.
تجزیه
در روشهای مبتنی تجزیه، متن ورودی تجزیه نحوی و معنایی میشود و درخت تجزیه تولید میشود تا اجزای تشکیلدهنده آن مشخص شود سپس ساختار جمله و معنای آن استخراج میشود تا پاسخ تولید شود.
هستان شناسی
در هستان شناسی مدلی از کلمات در جهان ارائه میشود که بات گفتگو میتواند از آنها استفاده کند تا با انسان تعامل داشتهباشد. مفاهیم موجود در جهان به شکل گره در گرافی ذخیره میشوند که به آن پایگاه دانش گفته میشود. بات گفتگو از پایگاه دانش استفاده میکند تا اطلاعات مورد نیاز برای پاسخ را استخراج کند. همچنین در پایگاه دانش روابط بین مفاهیم هم مشخص شده اند و بات میتواند پاسخ مناسب را استنتاج کند.
شبکههای عصبی بازگشتی
در شبکههای عصبی بازگشتی، از مفاهیمی که در مراحل قبل مطرح شده استفاده میشود تا تاریخچه گفتگو حفظ شود و اطلاعات در حین گفتگو جریان یابد. در این شبکهها از کلماتی که در مرحله قبل وارد شبکه شدهاند برای درک و تولید جمله استفاده میشود. در شبکههای عصبی بازگشتنی از اطلاعات قبلی برای تولید خروجی استفاده میشود، اما آنها در حفظ وابستگی طولانی ناتوان هستند و نمیتوانند اطلاعاتی که در ابتدای جمله یا گفتگو ذکر شدهاند را برای تولید خروجی استفاده کنند به همین دلیل نوع دیگری از شبکههای بازگشتی تحت عنوان Long short term memory معرفی شد تا وابستگی بلند طولانی را هم حفظ کنند. از این رو از این نوع شبکهها برای پیاده سازی باتهای گفتگو استفاده میشود تا اطلاعاتی که در ابتدای گفتگو یا جمله مطرح شده مورد استفاده قرار گیرد.
شبکههای عصبی دنباله به دنباله
شبکهای دنباله به دنباله از مهم ترین روشهایی هستند که در ترجمه ماشینی کاربرد دارند، که در آن رشته خروجی در زبان مقصد با توجه به رشته ورودی در زبان مبدا تولید میشود. این مدل در باتهای گفتگو هم مورد استفاده است که در آن جمله مبدا، پیامهای کاربر و جمله مقصد پاسخ بات است. مدل دنباله به دنباله شامل دو شبکه عصبی بازگشتی است. شبکه رمزکننده، جمله ورودی را تبدیل به یک بازنمایی معنایی میکند، سپس شبکه رمزگشا از آن استفاده کرده و جمله خروجی را تولید میکند.
انواع
تولیدکننده یا استخراجکننده
در باتهای استخراجکننده، تعدادی پاسخ از قبل مشخص شده وجود دارد و هدف سیستم یافتن بهترین پاسخ بر اساس سوال است. این سیستمها میتوانند مبتنی بر الگوریتمهای قاعدهمحور یا الگوریتمهای یادگیری ماشین باشند. در این سیستمها پاسخی تولید نمیشود بلکه فقط از بین همهی پاسخها بهترین پاسخ انتخاب میشود. مزیت این سیستمها این است که خطاهای نگارشی ندارند اما مهم ترین عیب آنها این است که نمیتوانند به سوالی پاسخ بدهند که از قبل جواب متناظری در سیستم ذخیره نشده باشد. در مقابل باتهای تولیدکننده وابسته به جوابهای از پیش مشخص شده نیستند و متناسب با سوال کاربر، جواب مناسب تولید میشود. در واقع سوال کاربر به یک جواب ترجمه میشود. مزیت این سیستمها این است که میتوانند پاسخهای جدید تولید کنند اما ممکن است خطاهای نگارشی تولید کنند و همچنین آموزش این نوع مدلها دشوارتر است.
گفتگوهای بلند یا کوتاه
بر اساس طول گفتگو، باتهای گفتگو به دو نوع کوتاه و بلند طبقهبندی میشوند. هرچه طول گفتگو بیشتر شود، توسعه مدل دشوارتر میشود. در گفتگوهای کوتاه، هر سوال کاربر فقط با یک جمله پاسخ داده میشود اما در گفتگوهای بلند، اطلاعات زیادی بین کاربر و سیستم ردوبدل میشود و سیستم باید مفاهیمی که قبلا ذکر شده را به یاد داشته باشد تا گفتگو طبیعیتر شود.
دامنه باز یا بسته
در سیستمهای دامنه باز، دامنه موضوعات مطرح شده در گفتگو میتواند تغییر کند. این سیستمها نیازمند به دانش در زمینههای متنوعی هستند تا بتوانند پاسخ تولید کنند، به همین دلیل پیاده سازی آنها دشوار است. در سیستمهای دامنه بسته، داشتن دانش در یک زمینه خاص برای تولید پاسخ مناسب کافی است و موضوع مورد بحث در گفتگو تغییر زیادی نمیکند.
کاربردها
باتهای گفتگو به عنوان واسطی بین انسان و کامپیوتر هستند و تجربه کاربر را بهبود میبخشند.
دستیار هوشمند
از باتهای گفتگو به عنوان دستیار شخصی هوشمند استفاده میشود. مانند Siri و Cortana که با کاربر گفتگو میکنند و دستورات کاربر را اجرا میکنند.
پشتیبانی خدمات
یکی از مهم ترین کابردهای باتهای گفتگو در قسمت پشتیبانی خدمات در محصولات تجاری است که پاسخ مشکلات و سوالات مشتریان را میدهد.
بات معلم
به عنوان یک معلم مصنوعی، بات گغتگو به کاربر آموزش میدهد و بازخوردهای مناسب به کاربر میدهد.