TOD, DST

image

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)란?

image
대화의 상황을 추적하는 작업이다.

입력은 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