본문 바로가기
NLP

[TDS] Multi-task Learning for NLG in Task-Oriented Dialogue 논문 정리

by 방구석 몽상가 2021. 8. 23.
NLG_LM

이 글은 논문 Multi-task Learning for Natural Language Generation in Task-Oriented Dialogue에 대한 정리다.

Motivation

존재하는 시스템들은 현재 주어진 목표에 대한 의미적으로 정확한 응답을 제공하지만, 인간 언어의 variation과 fluency를 맞추는데 어려움을 겪고 있다. 즉, task-oriented dialogue 시스템에서 인간 응답과 구별할 수 없을 정도로 자연스러운 utterance를 생성하는 것은 아직 해결되지 않은 문제다.

Goal

1) Multi-task learning framework for NLG, NLG-LM

2) 요청된 정보를 전달하는 high-quality 응답 생성

3) Unconditional LM을 거쳐 생성된 응답의 naturalness를 타겟팅

인간 언어의 style과 variation의 학습을 향상시킴

Problem description

Pipeline 내 이전 step으로부터 생성된 meaning representation (MR)이 주어지면, 자연어로 system utterances를 생성

Meaning representation (MR) : 응답에 포함되어야 하는 바람직한 정보로, slot-value pair 형태

Slot: 전달할 정보의 카테고리, Value: content

예를 들어, MR인 (area, city south)에 대응하는 utterance는 area 정보로써 city south를 가리킨다.

Dialogue Acts (DA) : 서로 다른 유형의 시스템 actions을 구분

어떤 하나의 MR이 주어질 때, 다른 dialogue acts에 대해 다른 utterances를 생성해야 한다. DA의 예로, inform, request, confirm 등이 있으며, Confirm dialogue act는 대게 "Let me confirm" 또는 "Correct me if I'm wrong"으로 시작하는 시스템 응답으로 이어진다.

Training data

: DA, : MR, : utterance

MR 는 slot-value pairs인 이고, 는 human labellers에 의해 생성된 samples이다.

Delexicalization

특정 유형의 MR은 보통 적절한 명사인 위치명과 상품명과 같은 entities를 포함하기 때문에, training과 generation 동안 values를 special slot token <slot name>으로 대체하는 delexicalization을 진행한다. 궁극적인 응답은 slot token에 대응하는 values로 대체하는 reverse lexicalization (어휘화) 과정을 거쳐 얻어진다.

NLG task

NLG 문제를 sequence-to-sequence 방법을 사용하여 접근한다.

추가적인 one-hot MR vector를 만들 필요 없이, MR을 변화하여 쉽게 다른 도메인으로 확장 가능

DA 와 MR 는 single input sequence with tokens으로 concat 된다. Output sequence tokens을 가진다. 두 sequences 는 delexicalize된다. 또한, 각 sequence에 <BOS><EOS>가 붙여진다.

최종적으로, 이전에 예측된 tokens와 input sequence가 주어지면, 한 번에 하나의 output tokens을 생성한다. 최적화를 위해 다음 조건부 확률을 최대화한다.

Model architecture

위 문제를 해결하기 위해, encoder-decoder 구조를 채택한다.

Encoder

1) 각 token을 차원의 고정 길이의 벡터로 mapping하는 dictionary 를 훈련

2) Input embedding sequence를 Bidirectional GRU를 통해 contextualized embeddings 로 변환

forward and backward RNN outputs은 더해진다.

Decoder

한 번에 하나의 tokens을 생성하는 attention mechanism을 가진 RNN을 채택

1) <BOS>로 시작하고, 초기 hidden state로써 encoder RNN으로부터 마지막 hidden state를 사용

2) 번째 output token을 vector 로 mapping 시키기 위해 encoder와 같은 dictionary 을 사용하고 dropout을 적용

3) 이전 hidden state 가 주어지면, encoder outputs에 대해 attention weights를 계산

여기서 는 parameters다.

4) Weights 는 encoder output에 적용되어 context vector 를 얻는다.

5) Decoder GRU는 context vector 와 embedded vector 의 concatenation을 입력으로 하여, output 와 새 hidden state 를 출력한다.

6) 다음 token을 생성하기 위해, weights를 transpose하여 를 재사용하고 context vector를 통합한다.

여기서 는 dictionary 내 모든 tokens에 대한 다음 token의 확률 분포다.

Loss function

: One-hot vector for the ground-truth at -th step

각 training sample sequence pair에 대한 loss function:

Coupling with LM

인간 응답의 styles과 variation을 더 잘 추정하기 위해, decoder에 또다른 GRU unit, 을 추가함으로써 language modeling을 통합한다. 해당 입력으로써, embedded vector 을 취하고 context 는 LM에 대한 확률 계산에 영향을 미치지 않는다. 최종적인 loss function은 다음과 같다.

실험

다른 domain의 5개 데이터셋에 대해 모델을 평가 (covering restaurant booking, hotel booking and retail) - BLEU-4, NIST metrics 사용

Dataset

E2E-NLG : 51.2K MR-utterance pairs in the restaurant domain

RNN-LG : dialogue scenarios in TV retails, laptop retails, hotel-booking and restaurant-booking domains, with 14.1K, 26.5K, 8.7K and 8.5K samples respectively.

Delexicalization

Slot이 이진 값을 가지거나 verbatim substitution (있는 그대로 대체)하기 부적절한 경우 delexicalization을 하지 않음.

E2E-NLG datasets >> 오직 name과 near slots만

TV dataset >> has/usb/port를 제외한 모든 slots

Laptop dataset >> is/for/businesscomputingrequest를 제외한 모든 slots

Hotel dataset >> acceptscreditcards, dogsallowed, hasinternet을 제외한 모든 slots

Restaurant dataset >> kidsallowed, request를 제외한 모든 slots

결과

5개의 datasets에서 baseline models을 전부 outperform

 

 

 

댓글