DSTC 9, DSTC 10에 계속해서 나오고 있는 비정형 외부 데이터 (F&Q)를 활용하여 적절한 대답을 생성하는 것에 관련된 초기 논문을 소개한다.
Abstract
- 기존의 많은 목적 지향형 대화 시스템들은 주어진 DB나 정해진 API를 활용하여 , System의 답변을 생성하는 경우가 있었음.
- 하지만 이러한 방식 외에 비정형의 외부 데이터를 사용하여 System의 답변을 생성하고자 노력함.
- 본 과정을 knowledge-seeking turn detection, knowledge selection, and knowledge-grounded response generation 3가지 과정으로 나눔.
- 또한 위 단계 들 각각에서 conventional 한 방식과 neural 방식의 두가지 접근법으로 실험을 진행하였음.
Introduction
- 기존의 연구들에서는 주어진 DB와 API를 활용하여 적절한 답을 생성하는 경우가 많았다. 하지만 실 세계에서 USER는 이에 넘어서 backend resource가 필요한 경우가 많다. (예를들어, 주차를 할 수 있는지, 애완동물을 가져가도 되는지등) 따라서 기존의 API/DB는 이러한 질문들을 대답하기가 어렵다.
-하지만 아이디어를 얻은 부분은 이러한 질문들은 거의 해당 Entity의 홈페이지 F&Q 페이지나 고객리뷰 페이지에 있다는 것이다. (예를 들어 'A 호텔 주차 되나요?'의 답은 A호텔 F&Q에서 찾을 수 있음)
-따라서 본 연구의 목적은 주어진 dialogue contexts와 관련된 도메인 레벨 혹은 엔티티 레벨에서의 지식 소스를 목적지향형 대화시스템을 만드는데 사용하는데 있다.
위 예시처럼 t(발화 순서) 3번과 7번,11,15번은 지식접근이 필요한 발화이다. 이러한 발화가 들어오면 시스템은 지식접근이 필요하다는 판단 후 후보군들 중에 적절한 답변을 생성해 내야한다. 그래서 4,8,12,16번처럼 답변을 해야 하는 것이다.
Related Work
관련연구는 살펴봐야할 몇가지만 살펴본다.
- 패턴 매칭을 활용하여 entity 인식과 linking to find facts relevant to the current dialogue 에 관한 연구가 있었고( 하지만 DB가 정해짐)
- Static, dynamic graph attention mechanisms을 이용하여 knowledge를 선택하고 생성해 내는 연구가 있었따. 물론 knowledge graph를 활용하여
=> 하지만 기본 연구들과 다른 점을 정리해 보자면!
1) 보다 clear한 goal이 있는 대화이다. (chit-chat 아님) 그리고 명확한 dialogue state를 가지고 있다. (social conversation 하고는 다름)
2) 또한 상식에 관한 지식을 사용하는 것이 아닌 task-specific한 도메인 지식을 활용한다.
Problem Definition
knowledge grounded task-oriented conversational modeling task는 다음과 같은 구조를 가지고 있습니다.
기본적인 노테이션은 다음과 같습니다.
따라서 본 task의 핵심은 지식접근이 필요한 유저 발화로 부터 적절한 대답을 생성해 내야 하는데, 이때의 적절한 대답은 knowledge snippet 집합안에 포함되어야 하는 것 입니다.
따라서 이러한 task를 수행하기 위해 세부 task 3단계로 나뉘게 됩니다.
가장 먼저 1) knowledge에 접근이 필요한지 detection을 하는 문제입니다.(Konwledge seeking turn Detection) 2) 그리고 적절한 knowledge를 selection 하는 문제입니다.(Knowledge Selection) 마지막으로 3) 답변을 생성하는 부분(Knowledge-grounded Generation)입니다.
각 과정에 대하여 간략하게 정리하도록 하겠습니다.
Konwledge seeking turn Detection
주어진 t 턴 에서 시스템은 기존의 DB시스템 처럼 답변을 해야할 지 아니면 지식 접근이 필요할지에 대해 결정하게 됩니다.
이 문제는 binary classification 문제로 변환하여 풀 수 있습니다.
따라서 1이면 지식 접근이 필요하고, 0이면 기존 시스템 방식을 이용합니다. 위 그림 1 예시에서는 t={3,7,11,15}가 지식 접근이 필요한 단계입니다.
Knowledge Selection
대답이 될 수 있는 knowledge snippet들 중에서 후보군들이 추출되고 정렬 됩니다.
따라서 지금까지의 대화 문맥과 관련이 있는지 없는지 나뉘지게 됩니다. 이 과정은 굉장히 높은 대화 이해성을 요구하는 부분입니다. 예를 들어 그림 1에서 3번 과 7번을 살폅면 같은 유형의 질문을 공유하고 있습니다. 이는 다른 도메인이라도 같은 질문을 공유할 수 있음을 의미합니다. 따라서 1개 이상의 후보군이 지식 접근을 요구하는 턴에 나올 수 있습니다. 따라서 후보군 집합은 다음과 같이 정의할 수 있습니다.
Knowledge-grounded Generation
마지막으로 적절한 시스템 발화를 생성하는 부분 입니다. 또한 이전 유저의 발화에 자연스럽게 연결되야 합니다. 즉, 적절한 지식을 활용하여 답변해야하고, 자연스럽게 대화가 이어져야 하는 것 입니다. 예를 들어 그림 1의 turn 8,12를 보면 자연스럽게 follow-up question이 이어지게 됩니다.
댓글