본문 바로가기
NLP

[TDS] MinTL: Minimalist Transfer Learning for Task-Oriented Dialogue Systems의 이해

by 방구석 몽상가 2021. 9. 7.
MinTL

이 글은 MinTL: Minimalist Transfer Learning for Task-Oriented Dialogue Systems의 방법론 이해를 위한 글이다.

Abstract

대화 시스템 학습을 위해 데이터를 수집하고 annotation하는 건 시간이 많이 들고 도메인 간 호환도 잘 안 된다. 그래서 human supervision을 줄이기 위해 pre-trained language model을 이용한다. 이전의 TDS는 보통 특정 task에 특화된 여러 모듈로 이루어져있고 그러한 모듈은 pre-training stage를 거의 거치지 않는다. 이렇다보니 pre-trained LM을 다른 대화 tasks에 적응시키기 위해 tasks-specific 아키텍쳐 수정이 필요하다. MinTL (Minimalist Transfer Learning)은 TDS의 시스템 설계 과정을 단순화하고 annotated data에 대한 의존도를 낮춘다.

MinTL은 간단하지만 효과적인 transfer learning framework다. 이 framework는 pre-trained Seq2Seq 모델에 plug-and-play를 가능하게 하고 DST와 NLU를 동시에 학습할 수 있다. 또한, copy mechanism을 사용하는 이전의 방법들과 달리 old states와 new states 간 차를 모델링하는 Levenshtein belief spans ()를 도입한다. 먼저, MinTL은 이전 dialogue state를 업데이트하기 위해 를 decoding한다. 그런 다음, 업데이트된 state는 외부 knowledge base를 검색하는데 사용된다. 마지막으로, response decoder는 dialogue context와 knowledge base match 결과를 조건화하여 response를 decoding한다.

Contributions

1) They propose the MinTL framework that efficiently leverages pre-trained language models for task-oriented dialogue without any ad hoc module.

2) They propose the novel for efficiently tracking the dialogue state with the minimal length of generation, which greatly reduces the inference latency.

3) They instantiate our framework with two different pre-trained backbones, and both of them improve the SOTA results by a large margin.

4) They demonstrate the robustness of our approach in the low-resource setting. By only using 20% training data, MinTL-based systems achieve competitive results compared to the SOTA.

Methods

Notation

여기서 는 user utterance, 은 system response를 나타내며, 는 현재 턴의 인덱스로 보면 된다. 는 context window size이고 는 turn 에서의 dialogue state로, (domain: ,slot: )를 values 로 맵핑하는 dictionary다. pair의 value를 로 표기하고, key 에 없을 땐 로 표기한다. 는 빈 문자열을 의미하며, 이다.

Levenshtein Belief Spans ()

의 아이디어는 이전 dialogue states를 편집하기 위해 각 turn에서 최소한의 belief spans을 생성하는 것이다.

먼저, belief span 개념이 도입되게 된 계기를 보자. 이전의 일부 작업들은 candidate-value list에 대한 각 slot의 분류를 수행하거나 생성 모델로 바로 slot values를 생성했다. 그러다가 모델이 동적으로 slot values를 생성하도록 하기 위해 dialogue states를 text span으로 재구성하는 의 개념을 도입했다. 분류 기반 DST보다는 생성 DST 모델이 사전정의된 온톨로지에 대한 완전한 접근 없이 slot values를 예측할 수 있지만, 생성 모델은 밑바닥부터 belief span을 생성하거나 필요한 slot values를 디코딩하기 위해 domain slot pairs의 모든 결합에 대한 state operations을 분류한다. 이런 방식의 경우 많은 수의 서비스나 API를 멀티 도메인으로 확장할 때 규모를 키우기 어렵다.

위 figure처럼 는 훈련 과정에선 DST training target으로써 construct 된다.

Preprocessing

, , a pair of 가 주어지면, 다음과 같이 3개의 slot level edit operation conditions가 정의된다, i.e., insertion , deletion , substitution .

INS는 이전 state에서 에 해당하는 값이 없는데 현재 state에 값이 있는 경우, DEL은 이전 state에 값이 있는데 현재 state는 값이 없는 경우, SUB는 에 해당하는 값이 이전 state와 달라진 경우다. 다음으로, 도메인 에서 로 업데이트하기 위해 생성될 필요가 있는 최소한의 slot-value pair 를 다음과 같이 정의한다.

여기서 는 string concatenation이고, NULL은 로부터 slot 를 삭제하는 걸 의미한다. 각 연산 조건의 정의와 같이 보면 위 수식은 단순히 현재 state를 대입하는 연산이라는 걸 알 수 있다. 그리고나서 도메인 에 대한 모든 를 다음과 같이 집약한다.

그러면 는 어떤 한 도메인에 대한 모든 slot values pair이다. 도메인 의 dialogue state가 업데이트될 필요가 있을 때, 도메인 를 construct 하기 위해 의 초반에 domain 정보 를 append한다:

마지막으로, 는 다음과 같이 정의된다. 즉, 는 모든 도메인 내 slot values를 모두 합친 문자열이다.

Inference time

먼저 모델은 turn 를 생성한 다음, deterministic 함수인 를 사용하여 을 편집한다:

이 함수는 에 새 slot-value pairs가 나타났을 때 을 업데이트한다. 그리고 NULL이 생성되면 대응하는 slot-value를 삭제한다. 위 figure에 를 사용한 dialogue state editing process가 나와있다. 6번째 턴에서 생성된 는 slot 에 value 10을 삽입한다. 7번째 턴에서 의 NULL은 DEL 연산을 트리거한다. 따라서 에서 slot 가 삭제된다. 이는 과 같다.

MinTL Framework

위 그림에 보이듯 MinTL 프레임워크의 flow는 일반적인 encoder-decoder 아키텍쳐다. Framework의 입력은 dialogue context 와 이전 dialogue state 이다. 각 sub-sequence 사이에는 special segment tokens이 결합된다:

여기서 는 encoder의 hidden states이고 는 input sequence 길이다. 그 다음, decoder는 encoder hidden states 를 입력으로 하여 를 디코딩한다:

해당 생성 과정의 학습 objective는 이 주어질 때 의 negative log-likelihood를 최소화하는 것이다.

생성된 는 함수 에 의해 을 편집하는데 사용된다.

Knowledge Base Query

Updated 는 외부 knowledge (KB)와 booking APIs를 query하는데 사용된다. 먼저, entities의 매칭 수와 예약 가능 수에 따라 query 결과 를 위와 같이 분류한다. 여기서 는 매칭된 엔티티 수의 threshold다. 결과에 따라, 학습가능한 KB state embeddings 집합 중 하나의 embedding 을 룩업한다. 여기서 는 가능한 KB states의 수다. KB state embeddings은 pre-trained models의 token embeddings을 확장함으로써 쉽게 얻어질 수 있다. 그 다음, 룩업된 embedding 는 delexicalized 응답 을 생성하기 위해 response decoder의 start token embedding으로써 사용된다.

Response generation의 학습 objective는 가 주어지면 의 negative log-likelihood를 최소화하는 것이다. 최종적인 loss construction loss와 합해 동시에 최적화된다.

Backbone Models

Encoder와 Decoder는 pre-trained language models의 weights로 초기화된다. 이 논문에선 BART와 Text-To-Text Transfer Transformer (T5)를 사용한다.

BART (Lewis et al., 2019)

BART는 bidirectional encoder와 autoregressive decoder로 encoder-decoder Transformer를 구현한다. 손상된 문서를 denoising하는 autoencoders로써 pre-training한다. 그 다음, decoder의 output과 원본 문서 간 reconstruction loss로써 cross-entropy loss를 최적화한다. BART는 pre-training에서 5개의 문서 손상 방법을 적용한다: Token Masking, Token Deletion, Text Infilling, Sentence Permutation, Document Rotation.

T5 (Raffel et al., 2019)

T5는 relative position embeddings을 사용하는 encoder-decoder Transformer다. 데이터셋은 약 750GB의 clean and natural English text를 포함하는 Colossal Clean Crawled Corpus (C4)를 사용했다. Pre-training objective는 spans prediction을 사용한다. 입력 spans의 15% 정도를 마스킹한 다음 decoder를 사용해서 missing spans을 예측한다.

Experiments

평가를 위해 Multi-WOZ 2.0 데이터셋 사용 (식당, 기차, 어트랙션, 호텔, 택시, 병원, 경찰)

Implementation Details

T5-small (60M parameters) : 6 encoder-decoder layers

T5-base (220M parameters) : 12 encoder-decoder layers

BART-large (400M parameters) : 12 encoder-decoder layers

공평한 비교를 위해 DAMD pre-processing을 따라간다. 참고로, GPT2-small의 파라미터 수는 117M, GPT2-medium의 파라미터 수는 345M이다.

Low resource setting에서의 실험 결과는 논문을 참고하길 바란다.

 

댓글