Skip to content

Learning End To End Goal Oriented Dialog

angrypark edited this page Mar 12, 2018 · 1 revision

Learning end-to-end goal oriented dialog

18-03-10 박성남

기존에 사용되었던 goal-oriented dialog system(명확한 task, 목표가 있는 dialog구축)은 해당 domain에 대한 많은 수작업이 필요했고, 이를 바로 다른 분야로 확장하기는 매우 힘듭니다. 수작업이 필요했던 문제를 해결한 것이 end-to-end dialog system입니다. 학습에 필요한 모든 것을 수작업 없이 dialog에서 직접 구했기 때문에 따로 handcrafting이 필요없었던 것이죠. 하지만 이 end-to-end dialog system은 open domain에 관련된 것이기 때문에 여기서 얻은 학문적 성과를 goal-oriented에 연결시키기엔 매우 어려웠습니다.(제가 이해하기로는 goal-oriented는 intent와 action이 필요해서인 것 같네요.) 이 논문에서는 앞으로 이 분야가 발전되기 위해서 goal-oriented tasks에서의 end-to-end dialog system을 적용했을 때의 장점과 단점을 분석하기 위한 시험 환경(a.k.a. test set)을 제안합니다.

제가 인턴을 하고 있는 분야는 여기서 non-goal-oriented(혹은 open domain) dialog system인데, 그 분야를 공부하기 시작한 입장에서 굉장히 재밌게 봤습니다.

1. Introduction

  • 최근 dialog system이 유용하게 쓰이는 분야는 goal-oriented입니다.
  • 지금까지는 slot-filling 방식이 주를 이뤘습니다.
    • 구조를 미리 정의내리고 dialog의 상태를 slot으로 표현
    • 레스토랑 예약의 경우 slot은 location, price range, type of cuisine 등
    • 이 방식은 다른 domain으로 확장하기 불가능
  • end-to-end는 다른 것(가정,domain,문장의 구조,slot) 필요없이 dialog 자체에서 학습
    • 이 분야는 chit-chat에서 좋은 결과를 보여줌
    • 다른 domain으로의 확장이 매우 쉬움
  • 이 논문은 end-to-end dialog system을 goal-oriented에 적용시켰을 때 얼마나 좋은 성능을 보일지 측정하기 위한 시험 환경을 제시합니다.

Imgur

3. Goal-oriented dialog tasks

여기서 제공하는 시험 환경에 대한 설명입니다. 딱히 이 분야를 풀고싶은 이유가 있는 것이 아니라, 기존의 goal-oriented 문제를 풀었던 모델들이 좋은 성능을 보여주었던 domain이기 때문입니다. 자세한 data에 대한 정보는 아래 표를 참고하세요. Imgur

  1. 레스토랑 예약 시뮬레이션

    이걸 뭐 이렇게까지 설명할 이유가 있나 싶기는 하지만… 이론적으로 배우는 느낌보다는 시험 환경에 대한 디테일 제시입니다.

    • 주요 과제 정의
      • Task 1. Issuing API calls : 들어온 요청에 따라 0~4로 분류되어있는 분야 중 한 곳의 api를 부릅니다.
      • Task 2. Updating API calls : 요청을 update해서 다른 api를 부르거나 api의 세부사항을 바꾸거나 요청을 끝냅니다.
      • Task 3. Displaying options : 선택할 수 있는 옵션 표시
      • Task 4. Providing extra information : 추가 정보 제공
      • Task 5. Conducting full dialogs : T1~T4를 합쳐서 Full dialog로 만듬
  2. Dialog state tracking challenge

    사람과 bot의 대화 내용을 추가했습니다. DSTC2 data를 사용했다고 하네요. Domain은 마찬가지로 레스토랑 예약입니다. user와 bot의 대화 + 그리고 각각에 사용됬던 API calls와 추가로 나누었던 대화가 포함되어 있습니다. 이를 Task 6로 표현했습니다.

  3. Online concierge service 위의 표에 제시된 Task 1~5는 모두 같은 Knowledge Base(레스토랑 예약)와 관련된 과제들이고, Task 6은 Dialog state tracking challenge에서 제시된 과제입니다. 그런데 이 과제들은 더 현실적인 분야에서 잘 작동하냐는 보장이 없습니다. 따라서, Real online concierge service에서의 레스토랑 예약 대화 내용의 데이터를 추가했습니다. 모두 사람 간의 대화 내용을 script한 내용입니다.

4. Models

자 느낌을 알아야합니다. 여기선 새로운 모델을 제시하지 않습니다. 그냥, 기존 모델들이 이 testbed(시험 환경)에서 어떤 점수를 기록하는지 확인합니다.

Q. Accuracy 계산? Imgur

Imgur

  • Rule-based systems
    • T1~T5 자체가 simulator로 만들어진 것이기 때문에, rule-based를 통해서라면 100% 예측가능해집니다.
    • T6는 사람-봇 간의 dialog를 집어넣었기 때문에 잘 못맞춤
  • TF-IDF match
    • 모든 가능한 후보 response간의 TF-IDF weighted cosine similarity score로 선택
    • 다 안좋음
  • Nearest neighbor
    • training set에서의 가장 유사한 phrase를 가져옴
    • 모든 input이 마지막 질문이라고 가정
    • 모든 대화를 단일의 짝으로 구성(연결 안됨)
  • Supervised embeddings
    • pretrained된 word2vec 모델을 가져와서 사용
  • Memory networks
    • MemN2N

6. Conclusions

이 논문은 앞으로의 시험 환경을 제시하기 위해 데이터셋을 공개했습니다. 그 이유는 다음과 같습니다.

  • 현존하는 성능 채점은 재생산성이나 실제 사람의 의사결정을 반영하지 않습니다.
  • 과제의 통일성은, 연구자들로 하여금 learning methods에 더 집중하게 해줄껍니다.
  • [End-to-end] + [goal-oriented]는 연구할만한 가치가 있습니다. (실제 상황에 유용합니다.)

근데, 음… 가볍게 읽기 좋았습니다ㅎㅎㅎ 모델 이론이 없어서 ㅋㅋㅋ 개꿀~!!!

Clone this wiki locally