728x90
Dialogue State Tracking (DST)의 input, output은 아래와 같이 정의된다.
- Input: dialogue or previous state
- Output: dialogue state (slot-value pair)
즉, 예를들어 설명하자면 아래와 같이 정의할 수 있다.
Dialogue
- User: I am looking for a cheep restuarant in the centre of the city
- Sys: There is a chell restuarant called Dojo Noodle Bar
- User: Yes, Please, for 9 people at 18:00 on Thursday.
Dialogue State
- Domain: Restaurant
- (Slot, Value): (price, cheep), (area, centre), (people, 8), (time, 18:00), (day, Thursday), (name, Dojo Noodle Bar)
DST의 타입
DST의 경우 2가지의 타입으로 나눠 설명할 수 있다. Predifined Ontology와 Open Vocabulary로 나눌 수 있다.
Predefined Ontology
- 미리 dialogue ontology를 구축해두고 상황에 맞는 답을 찾아내는 방식
- 모든 경우의 수를 고려할 수 없어 unseen domain, slot, value가 주어졌을 때 아웃풋을 만들 수 없음
Open Vocabulary
- Input에 따라 state를 즉각적으로 생성하는 방식
- 실제 대화에 더 적합한 방식
- unseen domain, slot, value가 주어졌을 때 아웃풋 생성이 가능함
DST의 목적과 challenge, 한계점
목적
- Dialogue에서 User의 goal 혹은 intention을 파악하는 것
- User의 goal 혹은 intention을 compact한 dialogue set (set of slots, their corresponding values)으로 encoding 하는 것
Challenge
- 실제 시스템에서 ontology가 사전에 정의되기 어렵기 때문에 Open vocabulary 상황에서 좋은 성능을 달성하는 것
- 실제 시스템에서 이루어지는 대화는 하나의 domain에서 이루어지지 않기 때문에 multi domain의 대화를 다루는 것
한계점
- DST model은 한번의 dialogue turn마다 (Domain, slot, value)를 결정해야하는데 가능한 조합의 수가 많음
- Multi turn mapping을 수행해야 함
- 여러 번 대화가 이루어지는 multi turn conversation에서는 한 turn의 대화가 이루어 질 때마다 (slot, value)를 추출해야 함
- Multi domain 상황에서는 domain별, slot별, value를 추출하기 위해 여러 번 추론을 진행 해야 함
위 그림과 같이 single일 경우에는 하나의 domain에 대해서만 slot과 value를 도출하면 되지만, multi-domain, multi-turn일 경우에는 각 domain별로 slot, value를 도출하기 위해 여러번의 추론과정을 거쳐야 한다.
아래 유투브 영상을 기반으로 작성된 글 입니다.
728x90
댓글