İletişim yöneticisi - Dialog manager

Bir diyalog yöneticisi (DM) bir bileşenidir diyalog sistemi (DS), görüşmenin durumundan ve akışından sorumlu. Genelde:

  • giriş DM, insan ifadesidir ve genellikle sisteme özgü bazı semantik temsillere dönüştürülür. Doğal dil anlayışı (NLU) bileşeni. Örneğin, bir uçuş planlama iletişim sisteminde, giriş "SİPARİŞ (= TA'dan = JER'e, tarih = 2012-01-01)" gibi görünebilir.
  • DM genellikle bazılarını korur durum sisteme bağlı olarak diyalog geçmişi, en son cevaplanmamış soru vb. gibi değişkenler.
  • çıktı DM, diyalog sisteminin diğer bölümlerine yönelik talimatların bir listesidir, genellikle anlamsal bir sunumda, örneğin "TELL (flight-num = 123, flight-time = 12: 34)". Bu anlamsal temsil, genellikle insan diline dönüştürülür. Doğal dil üretimi (NLG) bileşeni.

Çok farklı rolleri yerine getiren birçok farklı DM var. Tek bir DS'de birden fazla DM bileşeni bile olabilir.

Tüm DM'ler için ortak olan tek şey, durum bilgili, yalnızca durumsuz işlevler olan DS'nin diğer bölümlerinin (NLU ve NLG bileşenleri gibi) aksine. DM rolleri kabaca şu gruplara ayrılabilir:

  1. İnsan ifadelerinin içeriğe bağlı olarak işlenmesini sağlayan girdi kontrollü DM'ler.
  2. Çıkış kontrollü DM'ler. duruma bağlı metin oluşturmayı mümkün kılan.
  3. Stratejik akış kontrolü
  4. Taktik akış kontrolü

Giriş kontrollü DM

İnsan giriş bağlama göre farklı anlamlara sahiptir. Örneğin, bir seyahat planlama DS'sinde:

  • Bilgisayar: Nereden ayrılmak istersiniz?
    • İnsan: Tel Aviv.
  • Bilgisayar: Nereye varmak istiyorsunuz?
    • İnsan: Gazze.

Şehir adının anlamı daha önce sorulan soruya bağlıdır. Bir DM, bu soruyu bir devlet değişkeninde tutabilir ve "Tel Aviv" i "Tel Aviv'den ayrılmak istiyorum" ve "Gazze" yi "Gazze'ye varmak istiyorum" a dönüştürmek için kullanabilir.

Bu işlev, NLU ve DM arasındaki sınırdadır: içeriğe bağlı kurallar gibi bazı sistemlerde NLU'ya dahildir. Milward (2000); diğer sistemlerde ise DM'ye dahil edilir, örneğin NP çözünürlüğü modülü Mirkovic ve Cavedon (2005).

NLU ve DM arasındaki diğer bir işlev, hangi giriş ifadelerinin tek bir ifadenin parçası olduğunu belirlemektir. İşte bir iş görüşmesi iletişim kutusundan bir örnek:

  • 20.000 NIS maaş teklif ediyorum
  • ve bir araba
  • Emeklilik koşullarına daha sonra karar verilecek

Her üç ifade de aslında tek bir tekliftir. İkinci ifade için, "ve" kelimesi bir ipucudur, ancak üçüncü ifade için tek olası ipucu, ikinciden hemen sonra söylendiğidir. Bunu anlamak için DM muhtemelen her ifadenin bir zaman damgasını tutmalıdır.

Çıkış kontrollü DM

Bilgisayar çıktı diyalog geçmişi hatırlanarak daha doğal hale getirilebilir. Örneğin, NPCEditor (insan sorularını yanıtlayan karakterleri yazmak için bir çerçeve), yazarın her soru için birkaç olası yanıt olacak şekilde soru-yanıt çiftleri tanımlamasına izin verir. DM, daha önce kullanılmadıysa soru için en iyi yanıtı seçer, bu durumda 2. en iyi yanıtı seçer vb.

Benzer bir özellik var ChatScript (chatter-bot'ları yazmak için bir çerçeve): DS belirli bir kuralı her kullandığında, DM bu kuralı tekrar kullanılmaması için "kullanılmış" olarak işaretler.

Teknik yardım için yeni bir DS[kaynak belirtilmeli ] öğeleri açıklamak için en iyi terimleri seçmek için gelişmiş makine tarafından öğrenilen kuralları kullanır. Örneğin, DM bir yetişkinle konuştuğunu fark ederse, "sol el" gibi terimler kullanacaktır; bir çocukla konuştuğunu fark ederse, "saati taktığınız el" gibi daha az teknik terimler kullanacaktır.

Bu işlev, DM ve NLG arasındaki sınırdadır.

Stratejik akış kontrollü DM

DM'nin ana rolü, diyalog aracısının diyalogun her noktasında hangi eylemi gerçekleştirmesi gerektiğine karar vermektir.

Bunu yapmanın basit bir yolu, yazarın diyalog yapısını tamamen belirlemesine izin vermektir. Örneğin, bir öğretici iletişim kutusu yapısının bir özelliği şöyle görünebilir:

  • Bilgisayar: "Elektrona hangi kuvvetler etki eder?"
    • İnsan: "Elektrik gücü".
      • Bilgisayar: "Doğru"
      • [sonraki soruya git]
  • Bilgisayar: "Kitleye hangi kuvvetler etki eder?"
    • İnsan: "Elektrik gücü".
      • Bilgisayar: "Yanlış, kütlenin yükü yok".
      • [elektrikle ilgili bir eğiticiye gidin]

DM, koddaki mevcut konumumuza bir işaretçi tutar. Pozisyon, insan girdisine göre güncellenir.

Yazarların aşağıdaki gibi diyalog yapılarını belirlemesine izin veren birçok dil ve çerçeve vardır: VoiceXML (konuşma diyalogları için optimize edilmiştir), AIML, Cephe ve ChatScript (sohbet botları için optimize edilmiştir), CDM (Java tabanlı, cihaz kontrol iletişim kutuları için optimize edilmiştir) ve TuTalk (öğretici diyaloglar için optimize edilmiştir).

Ek olarak, diyalog yapısı, aşağıdaki gibi standart bir dil kullanılarak bir durum grafiği olarak tanımlanabilir. SCXML. Bu yapılır DomainEditor (için bir çerçeve taktik sorgulama karakterler).

Yazarlar için tam bir diyalog yapısı yazmaları oldukça sıkıcıdır. Yazarların bir diyaloğu daha yüksek bir soyutlama düzeyinde tanımlamasına izin verirken, DM'ye daha fazla yük bindiren birçok geliştirme vardır.

Hiyerarşik yapı

Ravenclaw (CMU iletişim cihazına dayalı, hedef odaklı iletişim kutuları için bir DM), yazara aşağıdaki gibi gelişmiş, çok seviyeli bir iletişim yapısı açıklaması sağlar:

  • Oda rezervasyonu görevi:
    • Oturum aç
      • Kullanıcı adını sor
      • Kullanıcı şifresini sor
    • Oda seçimi
      • Bina seçimi
      • Oda numarası seçimi
    • Zaman seçimi
    • Bitiş

Ravenclaw DM, bir dizi iletişim modülü tutar ve insan girişini işlemek için kullanır.

Bu yapı, kodun yeniden kullanımını teşvik eder, örneğin, oturum açma modülü diğer iletişim kutularında kullanılabilir.

Onlar ayrıca İddia yapının önceden sabitlenmediği, ancak arka uçtan seçilen bilgilere dayalı olarak anında inşa edildiği dinamik diyalog görevi inşasına izin vermek. Örneğin, uçak bakım personeline bakım görevlerinin yürütülmesi boyunca yardımcı olan bir sistemde, iletişim kutusunun yapısı bakım görevinin yapısına bağlıdır ve dinamik olarak yapılandırılır.

Konu takibi

ChatScript gibi sohbet botları için çerçeveler, sohbet yapısını kontrol etmeye izin verir. konular. Yazar, konuyu yakalayan kurallar oluşturabilir.

  • konu: ÇOCUKLUK (çocuk erkek kız genç)
  • t: Mutlu bir çocukluk geçirdim.
  • t: Ama çok erken bitti.
  • ...

İnsan parantez içindeki sözcüklerden birini söylüyorsa, DM konunun "ÇOCUKLUK" olduğunu hatırlar. Sohbet botu, konuşmanın kontrolü botun elinde olduğu sürece hikayeyi "ÇOCUKLUK" başlığı altında anlatmaya başlar (kullanıcı pasif olarak "Tamam" veya "doğru" gibi düşünür diyerek yanıt verir). Yine de kullanıcı soru sorarsa, sistem ya doğrudan yanıt verebilir ya da yine de söyleyeceği hikayenin bir satırını kullanabilir.

Bu da yazarların konuları yeniden kullanmasına ve daha akıllı bir sohbet botu oluşturmak için birkaç bağımsız konuyu birleştirmesine izin verir.

Form doldurma

Diyalog sistemlerinin yaygın bir kullanımı, formların yerini almaktır. Örneğin, bir uçuş-rezervasyon acentesi insana kalkış saatini ve yerini ve varış saatini ve yerini sormalıdır - tıpkı insan bu 4 yuvayla bir formu dolduruyormuş gibi.

Basit bir çözüm kullanmaktır sistem girişimi, iletişim sisteminin kullanıcıya sırayla her bir bilgi parçasını sorduğu ve kullanıcının bu iletişim kutusundaki gibi (bir sunumdan David Traum ):

  • Uçuş onay sistemine hoş geldiniz. Uçuş numaranız nedir?
    • 8 Ağustos'ta Los Angeles'tan United 123
  • Kalkış şehriniz nedir?
    • Sana söyledim, Los Angeles, 8 Ağustos
  • Üzgünüm anlamadım Kalkış şehriniz nedir?
    • Los Angeles 8 Ağustos'tan ayrılıyor.
  • Ayrılış günü nedir?
    • Dinlemiyorsun! 8 Ağustos!
  • Lütfen ayrılış gününü söyleyin.
    • 8 ağustos
  • United 123 sefer sayılı uçuş, 8 Ağustos günü saat 14: 00'de Londra'ya gitmek üzere Los Angeles'tan ayrılacağını doğruladı.

Sistem girişiminin tersi kullanıcı girişimi, kullanıcının önderlik ettiği ve sistem kullanıcının yönlendirdiği her şeye yanıt verdiği yer.

İki yöntem arasında ortak bir uzlaşma, karma girişim, sistemin soru sormakla başladığı, ancak kullanıcıların içeri girip diyalog yönünü değiştirebildiği yer. Sistem, kullanıcıyı henüz kendisine sorulmayan ayrıntılardan bahsettiğinde bile anlar.

Bununla birlikte, böyle bir sistemi manuel olarak bir durum tablosu olarak tanımlamak çok yorucudur, çünkü insan önce başlangıç ​​ve sonra varış noktasını söyleyebilir ya da tam tersi. Her birinde insan önce zamanı sonra yeri söyleyebilir ya da tam tersi.

Dolayısıyla, diyalog yazarının tam sırayı belirtmeden sadece hangi bilgilerin gerekli olduğunu söylemesine izin veren DM'ler vardır. Örneğin yazar şunları yazabilir:

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

DM, hangi yuvaların zaten dolu olduğunu ve hangi yuvaların hala boş olduğunu takip eder ve eksik bilgileri toplamak için görüşmede gezinir. Örneğin, DM önce insana başlangıç ​​yerini sorabilir, ancak insan varış yerini eklerse, DM bilgiyi saklayacak ve bir daha sormayacaktır.

Bu tür DS'ler, MIT, örneğin, Tekerlekler (kullanılmış araba reklamlarını aramak için), Jüpiter (hava tahminlerini almak için) ve daha fazlası.

Basit DM'ler yuva doldurmayı ikili olarak ele alır: bir yuva "doldurulur" veya "boştur". Daha gelişmiş DM'ler ayrıca topraklama derecesi - kullanıcının ne dediğini gerçekten anladığımızdan ne kadar eminiz: "Yeni tanıtıldı", "Tekrar tanıtıldı", "kabul edildi", "tekrarlandı" vb. Ayrıca, yazarın her biri için belirtmesine de izin verebiliriz. bilgi parçası, anlaşılmasına ne kadar İHTİYACIMIZDIR, örneğin hassas bilgiler daha yüksek dereceye ihtiyaç duyar. DM bu bilgiyi diyaloğun gidişatını kontrol etmek için kullanır, örneğin insan hassas bir konu hakkında bir şey söylediyse ve anladığımızdan emin değilsek, DM bir onay sorusu yayınlayacaktır. Görmek Roque ve Traum (2008).

Bilgi durumu

TrindiKit DS, Trindi proje, yazarların karmaşık bir bilgi durumu tanımlamasına ve bu durumu işleyen genel kurallar yazmasına izin verir. İşte örnek bir kural:

integrateAnswer: ön koşullar: ("Eğer insan şu anda tartışılmakta olan bir soruya alakalı bir cevap verdiyse ...") (SHARED.LM, answer (usr, A)) fst (SHARED.QUD, Q) related_answer (Q, A ) efektler: ("... daha sonra Tartışılan Soru'dan kaldırın ve paylaşılan alana ekleyin") pop (SHARED.QUD) azalt (Q, A, P) ekle (SHARED.COM, P)

DM, girdiye ve duruma göre hangi kuralların geçerli olduğuna karar verir ve yeni durumu elde etmek için bunları uygular.

Bu, yazarların diyalog teorilerine dayanan diyalog yönetimi kuralları için genel kuralları yeniden kullanmalarına yardımcı olabilir. TrindiKit ile geliştirilen DS'ler şunları içerir: GoDiS, MIDAS, EDIS ve SRI Autorate.

Bilgi durumu yaklaşımı daha sonra aşağıdaki gibi projelerde geliştirilmiştir: Siridus ve Kepçe araç seti.

Bilgi durumuna dayalı bir diyalog yöneticisinin başka bir örneği de FLORELER. Mevcut durumu kodlamak için bir önerme bilgi durumu kullanır ve bir sonraki eylemi kullanarak bir sonraki eylemi seçer. Markov karar süreci. Bu diyalog yöneticisi, jmNL yazılımı.

Genel planlama

Bu yaklaşımın bir genellemesi, yazarın hedefler ve DM'nin bir plan bu hedefe ulaşmak için. Plan yapılır operasyonlar. Her konuşma eylemi bir işlemdir. Her operasyonda ön koşullar ve son koşullar (efektler), örneğin:

Bilgilendirme (Konuşmacı, İşiten, Tahmin): Ön Koşul: Biliyor (Konuşmacı, Tahmin) VE İstiyor (Konuşmacı, Bilgilendir (Konuşmacı, İşiten, Tahmin)) Etki: Biliyor (Duyan, Tahmin) Beden: İnan (İşiten, İsteyen (Konuşmacı, Biliyor) (Duyan, Dayanak)))

Görüşme, aşağıdaki gibi genel bir planlayıcı kullanılarak gezilebilir: BAŞLANGIÇ. Planlayıcı mevcut durumu korur ve verilen işlemleri kullanarak hedefe ulaşmak için bir plan oluşturmaya çalışır.

Benzer bir yaklaşım da SASO-ST (çok temsilcili müzakere eğitimi için bir DE). SOAR kullanımı, karmaşık duygusal ve sosyal modellerin birleştirilmesine izin verir, örneğin: temsilci, insan eylemlerine dayanarak, onunla işbirliği yapmak, ondan kaçınmak veya hatta ona saldırmak isteyip istemediğine karar verebilir.

Benzer bir yaklaşım da GEZİLER (çok etmenli işbirliğine dayalı problem çözme için bir DS). Diyalog yönetimini birkaç modüle böldüler:

  • Referans yöneticisi - Bir kelime verildiğinde (ör. "Kadın"), dünyadaki hangi nesneyi ifade ettiğine karar verin (ör. "WOM1234").
  • Görev Yöneticisi - Kullanıcının ulaşmaya çalıştığı problem çözme eylemlerini belirleyin (yeni hedef oluşturma, mevcut bir hedefi genişletme, vb.).
  • Yorumlama müdürü - ilk ikisini aramaya ek olarak, söylem yükümlülüklerini de tanımlayın, örneğin: "en son soruyu yanıtlayın".
  • Davranışsal ajan - kullanıcının istediği hedefe nasıl ulaşılacağına karar verir. Temsilci, fiili planlamayı yapan göreve özgü birkaç aracı kullanır.

Farklı bir planlama türü teorem kanıtlama. Bir diyalog, bir teoremi kanıtlama girişimi olarak tanımlanabilir. Sistem, ispatın tamamlanmasına yardımcı olmak için "eksik aksiyomları" sağlamak için kullanıcıyla etkileşime girer (buna "geriye doğru zincirleme" denir). Bu yaklaşım aşağıdakiler tarafından uygulandı:

  • Dilbilgisel Çerçeve, bkz. Ranta ve Cooper (2004).
  • Circuit Fixit sisteminde IPSIM (Interruptible Prolog SIMulator); bkz. Smith, Hipp & Biermann.

Diyalog yöneticisi bir uzman sistem, belirli bir uzmanlıkla yanıt verme yeteneği kazandırmak.

Taktik akış kontrollü DM

Diyaloğun genel yapısını ve hedeflerini takip etmenin yanı sıra, bazı DM'ler bazı taktik diyalog kararları da verir - sohbetin kalitesini etkileyen yerel kararlar.

Hata yönetimi

ASR ve NLU modülleri genellikle kullanıcıyı anladıklarından% 100 emin değildir; genellikle anlamanın kalitesini yansıtan bir güven puanı verirler. Böyle durumlarda, DM aşağıdakilere karar vermelidir:

  • En olası yorumun doğru olduğunu varsayın ve sohbete devam edin (onay yok);
  • Sohbete devam edin, ancak "Tamam, bir restorana gitmek istiyorsunuz. Tam olarak nerede?" Gibi anlayış gösteren bazı kelimeler ekleyin. (örtük onay).
  • Kullanıcıya tam olarak ne demek istediğini sorun (açık onay): "X mi demek istiyorsun?" "X mi yoksa Y mi dedin?" Vb.
  • Kullanıcıya "Anlamadım, lütfen bunu tekrar söyleyin" deyin.

"Onay yok" seçeneğinin seçilmesi iletişim kutusunun daha hızlı ilerlemesini sağlayabilir ancak daha sonra düzeltilmesi daha uzun sürecek hatalara da yol açabilir.

Hata işleme, tarafından kapsamlı bir şekilde araştırılmıştır. Ravenclaw, yazarın iletişim kutusunun her bölümünde hata işleme stratejisini manuel olarak kontrol etmesine olanak tanır.

Girişim kontrolü

Bazı DS'lerin birkaç çalışma modu vardır: varsayılan mod kullanıcı girişimi, sistem "sizin için ne yapabilirim?" ve kullanıcının görüşmede gezinmesine izin verir. Bu, deneyimli kullanıcılar için iyidir. Bununla birlikte, kullanıcı ve sistem arasında çok sayıda yanlış anlaşılma varsa, DM geçiş yapmaya karar verebilir. karma girişim veya sistem girişimi - kullanıcıya açık sorular sorun ve her seferinde bir yanıtı kabul edin.

Pedagojik kararlar

Farklı türdeki taktik kararlar, Cordillera (Fizik öğretimi için TuTalk kullanılarak oluşturulmuş bir ders DS'si). Ders sırasında birçok noktada, DM aşağıdakilere karar vermelidir:

  • Öğrenciye bir gerçek mi anlatmalı, yoksa yol gösterici sorular sorarak bu gerçeği ondan çıkarmaya çalışmalı.
  • Öğrenciden cevabını gerekçelendirmesini mi istersiniz, yoksa gerekçeyi atlayın ve devam edin.

Bu kararlar, öğrenme öncesi ve sonrası sınavları karşılaştırarak ölçülebilen genel öğrenim kalitesini etkiler.

Öğrenilmiş taktikler

Bir insan uzmanın karmaşık karar kuralları yazmasına izin vermek yerine, kullanılması daha yaygındır. pekiştirmeli öğrenme. Diyalog şu şekilde temsil edilir: Markov Karar Süreci (MDP) - her durumda, DM'nin duruma ve her eylemin olası ödüllerine göre bir eylem seçmesi gereken bir süreç. Bu ayarda, diyalog yazarının yalnızca ödül işlevini tanımlaması gerekir, örneğin: öğretici diyaloglarda, ödül öğrenci notundaki artıştır; bilgi arayan diyaloglarda, insan bilgiyi alırsa ödül olumludur, ancak her diyalog adımı için olumsuz bir ödül de vardır.

Daha sonra bir politikayı öğrenmek için RL teknikleri kullanılır, örneğin, her durumda ne tür bir onay kullanmalıyız? vb. Bu politika daha sonra DM tarafından gerçek diyaloglarda kullanılır.

Bu konuyla ilgili bir öğretici yazmıştır. Limon ve Rieser (2009).

Diyalog politikalarını öğrenmenin farklı bir yolu da, bir insanın gizli bir odada oturduğu ve bilgisayara ne söyleyeceğini söylediği Wizard of Oz deneylerini kullanarak insanları taklit etmeye çalışmaktır; örneğin bakınız Passonneau ve diğerleri (2011).

daha fazla okuma