[Lab #1] Efficient Dialogue State Tracking by Selectively Overwriting Memory (ACL, 2020)

누렁이·2023년 4월 4일
0

DSAIL-LAB

목록 보기
1/5

Background

  • Dialogue system

    • open-domain dialogue system : 대화주제 자유롭게
    • task oriented dialogue (TOD) system: 특정 task 수행
  • TOD

    • single domain TOD: 하나의 작업만 수행
    • Multi domain TOD: 도메인이 여러 개, 테스크도 그래서 여러개
  • TOD system

    • NLU: 의도 파악
    • DST: 필요한 정보 파악 (state tracking)
    • DP: 슬롯을 채우기 위해 추가 질문 (policy learning)
    • NLG: 추가 질문을 위한 자연어 생성
  • DST (Dialogue state tracking)

    • Today's paper!

      • 목적 달성을 위해 대화 중 필요한 정보 수집
      • 수집할 정보는 사전에 {slot:value} 쌍으로 정의
      • 정보 캐치해서 저장하는 과정 필수!
      • 발화마다 상태 update 된다.
    • DST 연구 한계

      • how to extract the information?
        • 방법1) 사전 구축해 단어 매칭
          -> 일일이 사전 만들어야하고, 처음보는 단어 커버 불가능!
          -> context 기반 연구 필요
        • 방법 2) Deep learning based
        • 방법 3) open-vocabulary 사용
          • decoder 방식으로 value 새롭게 생성해서 unseen 대처 가능
    • DST dataset: MultiOZ

      • 4500개 이상 value 포함
    • DST model: TRADE (ACL, 2019)

      • multi-domain 기반 dst 수행 위해 고안된 모델
      • Challenge
        • 많은 domain, slot, value 커버해야함
        • multi-turn mapping이 필요함 (앞의 정보 끌어와서 알아채야함)
      • structure:
        • input: dialogue history
        • output: 해당 dialogue 에서 추출할 수 있는 (domain, slot) 쌍에 대한 vlaue 값
        • utterance encoder - state generator - slot gate ( 생성할지 말지 결정하는 단계인데, lstm에서 쓰는거랑 비슷하네, 그럼.. 우리도 이런 방식을 쓸 수 있는게 있을까? 뭐가 낮으면 넘겨버려라 이런거?

Introduction

  • Overview: SOM-DST
    • task: DST
    • limitation: 매 턴마다 예측하는거 한계, 효율적으로 방법 필요. 다 할필욘 없다는거지???
    • solution: SOM-DST 제안
    • contribution:
      • 효율적 DST 구조 사용
      • SOTA
  • Approach
    • 연산속도 비효율적인거 해결하기 위해서 dialogue 전체가 들어가지 않고, 이 전 dialogue만 넣는 거임! 메모리를 활용하니까 더 전꺼는 필요가 없어서!
  • Model
    • State operation prediction: 효율적 state tracking 가능
    • slot value generation: sub 집합만 generation

Method

  • input: 이전 턴 utterance, 현재 utterance, 이전 dialogue state
  • output: 현재 dialogue state
  • Statue operation predictor
    • Special token (operation)
      • CARRYOVER:이전
      • NULL (DELETE):초기 대화일 때
      • DONCARE: DONCARE (상관없어요~ 추적 하지마세용)
      • UPDATE
    • 입력 데이터로 slot에 대한 operation을 예측함
    • pre-trained BERT encoder 활용
      • CLS 토큰 입력- slot에 해당하는 representation을 output으로, 근데 cls는 왜받아? 아 다음에 넘겨주려고?
    • 4-way classification
  • Slot Value Generator
    • soft copy mechanism 사용해서 final distribution 생성
    • TRADE 방법과 동일
    • 어떤 distribution 더 참고할지????
  • Object Function
    • state operation predictor
      • domain transition 상관관계 학습하도록
    • slot value generator

Experiment & Result

  • joint goal accuracy: 턴에서 예측된 slot value가 얼마나 정확히 매칭되는지
  • domain specific accuracy: 특정 도메인의 슬롯으로 이루어진 서브셋에 대한 정확도
    • taxi, train은 도메인이 엄청 자주 바뀌는데, decoder가 더 창의롭게 생성을 해야하는데 이걸 잘한다.
  • slot의 개수
    • 다른건 매턴마다 하는데, 요고는 0번할때도 있음
  • Inference time
    • 짧은 시간

Summary

  • 원하는 정보를 추출하기 위해서 메모리 개념을 활용해 효율적 계산 (KDD연구도 이런식이 될라나? temporal을 한다면???? 꺄루?)
  • 최소한의 연산만 활용

Review

  • LSTM에서의 개념이 이런식으로도 쓰이는 게 재미지다!!! 나도 다른 연구들의 근본적인 질문을 확실히 알고 있으면 이렇게 응용을 잘 할 수 있겠다
profile
왈왈

0개의 댓글