대화 상자 관리자
Dialog manager이 글에는 여러 가지 문제가 있다.이 문제를 개선하거나 대화 페이지에서 토의하십시오.(이러한 템플릿 메시지를 제거하는 방법 및 시기 알아보기)
|
대화 관리자(DM)는 대화 시스템(DS)의 구성요소로서 대화의 상태와 흐름을 책임진다.일반적으로:
- DM에 대한 입력은 인간의 발언이며, 일반적으로 자연어 이해(Natural Language Idefinition, NLU) 요소에 의해 시스템 고유의 의미 표현으로 변환된다.예를 들어, 비행 계획 대화 시스템에서 입력은 "ORDER(= from=)"처럼 보일 수 있다.TA,to=JER,date=2012-01-01)."
- DM은 보통 시스템에 따라 대화 내역, 답변되지 않은 최신 질문 등 일부 상태 변수를 유지한다.
- DM 출력은 대화 시스템의 다른 부분에 대한 지시 목록이며, 예를 들어 "TELL(flight-num=123, flight-time=12:34)"과 같은 의미 표현으로 나타난다.이 의미 표현은 보통 자연어 생성(NLG) 요소에 의해 인간 언어로 전환된다.
매우 다른 역할을 수행하는 많은 다양한 DM이 있다.단일 DS에 여러 개의 DM 구성 요소가 있을 수도 있다.
모든 DM에 공통적인 것은 DS의 다른 부분(예: NLU 및 NLG 구성품)과 대조적으로 상태 비저장 기능이라는 것뿐이다.DM 역할은 대략 다음과 같은 그룹으로 나눌 수 있다.
- 입력 제어 DM: 인간의 말을 상황에 따라 처리할 수 있도록 한다.
- 상태 의존적인 텍스트 생성을 활성화하는 출력 제어 DM.
- 전략적 흐름 제어
- 전술 흐름 제어
입력 컨트롤 DM
인간의 입력은 맥락에 따라 의미가 다르다.예를 들어, 여행 계획 DS에서:
- 컴퓨터:어디서 출발하고 싶으세요?
- 휴먼: 텔아비브.
- 컴퓨터:어디에 도착하고 싶으세요?
- 인간: 가자.
도시 이름의 의미는 앞서 질문한 내용에 따라 달라진다.DM은 그 질문을 주 변수에 담아두고, "텔아비브"를 "텔아비브에서 출발하고 싶다"로 변환하고 "가자"를 "가자"로 변환하는 데 사용할 수 있다.
이 기능은 NLU와 DM 사이의 경계에 있다. Milward(2000)의 컨텍스트 종속 규칙과 같은 NLU에 포함되는 시스템도 있고, Mirkovic과 Cavedon(2005)의 NP 해상도 모듈처럼 DM에 포함되는 시스템도 있다.
NLU와 DM 사이의 또 다른 기능은 어떤 입력 발음이 단일 발음의 일부인지를 결정하는 것이다.다음은 일자리 협상 대화 상자의 예:
- 국정원 월급 2만 달러를 제시한다
- 그리고 차 한 대
- 연금 조건은 나중에 결정될 것이다.
세 가지 발언 모두 사실상 단일 제안이다.두 번째 발언의 경우 'and'라는 단어가 단서지만 세 번째 발언의 경우 가능한 유일한 단서는 두 번째 발언 직후에 나온 말이라는 것이다.이를 이해하려면 DM은 각 발언의 타임스탬프를 유지해야 한다.
출력 컨트롤 DM
대화내역을 기억함으로써 컴퓨터의 출력은 더욱 자연스러워질 수 있다.예를 들어, NPCEditor(인간 질문에 답하는 문자를 작성하기 위한 프레임워크)는 저자가 질문-답변 쌍을 정의할 수 있도록 하며, 각 질문에 대해 가능한 답은 여러 개 있다.DM은 질문에 대한 최선의 답을 선택한다. 단, 이미 사용하지 않은 경우, 2차 정답 등을 선택한다.
ChatScript(채터봇 제작을 위한 프레임워크):DS가 특정 규칙을 사용할 때마다 DM은 이 규칙을 "사용됨"으로 표시하여 다시는 사용되지 않도록 한다.
기술 지원을[citation needed] 위한 최근의 DS는 고급 기계 학습 규칙을 사용하여 항목을 기술하는 데 가장 적합한 용어를 선택한다.예를 들어 DM이 어른과 대화하는 것을 알아차리면 "왼손"과 같은 용어를 사용하고, 아이와 대화하는 것을 알아차리면 "시계를 착용하는 손"과 같은 기술적 용어를 덜 사용한다.
이 기능은 DM과 NLG의 경계선에 있다.
전략적 흐름 제어 DM
DM의 주요 역할은 대화 상자의 각 지점에서 대화 에이전트가 취해야 할 조치를 결정하는 것이다.
이를 위한 간단한 방법은 저자가 대화 구조를 완전히 명시하도록 하는 것이다.예를 들어, 튜토리얼 대화 구조의 사양은 다음과 같이 보일 수 있다.
- 컴퓨터: "전자에 어떤 힘이 작용하는가?"
- 인간: "전기력".
- 컴퓨터: "수정"
- [다음 질문으로 이동]
- 인간: "전기력".
- 컴퓨터: "어떤 힘이 미사에 작용하는가?"
- 인간: "전기력".
- 컴퓨터: "잘못된, 질량은 전하가 없다."
- [전기에 대한 튜토리얼로 이동]
- 인간: "전기력".
DM은 대본에서 우리의 현재 위치에 대한 포인터를 유지한다.그 자리는 사람의 입력에 따라 업데이트된다.
저자가 대화 구조를 지정할 수 있는 언어와 프레임워크에는 VoiceXML(음성 대화 상자에 최적화), AIML, Facade 및 ChatScript(챗봇에 최적화), CDM(Java 기반, 장치 제어 대화 상자에 최적화), TuTalk(자습서 대화 상자에 최적화) 등이 있다.
또한 대화 구조는 SCXML과 같은 표준 언어를 사용하여 상태 차트로 설명할 수 있다. 이는 DomainEditor(전술 질문 캐릭터의 프레임워크)에서 이루어진다.
작가들이 완전한 대화 구조를 쓰는 것은 꽤 지루한 일이다.저자들이 DM에 더 많은 부담을 주면서도 더 높은 추상화 수준으로 대화 내용을 설명할 수 있도록 하는 많은 개선사항이 있다.
계층 구조
Ravenclaw(CMU 통신기에 기초한 목표 지향적 대화를 위한 DM)는 저자에게 다음과 같은 고급 다단계 대화 구조 설명을 허용한다.
- 객실 예약 작업:
- 로그 인.
- 사용자 이름 확인
- 사용자 암호 묻기
- 객실 선택
- 건물선택
- 객실 번호 선택
- 시간선택
- 마무리
- 로그 인.
Ravenclaw DM은 대화 모듈들을 쌓아두고, 그것을 인간의 입력을 처리하는 데 사용한다.
이 구조는 예를 들어 로그인 모듈을 다른 대화 상자에서 사용할 수 있도록 코드 재사용을 장려한다.
그들은 또한 백엔드에서 선택한 정보를 바탕으로 구조가 미리 고정되지 않고 즉석에서 시공되는 동적 대화-태스크 구축을 허용한다고 주장한다.예를 들어 정비업무의 수행 전반에 걸쳐 항공기 정비요원을 돕는 시스템에서 대화 상자의 구조는 정비업무의 구조에 따라 달라지며 동적으로 구성된다.
주제추적
ChatScript와 같은 채터봇을 위한 프레임워크는 주제를 가지고 대화 구조를 제어할 수 있다.저자는 다음 항목을 캡처하는 규칙을 만들 수 있다.
- 주제: 유아기(어린 소년 소녀)
- t: 나는 행복한 어린 시절을 보냈다.
- t: 하지만 너무 일찍 끝났어.
- ...
인간이 괄호 안에 있는 단어 중 하나를 말한다면 DM은 주제가 "Childhood"라는 것을 기억한다. 챗봇은 이제 봇이 대화를 통제하는 한 "Childhood"라는 제목으로 이야기를 말하기 시작한다(사용자는 "OK" 또는 "오른쪽"이라고 생각하면서 수동적으로 반응한다).그러나 사용자가 질문을 하면, 시스템은 직접 반응하거나, 어쨌든 말하려고 했던 이야기의 한 줄을 다 쓸 수 있다.
이것 역시 작가들이 주제를 재사용할 수 있게 하고, 몇 가지 독립적인 주제를 결합하여 더 똑똑한 수다봇을 만들 수 있게 한다.
폼 필링
대화 시스템의 일반적인 용도는 형식을 대체하는 것이다.예를 들어, 비행예약요원은 마치 인간이 이 네 개의 슬롯으로 양식을 채우는 것처럼 인간에게 출발 시간과 장소, 목적지 시간과 장소에 대해 물어봐야 한다.
간단한 해결책은 시스템 이니셔티브를 사용하는 것이다. 여기서 대화 시스템은 사용자에게 각 정보를 차례로 질문하고 사용자는 (데이비드 트라움의 프레젠테이션에서) 이 대화 상자에서와 같이 정확한 순서대로 입력해야 한다.
- 비행 확인 시스템에 잘 오셨습니다.비행기 번호가 어떻게 되십니까?
- 8월 8일 로스앤젤레스에서 유나이티드 123
- 너의 출발 도시는 어디니?
- 내가 8월 8일 로스엔젤레스라고 말했잖아.
- 미안해, 이해를 못했어.너의 출발 도시는 어디니?
- 로스엔젤레스는 8월 8일에 떠난다.
- 출발일이 어떻게 되십니까?
- 듣지 마!8월 8일!
- 출발하는 날 좀 말해줄래?
- 8월 8일
- 유나이티드 123편은 8월 8일 오후 2시에 로스엔젤레스에서 런던으로 출발하기로 확정했다.
시스템 이니셔티브의 반대는 사용자가 주도하고, 시스템은 사용자가 지시하는 모든 것에 반응하는 사용자 이니셔티브다.
두 방법의 공통적인 타협은 시스템이 질문으로 시작하지만 사용자가 끼어들어 대화 방향을 바꿀 수 있는 혼합 이니셔티브다.시스템은 사용자가 아직 요청받지 않은 세부 사항에 대해 말할 때에도 이해한다.
그러나 이러한 시스템을 수동으로 국가차트로 기술하는 것은 매우 지루한 일인데, 인간이 먼저 출발지와 목적지를 말할 수도 있고, 그 반대의 경우도 있을 수 있기 때문이다.그들 각각에서 인간은 먼저 시간과 장소를 말하거나 그 반대로 말할 수도 있다.
그래서, 대화 작성자가 정확한 순서를 명시하지 않고 어떤 정보가 필요한지 말할 수 있게 해주는 DM이 있다.예를 들어, 저자는 다음과 같이 쓸 수 있다.
- 여행 = {ORGIN-Place, 출발지 시간, 목적지-장소, 목적지-시간}
DM은 이미 채워진 슬롯과 비어 있는 슬롯을 추적하고 누락된 정보를 수집하기 위해 대화를 탐색한다.예를 들어 DM이 먼저 인간에게 원산지를 물어볼 수도 있지만, 인간이 목적지를 추가하면 DM이 정보를 보관하고 다시 묻지 않는다.
그러한 DS는 예를 들어 휠( 중고차 광고 검색용), 목성(기상 예측 검색용) 등과 같은 MIT에서 개발되었다.
단순 DM은 슬롯 충전을 이진법으로 처리한다. 슬롯이 "충전"되거나 "빈"이다.보다 진보된 DM은 또한 접지 정도를 추적한다. - 얼마나 확실한가? - 사용자들이 말한 "최근에 도입", "다시 도입", "승인", "반복" 등을 실제로 이해했다.또한 저자가 각 정보 조각에 대해 우리가 이해해야 하는 정도를 명시할 수 있도록 허용할 수 있다. 예를 들어 민감한 정보는 더 높은 정도가 필요하다.DM은 대화 과정을 제어하기 위해 이 정보를 사용한다. 예를 들어, 인간이 민감한 주제에 대해 무언가를 말했는데, 우리가 이해했는지 확실하지 않다면, DM은 확인 질문을 할 것이다.Roque 및 Traum(2008)을 참조하십시오.
정보 상태
Trindi 프로젝트 중에 개발된 TrindiKit DS는 저자들이 복잡한 정보 상태를 정의하고, 이 상태를 처리하는 일반 규칙을 작성할 수 있도록 한다.다음은 샘플 규칙:
통합 답변: 전제 조건: ("만약 인간이 현재 논의 중인 질문에 적절한 대답을 했다면...(SHARED) in (SHARED).LM, 대답(usr, A) fst(SHARED)QUD, Q) 관련_answer(Q, A) 효과: ("... 토론 중인 질문에서 제거하고 공유 그라운드에 추가") 팝(SHARED)QUD) 감소(Q, A, P) 추가(SHARED)COM, P)DM은 입력과 상태에 따라 적용 가능한 규칙을 결정하고 이를 적용하여 새로운 상태를 얻는다.
이것은 저자들이 대화 상자 이론에 기초하여 대화 상자 관리 규칙에 대한 일반 규칙을 다시 사용하는 데 도움이 될 수 있다.TrindiKit와 함께 개발된 DS에는 GoDiS, MIDAS, EDIS 및 SRI 오토메이션이 포함된다.
정보 상태 접근법은 시리두스와 디퍼 툴킷과 같은 프로젝트에서 나중에 개발되었다.
정보 상태 기반 대화 관리자의 또 다른 예는 FLOReS이다.제안 정보 상태를 사용하여 현재 상태를 인코딩하고 마르코프 의사결정 프로세스를 사용하여 다음 조치를 선택한다.이 대화 매니저는 jmNL 소프트웨어에서 구현된다.
일반계획
이 접근방식의 일반화는 작성자가 에이전트의 목표를 정의하고 DM이 그 목표를 달성하기 위한 계획을 수립하도록 하는 것이다.그 계획은 운영으로 되어 있다.각각의 연설법은 작전이다.각 연산에는 다음과 같은 전제조건과 조건(효과)이 있다.
알림(스피커, 착용자, 프리디케이트):전제조건: 노하우(언어, 프리디케이트)와 욕구(언어, 인포메이션(언어, 히어, 프리디케이트) 효과: 노하우(언어, 착용자, 프리디케이트) 신체: 신념(언어, 노하우, 프리디케이트)대화는 SME(Sensitive, Opportunity, Opportunity, 포부 & Results)와 같은 일반 플래너를 사용하여 탐색할 수 있다.설계자는 현재 상태를 유지하고, 주어진 연산을 이용하여 목표를 달성하기 위한 계획을 수립하려고 한다.
SASO-ST[1](멀티에이전트 협상 교육을 위한 DS)에서도 유사한 접근법을 취한다.SME를 사용하면 복잡한 감정적, 사회적 모델을 통합할 수 있다. 예를 들어, 대리인은 인간의 행동에 기초하여 그와 협력할 것인지, 그를 피할 것인지, 심지어 그를 공격할 것인지를 결정할 수 있다.
TRIP[2](Multi-에이전트 공동 문제 해결을 위한 DS)에서도 유사한 접근법을 취한다.이들은 대화 상자 관리를 다음과 같은 여러 모듈로 나누었다.
- 참조 관리자 - 단어(예: "그 여자")에 따라 세상에서 어떤 대상을 지칭하는지 결정하십시오(예: "WOM1234").
- 과제 관리자 - 사용자가 달성하고자 하는 문제 해결 행위(새로운 목표 작성, 기존 목표 확장 등)를 파악한다.
- 해석책임자 - 처음 두 가지를 호출하는 것 외에, 예를 들어 "최신 질문에 대한 응답"과 같은 담화 의무를 식별한다.
- 행동 에이전트 - 사용자가 원하는 목표를 달성하는 방법을 결정한다.에이전트는 실제 계획을 수행하는 여러 태스크별 에이전트를 사용한다.
다른 종류의 계획은 정리 증명이다.대화란 정리를 증명하기 위한 시도로 설명할 수 있다.시스템은 사용자와 상호 작용하여 "누락 공리"를 제공하여 증거 완성을 돕는다(이를 "뒤로 체인"이라고 한다).이 접근방식은 다음을 통해 구현되었다.
대화 관리자(adial manager)는 전문가 시스템과 연계하여 특정 전문지식으로 대응할 수 있는 능력을 부여할 수 있다.
전술 흐름 제어 DM
대화의 일반적인 구조와 목표를 따르는 것 외에도, 일부 DM은 또한 대화의 질에 영향을 미치는 지역적 결정인 전술적 대화 결정을 내린다.
오류 처리
ASR과 NLU 모듈은 대개 사용자 이해도를 100% 확신하지 못하며, 대개 이해 품질을 반영하여 신뢰 점수를 반환한다.이 경우 DM은 다음을 결정해야 한다.
- 가장 가능성이 높은 해석이 맞다고 가정하고 대화를 계속하십시오(확인 불가).
- 대화를 계속하되, "좋아, 식당에 가고 싶어.정확히 어디에?" (불확실성 확인).
- 사용자에게 정확히 무엇을 말하려고 했는지 물어보십시오(설명 확인). "X를 말하는 겁니까?" "X를 말한 겁니까, Y를 말한 겁니까?" 등
- 사용자에게 "이해할 수 없었으니 다시 한 번 말하십시오"라고 하십시오.
"확인 안 함"을 선택하면 대화 진행이 빨라질 수 있지만, 나중에 수정하는 데 더 오랜 시간이 걸리는 실수가 발생할 수도 있다.
Ravenclaw가 에러 처리를 광범위하게 연구하여 저자가 대화의 각 부분에서 에러 처리 전략을 수동으로 제어할 수 있도록 하였다.
이니셔티브 컨트롤
일부 DS는 몇 가지 작동 모드를 가지고 있는데, 기본 모드는 사용자 이니시에티브 모드인데, 여기서 시스템은 "무엇을 해줄 수 있을까?"라고 묻고 사용자가 대화를 탐색할 수 있게 해준다.이것은 경험이 많은 사용자들에게 좋다.그러나 사용자와 시스템 간에 오해가 많을 경우 DM은 혼합 이니셔티브 또는 시스템 이니셔티브로 전환하기로 결정할 수 있다. 즉, 사용자에게 명시적인 질문을 하고 한 번에 하나의 답변을 수용한다.
교육학상의 결정
다른 유형의 전술적 결정은 코딜레라(TuTalk를 사용하여 구축된 물리학을 가르치는 튜토리얼 DS)에 의해 이루어진다.강의 중 많은 부분에서 DM은 다음을 결정해야 한다.
- 학생에게 어떤 사실을 말할 것인지, 아니면 지도 질문을 함으로써 그에게서 이 사실을 이끌어내려고 할 것인지.
- 학생에게 자신의 대답을 정당화하라고 할 것인지 아니면 그저 정당성을 무시하고 계속 할 것인지.
이러한 결정은 학습의 전반적인 질에 영향을 미치는데, 이는 학습 전 시험과 학습 후 시험을 비교하여 측정할 수 있다.
학습된 전술
인간 전문가가 복잡한 의사결정 규칙 세트를 작성하게 하는 대신 강화 학습을 사용하는 것이 일반적이다.이 대화 상자는 마르코프 의사결정 프로세스(DP)로 표현된다. 즉, 각 주에서 DM이 주와 각 조치에서 얻을 수 있는 보상을 바탕으로 조치를 선택해야 하는 과정이다.이 설정에서 대화 상자 작성자는 보상 기능만 정의해야 한다. 예를 들어, 튜토리얼 대화 상자에서 보상은 학생 등급의 상승이며, 대화 상자를 찾는 정보에서 보상은 인간이 정보를 수신할 경우 긍정적이지만, 대화 단계마다 부정적인 보상도 존재한다.
RL 기법은 정책을 배우기 위해 사용되는데, 예를 들어 각 주에서 어떤 종류의 확인을 사용해야 하는가?이 정책은 나중에 실제 대화에서 DM에 의해 사용된다.
이 주제에 대한 자습서는 레몬과 리저(2009)가 썼다.
대화 정책을 배우는 다른 방법은 인간이 숨겨진 방에 앉아 컴퓨터에게 말할 것을 말하는 오즈의 마법사 실험을 사용하여 인간을 모방하려고 시도하는 것이다. 예를 들어 Passonneau et al(2011)을 참조하라.
참조
추가 읽기
- 트라움, 2008: 대화 시스템과 대화 관리에 대한 접근 - 강의 노트 및 참고 문헌 목록
- 앨런 외, 2001: 사람과 컴퓨터의 대화 방향.복잡성별 DM 검토: 유한 상태, 프레임 기반, 컨텍스트 세트, 계획 기반, 에이전트 기반.TRIP 에이전트 기반 시스템에 대한 설명.
- 추가 대화 상자 관리 연구 논문