Muloqot menejeri - Dialog manager

A dialog menejeri (DM) a ning tarkibiy qismidir dialog tizimi (DS), suhbatning holati va oqimi uchun javobgardir. Odatda:

  • The kiritish DM ga insonning so'zlari, odatda tomonidan ba'zi bir tizimga xos semantik vakolatlarga aylantiriladi Tabiiy tilni tushunish (NLU) komponenti. Masalan, parvozni rejalashtirish dialog tizimida kirish "ORDER (= TA, dan = JER, sana = 2012-01-01)" kabi ko'rinishi mumkin.
  • DM odatda bir qismini saqlab qoladi davlat tizimga bog'liq bo'lgan o'zgaruvchilar, masalan, dialog tarixi, so'nggi javobsiz savol va boshqalar.
  • The chiqish DM dan dialog tizimining boshqa qismlariga ko'rsatmalar ro'yxati, odatda semantik ko'rinishda, masalan "TELL (flight-num = 123, flight-time = 12: 34)". Ushbu semantik vakillik odatda inson tiliga Tabiiy tilni yaratish (NLG) komponenti.

Turli xil rollarni bajaradigan juda ko'p turli xil DMlar mavjud. Hatto bitta DSda bir nechta DM komponentlari bo'lishi mumkin.

Barcha DM uchun umumiy bo'lgan yagona narsa bu ulardir davlat, DS-ning boshqa qismlaridan (NLU va NLG komponentlari kabi) farqli o'laroq, bu shunchaki fuqaroligi bo'lmagan funktsiyalardir. DM rollarini taxminan quyidagi guruhlarga bo'lish mumkin:

  1. Insonning so'zlarini kontekstga bog'liq ravishda qayta ishlashga imkon beradigan kirish boshqaruvi DM.
  2. Chiqarishni boshqarish DM. bu davlatga bog'liq bo'lgan matnni yaratish imkonini beradi.
  3. Strategik oqimlarni boshqarish
  4. Taktik oqimni boshqarish

Kirish-boshqarish DM

Inson kiritish kontekstga qarab har xil ma'nolarga ega. Masalan, sayohatni rejalashtirish DS-da:

  • Kompyuter: Qayerdan ketmoqchisiz?
    • Inson: Tel-Aviv.
  • Kompyuter: Qaerga kelishni xohlaysiz?
    • Inson: G'azo.

Shahar nomining ma'nosi ilgari berilgan savolga bog'liq. DM bu savolni davlat o'zgaruvchisida saqlab turishi va undan "Tel-Aviv" ni "Men Tel-Avivdan ketmoqchiman" ga o'zgartirishi va "G'azo" ni "G'azoga kelishni istayman" ga aylantirishi mumkin.

Ushbu funktsiya NLU va DM o'rtasidagi chegarada: ba'zi tizimlarda NLU tarkibiga kiritilgan, masalan, kontekstga bog'liq qoidalar Milward (2000); boshqa tizimlarda u DM ga kiritilgan, masalan NP rezolyutsiyasi moduli Mirkovich va Kavedon (2005).

NLU va DM o'rtasidagi yana bir funktsiya - bu qaysi so'zlarni bitta gapning bir qismi ekanligini aniqlash. Bu erda ish muzokarasi dialogidan bir misol:

  • Men 20000 NIS ish haqini taklif qilaman
  • va mashina
  • Pensiya shartlari keyinroq hal qilinadi

Uchala gap ham aslida bitta taklif. Ikkinchi gap uchun "va" so'zi maslahatdir, ammo uchinchi gap uchun faqatgina ikkinchisidan keyin darhol aytilgan bo'lishi mumkin. Buni tushunish uchun DM har bir gapning vaqt tamg'asini saqlashi kerak.

Chiqarishni boshqarish DM

Kompyuter chiqish dialog tarixini eslab, tabiiyroq bo'lishi mumkin. Masalan, NPCEditor (inson savollariga javob beradigan belgilar muallifi uchun asos) muallifga savol-javob juftliklarini belgilashga imkon beradi, shunda har bir savol uchun bir nechta javob bo'lishi mumkin. DM savolga eng yaxshi javobni tanlaydi, agar u allaqachon ishlatilmagan bo'lsa, u holda u 2-eng yaxshi javobni tanlaydi va hokazo.

Shunga o'xshash xususiyat mavjud ChatScript (chat-botlarni yozish uchun ramka): DS har safar ma'lum bir qoidani qo'llaganida, DM bu qoidani "ishlatilgan" deb belgilaydi, shunda u qayta ishlatilmaydi.

Yaqinda texnik yordam uchun DS[iqtibos kerak ] buyumlarni tavsiflash uchun eng yaxshi shartlarni tanlash uchun mashinada o'rganilgan zamonaviy qoidalardan foydalanadi. Masalan, DM uning kattalar bilan gaplashayotganini sezsa, u "chap qo'l" kabi atamalardan foydalanadi; agar u bola bilan gaplashayotganini sezsa, unda "soatni kiyadigan qo'l" kabi texnik atamalardan kamroq foydalaniladi.

Ushbu funktsiya DM va NLG chegaralarida joylashgan.

Strategik oqimni boshqarish DM

DMning asosiy roli - dialog agentining dialogning har bir nuqtasida qanday harakatlarni amalga oshirishi to'g'risida qaror qabul qilish.

Buning oddiy usuli - muallifga dialog tuzilishini to'liq ko'rsatib berish. Masalan, o'quv qo'llanma dialogining tuzilishi quyidagicha ko'rinishi mumkin:

  • Kompyuter: "Elektronga qanday kuchlar ta'sir qiladi?"
    • Inson: "Elektr kuchi".
      • Kompyuter: "To'g'ri"
      • [keyingi savolga o'ting]
  • Kompyuter: "Massaga qanday kuchlar ta'sir qiladi?"
    • Inson: "Elektr kuchi".
      • Kompyuter: "Noto'g'ri, massada to'lov yo'q".
      • [elektr toki haqida darslikka o'ting]

DM bizning stsenariydagi hozirgi holatimizga ko'rsatgichni saqlaydi. Lavozim inson kiritgan ma'lumotlarga muvofiq yangilanadi.

Mualliflarga dialog tuzilmalarini belgilashga imkon beradigan ko'plab tillar va ramkalar mavjud, masalan: VoiceXML (nutq dialoglari uchun optimallashtirilgan), AIML, fasad va ChatScript (chat-botlar uchun optimallashtirilgan), CDM (Java-ga asoslangan, qurilmani boshqarish dialoglari uchun optimallashtirilgan) va TuTalk (o'quv qo'llanmalari uchun optimallashtirilgan).

Bundan tashqari, dialog oynasini standart jadval sifatida tavsiflash mumkin, masalan, standart til yordamida SCXML. Bu amalga oshiriladi DomainEditor (uchun ramka taktik savollar belgilar).

Mualliflar uchun to'liq dialog tuzilishini yozish juda zerikarli. Mualliflarga dialogni yuqori mavhumlik darajasida tavsiflashga imkon beradigan ko'plab yaxshilanishlar mavjud, shu bilan birga DMga ko'proq yuk.

Ierarxik tuzilish

Ravenklav (CMU kommunikatoriga asoslangan maqsadga yo'naltirilgan dialoglar uchun DM) muallifga rivojlangan, ko'p darajali dialog tuzilishi tavsifini beradi, masalan:

  • Xonani bron qilish vazifasi:
    • Tizimga kirish
      • Foydalanuvchi nomini so'rang
      • Foydalanuvchi parolini so'rang
    • Xona tanlash
      • Bino tanlash
      • Xona raqamini tanlash
    • Vaqtni tanlash
    • Tugatish

Ravenclaw DM dialog modullari to'plamini saqlaydi va undan inson kiritgan ma'lumotlarni qayta ishlashda foydalanadi.

Ushbu tuzilish kodni qayta ishlatishni rag'batlantiradi, masalan, kirish moduli boshqa dialog oynalarida ishlatilishi mumkin.

Ular ham Talab tuzilish oldindan o'rnatilmagan, lekin orqa tomondan tanlangan ma'lumotlarga asoslanib, tezkor ravishda quriladigan dinamik dialogli vazifalarni qurishga ruxsat berish. Masalan, parvarishlash bo'yicha vazifalarni bajarishda samolyotlarga texnik xizmat ko'rsatuvchi xodimlarga yordam beradigan tizimda dialog oynasining tuzilishi texnik xizmat vazifasining tuzilishiga bog'liq va dinamik ravishda tuzilgan.

Mavzuni kuzatish

ChatScript singari chat-botlar uchun ramkalar, suhbat strukturasini boshqarish imkonini beradi mavzular. Muallif ushbu mavzuni qamrab oladigan qoidalar yaratishi mumkin

  • mavzu: BOLALIK (o'g'il bola qiz yosh)
  • t: Men baxtli bolalikni boshdan kechirdim.
  • t: Ammo bu juda erta tugadi.
  • ...

Agar odam qavs ichidagi so'zlardan birini aytsa, DM bu mavzu "BOLALIK" ekanligini eslaydi. Endi bot-bot suhbatni boshqarishi sharti bilan chat-bot "BOLALIK" sarlavhasi ostida voqeani aytib berishni boshlaydi (foydalanuvchi passiv tarzda "OK" yoki "to'g'ri" deb o'ylaydi). Agar foydalanuvchi savollar bersa, tizim to'g'ridan-to'g'ri javob berishi yoki aytmoqchi bo'lgan voqea satridan foydalanishi mumkin.

Bu ham mualliflarga mavzularni qayta ishlatishga va bir nechta mustaqil mavzularni birlashtirib, yanada aqlli suhbat-bot yaratishga imkon beradi.

Shaklni to'ldirish

Dialogli tizimlarning keng tarqalgan qo'llanilishi shakllarni almashtirishdir. Masalan, reyslarni bron qilish agenti odamdan kelib chiqishi vaqti va joyi, boradigan vaqti va joyi to'g'risida so'rashi kerak - xuddi odam bu 4 ta uyani to'ldirgandek.

Oddiy echim - foydalanish tizim tashabbusi, bu erda dialog tizimi foydalanuvchidan har bir ma'lumot haqida o'z navbatida so'raydi va foydalanuvchi ularni ushbu dialog oynasidagi kabi aniq tartibda to'ldirishi kerak (taqdimotdan Devid Traum ):

  • Parvozni tasdiqlash tizimiga xush kelibsiz. Sizning parvoz raqamingiz qancha?
    • Yunayted 123 8 avgust kuni Los-Anjelesdan
  • Ketish shahri qaysi?
    • Sizga, Los-Anjeles, 8 avgust kuni aytdim
  • Kechirasiz, tushunmadim. Ketish shahri qaysi?
    • Los-Anjeles 8 avgustni tark etadi.
  • Ketish kuni qaysi?
    • Siz tinglamaysiz! 8 avgust!
  • Iltimos, ketish kunini ayting?
    • 8 avgust
  • Yunayted 123 reysi 8 avgust kuni soat 14.00da Los-Anjelesdan Londonga jo'nab ketishini tasdiqladi.

Tizim tashabbusining teskarisi foydalanuvchi tashabbusi, bu erda foydalanuvchi etakchilik qiladi va tizim foydalanuvchi nima yo'naltirsa, unga javob beradi.

Ikkala usul o'rtasidagi umumiy kelishuv bu aralash tashabbus, bu erda tizim savollar berish bilan boshlanadi, ammo foydalanuvchilar o'zaro suhbatlashish va dialog yo'nalishini o'zgartirishi mumkin. Tizim foydalanuvchini hali so'ralmagan tafsilotlar haqida gapirganda ham tushunadi.

Biroq, bunday tizimni davlat sxemasi sifatida qo'lda tavsiflash juda zerikarli, chunki inson avval kelib chiqishi, keyin manzili yoki aksincha aytishi mumkin. Ularning har birida inson avval vaqtni, keyin esa joyni aytishi mumkin yoki aksincha.

Shunday qilib, suhbat muallifiga aniq tartibni ko'rsatmasdan faqat qanday ma'lumot kerakligini aytishga imkon beradigan DMlar mavjud. Masalan, muallif quyidagilarni yozishi mumkin:

  • Sayohat = {ORIGIN-PLACE, ORIGIN-TIME, DESTINATION-PLACE, DESTINATION-TIME}

DM qaysi uyalar to'ldirilganligini va qaysi bo'shliqlar hali ham bo'shligini kuzatib boradi va etishmayotgan ma'lumotlarni to'plash uchun suhbatni boshqaradi. Masalan, DM avval odamdan kelib chiqish joyi to'g'risida so'rashi mumkin, ammo agar inson belgilangan joyni qo'shsa, DM ma'lumotni saqlab qoladi va bu haqda boshqa so'ramaydi.

Bunday DSlar ishlab chiqilgan MIT Masalan, g'ildiraklar (ishlatilgan avtoulov e'lonlarini qidirish uchun), Yupiter (ob-havo ma'lumotlarini olish uchun) va boshqalar.

Oddiy yassi disklar plomba bilan to'ldirishni ikkitomonlama bajaradi: yoki bo'shliq "to'ldirilgan" yoki u "bo'sh". Keyinchalik rivojlangan DMlar ham kuzatib boradi topraklama darajasi - biz foydalanuvchining aytganlarini haqiqatan ham anglaganimizga qanchalik aminmiz: "Yaqinda tanishtirildi", "Yana tanishtirildi", "tan olindi", "takrorlandi" va hokazo. Biz muallifga har biri uchun ko'rsatmalar berishga ruxsat beramiz. ma'lumot parchasi, biz uni anglashimiz zarurati darajasi, masalan nozik ma'lumotlarga yuqori daraja kerak. DM ushbu ma'lumotni dialog jarayonini boshqarish uchun ishlatadi, masalan, agar inson sezgir mavzu haqida biror narsa aytgan bo'lsa va biz tushunganimizga amin bo'lmasak, u holda DM tasdiqlash uchun savol beradi. Qarang Roque and Traum (2008).

Axborot holati

The TrindiKit Davomida ishlab chiqilgan DS Trindi loyihasi, mualliflarga murakkab axborot holatini aniqlashga va ushbu holatga ishlov beradigan umumiy qoidalarni yozishga imkon beradi. Mana qoidaning namunasi:

integrateAnswer: old shartlar: ("Agar inson hozirda muhokama qilinayotgan savolga tegishli javob bergan bo'lsa ...") ichida (SHARED.LM, javob (usr, A)) fst (SHARED.QUD, Q) tegishli_ javob (Q, A ) effektlari: ("... keyin uni munozara ostidagi savoldan olib tashlang va umumiy maydonga qo'shing") pop (SHARED.QUD) kamaytirish (Q, A, P) qo'shish (SHARED.COM, P)

DM, qoidalar va holatga muvofiq qaror qiladi, qaysi qoidalar amal qiladi va yangi holatni olish uchun ularni qo'llaydi.

Bu mualliflarga dialog nazariyalariga asoslangan dialogni boshqarish qoidalari uchun umumiy qoidalarni qayta ishlatishda yordam berishi mumkin. TrindiKit bilan ishlab chiqilgan DSlarga quyidagilar kiradi: GoDiS, MIDAS, EDIS va SRI Autorate.

Axborot holati yondashuvi keyinchalik kabi loyihalarda ishlab chiqilgan Siridus va Dipper asboblar to'plami.

Axborot holatiga asoslangan dialog menejerining yana bir misoli FLoReS. U joriy holatni kodlash uchun propozitsion axborot holatidan foydalanadi va a yordamida keyingi harakatni tanlaydi Markovning qaror qabul qilish jarayoni. Ushbu dialog menejeri jmNL dasturi.

Umumiy rejalashtirish

Ushbu yondashuvning umumlashtirilishi muallifga ta'rif berishiga imkon berishdir maqsadlar agenti va DM ga a tuzilsin reja ushbu maqsadga erishish uchun. Reja tuzilgan operatsiyalar. Har bir nutq harakati operatsiya hisoblanadi. Har bir operatsiya mavjud old shartlar va keyingi shartlar (effektlar), masalan:

Inform (Karnay, Eshituvchi, Predikat): Old shart: biladi (karnay, bashorat) va xohlaydi (karnay, xabar (ma'ruzachi, eshituvchi, taxmin)) Ta'sir: biladi (eshituvchi, taxmin qiluvchi) tanasi: ishonadi (eshituvchi, xohlaydi (ma'ruzachi, biladi) (Eshituvchi, taxmin qiladigan)))

Suhbatni umumiy rejalashtiruvchi yordamida boshqarish mumkin, masalan SOAR. Rejalashtiruvchi joriy holatni saqlab qoladi va berilgan operatsiyalar yordamida maqsadga erishish uchun reja tuzishga harakat qiladi.

Shunga o'xshash yondashuv qo'llaniladi SASO-ST (ko'p agentlik bilan muzokaralar o'tkazish uchun DS). SOAR-dan foydalanish murakkab hissiy va ijtimoiy modellarni birlashtirishga imkon beradi, masalan: agent insonning harakatlariga asoslanib, u bilan hamkorlik qilishni, undan qochishni yoki hatto unga hujum qilishni xohlaydimi, qaror qabul qilishi mumkin.

Shunga o'xshash yondashuv qo'llaniladi TRIPS (ko'p agentlik bilan birgalikda muammolarni hal qilish uchun DS). Ular dialogni boshqarishni bir nechta modullarga bo'lishdi:

  • Malumot menejeri - Bir so'zni hisobga olgan holda (masalan, "ayol"), uning dunyodagi qaysi ob'ektga tegishli ekanligini aniqlang (masalan, "WOM1234").
  • Vazifa menejeri - foydalanuvchi erishmoqchi bo'lgan muammolarni hal qilish harakatlarini aniqlash (yangi maqsad yaratish, mavjud maqsadni kengaytirish va hk).
  • Interpretatsiya menejeri - dastlabki ikkitasini chaqirishdan tashqari, nutq majburiyatlarini ham aniqlang, masalan: "so'nggi savolga javob bering".
  • Xulq-atvor agenti - foydalanuvchi xohlagan maqsadni qanday amalga oshirishni hal qiladi. Agentda aniq rejalashtirishni amalga oshiradigan bir nechta vazifa bo'yicha agentlar ishlaydi.

Rejalashtirishning boshqa turi isbotlovchi teorema. Dialogni teoremani isbotlashga urinish deb ta'riflash mumkin. Tizim foydalanuvchi bilan o'zaro aloqada bo'lib, dalillarni to'ldirishga yordam beradigan "etishmayotgan aksiomalar" ni etkazib beradi (bu "orqaga zanjir" deb nomlanadi). Ushbu yondashuv quyidagilar tomonidan amalga oshirildi:

  • Grammatik asos, qarang Ranta va Kuper (2004).
  • IPSIM (Interruptible Prolog SIMulator), Circuit Fixit tizimida; Smit, Xipp va Biermannga qarang.

Muloqot menejeri an bilan bog'lanishi mumkin ekspert tizimi, aniq tajriba bilan javob berish qobiliyatini berish.

Taktik oqimni boshqarish DM

Muloqot oynasining umumiy tuzilishi va maqsadlariga rioya qilishdan tashqari, ba'zi DMlar taktik suhbatlar bo'yicha ba'zi qarorlarni - suhbat sifatiga ta'sir qiluvchi mahalliy qarorlarni ham qabul qilishadi.

Ishlashda xatolik yuz berdi

ASR va NLU modullari odatda foydalanuvchini tushunganlariga 100% ishonch hosil qilmaydi; ular odatda tushunish sifatini aks ettiruvchi ishonch balini qaytaradilar. Bunday hollarda, DM quyidagilar to'g'risida qaror qabul qilishi kerak:

  • Faqat eng ehtimoliy talqin to'g'ri deb o'ylang va suhbatni davom eting (tasdiqlashsiz);
  • Suhbatni davom eting, lekin tushunarli bo'lgan ba'zi so'zlarni qo'shing, masalan "OK, siz restoranga borishni xohlaysiz. Qaerda aniq?" (yashirin tasdiqlash).
  • Foydalanuvchidan aniq nima demoqchi bo'lganligini so'rang (aniq tasdiqlash): "Siz Xni nazarda tutyapsizmi?" "X yoki Y demadingizmi?" Va boshqalar.
  • Foydalanuvchiga "Men tushunmadim, iltimos, yana bir bor ayting" deb ayting.

"Tasdiqlashsiz" ni tanlash dialogni tezroq davom ettirishi mumkin, ammo keyinchalik tuzatish uchun ko'proq vaqt talab etadigan xatolarni keltirib chiqarishi mumkin.

Xatolarni boshqarish bo'yicha tadqiqotlar keng o'tkazildi Ravenklav bu muallifga dialog oynasining har bir qismida xatolarni boshqarish strategiyasini qo'lda boshqarish imkonini beradi.

Tashabbusni boshqarish

Ba'zi DS-larda bir nechta ishlash usullari mavjud: standart rejim foydalanuvchi tashabbusi, bu erda tizim faqat "men siz uchun nima qila olaman?" va foydalanuvchiga suhbatda harakat qilishiga imkon beradi. Bu tajribali foydalanuvchilar uchun yaxshi. Biroq, foydalanuvchi va tizim o'rtasida ko'plab tushunmovchiliklar mavjud bo'lsa, DM DM ga o'tishga qaror qilishi mumkin aralash tashabbus yoki tizim tashabbusi - foydalanuvchiga aniq savollar bering va bir vaqtning o'zida bitta javobni qabul qiling.

Pedagogik qarorlar

Boshqa turdagi taktik qarorlar tomonidan amalga oshiriladi Kordilyera (fizikani o'qitish bo'yicha DS qo'llanmasi, TuTalk yordamida yaratilgan). Dars davomida ko'p holatlarda DM quyidagilarni hal qilishi kerak:

  • O'quvchiga biron bir faktni aytib berasizmi yoki undan ushbu ma'lumotni aniqlovchi savollar berishga harakat qilasizmi.
  • O'quvchidan o'z javobini oqlashni so'rash kerakmi yoki shunchaki asoslashni o'tkazib yuborishni davom ettirish.

Ushbu qarorlar ta'limning umumiy sifatiga ta'sir qiladi, uni o'qishdan oldingi va keyingi imtihonlarni taqqoslash yo'li bilan o'lchash mumkin.

O'rganilgan taktika

Inson mutaxassisi qaror qabul qilishning murakkab qoidalarini yozishiga ruxsat berish o'rniga, undan foydalanish odatiy holdir mustahkamlashni o'rganish. Muloqot oynasi a shaklida ifodalanadi Markovning qaror qabul qilish jarayoni (MDP) - har bir holatda, DM har bir harakatdan holatga va mumkin bo'lgan mukofotlarga asoslangan harakatni tanlashi kerak bo'lgan jarayon. Ushbu sozlamada dialog muallifi faqat mukofotlash funktsiyasini belgilashi kerak, masalan: o'quv qo'llanmalaridagi dialoglarda mukofot talabaning bahosining oshishi; ma'lumot qidiradigan dialoglarda, agar inson ma'lumot olgan bo'lsa, mukofot ijobiy, ammo har bir muloqot bosqichi uchun salbiy mukofot ham mavjud.

So'ngra RL texnikasi siyosatni o'rganish uchun ishlatiladi, masalan, har bir davlatda qanday tasdiqdan foydalanishimiz kerak? Keyinchalik, ushbu siyosat DM tomonidan haqiqiy dialoglarda qo'llaniladi.

Ushbu mavzu bo'yicha o'quv qo'llanma muallifi Limon va Rizer (2009).

Dialoglik siyosatni o'rganishning boshqacha usuli - Oz sehrgarining tajribalari yordamida odamga taqlid qilishga urinish, unda odam yashirin xonada o'tirib, kompyuterga nima deyishini aytadi; masalan qarang Passonneau va boshq (2011).

Qo'shimcha o'qish