TOD, DST
Language Undarstanding(LU)
- Domain Identification - Domain Detection은 Classification 문제
- User Intend Detection - Intent Detection은 Classification 문제
- Slot Filling 는 NER을 통해 해당하는 Slot과 그에 맞는 Value 를 찾는 문제
Dialogue Management(DM)
- Dialogue State Tracking(DST)
대화가 진행됨에 따라 Domain, Slot, Value의 값이 계속 변경 될 것이다.
따라서 대화가 딱 끝나는 시점에서 Domain, Slot, Value의 값의 결과를 내는 것이 DST이다.
- Dialogue Policy (DP, Dialog ACT)
System이 어떤 발화를 해야 하는지 예측 하는것.
DST의 결과를 통해 이 대화안에 어떤 중요한 요소들이 있는지 파악을 하였다.
이제 중요한 요소들의 정보를 가지고 system 어떤 발언을 해야 할지 정하는 것이다.
아직 대화에 필요한 Slot값을 채우지 못했으면 Slot을 물어볼 수 있고
필요한 Slot값을 다 채웠으면 답변을 해줄 수도 있다.
Natural Language Generation(NLG)
- Response Generation - 답변 생성
이렇게 TOD가 구성이 된다.
TOD는 특정 상황에 맞는 답변을 추출하는 Task이다.
예를 들면 MultiWOZ데이터를 보면 버스, 식당, 병원, 호텔, 기차, 택시, 등등 정해진 상황에 따라서만
대화가 가능하다.
Open-Domain의 Task와는 다르다고 볼 수 있다. Open-Domain은 특정한 상황 없이도 대화가 되기 때문이다.
Dialogue State Tracking (DST)란?
대화의 상황을 추적하는 작업이다.
입력은 Dialogue turn이 들어온다. 대화 전체가 입력이다. (Multi-trun)
여러 턴에 걸친 대화에서 대화가 갱신될 때마다 입력으로 받은 정보를 기반으로
Dialogue State을 업데이트하는 Task 이다.
Dialogue State는 보통 slot-value의 쌍의 형태를 이룬다.
위의 그림을 보면 첫번째 turn에서 price = cheap이 업데이트가 되었고
price가 slot, cheap이 price의 value가 되는 slot-value쌍이다.
두번째 turn에서 food= Thai, area = centre 가 추가로 업데이트 되었다.
세번째 turn에서는 최종적으로 state = inform(price=”cheap”, food=”thai”, area=”centre”) 가
업데이트 되었다.
이 최종적인 Dialogue State의 정보들로 DB에 Request를 준 후 결과값을 받는다.
DST 기능을 챗봇에서 사용을 하려면 Dialogue 전체를 입력해줘야 한다.
Leave a comment