NL-026, Multi-Task Deep Neural Networks for Natural Language Understanding (2019-ACL)

0. Abstract

  • MT-DNN은 Multi-Task Deep Neural Network 의 약자이다.
  • 여러 task의 많은 데이터를 이용하여 general representation을 표현하는 게 목적
  • 이를 이용하여 새로운 task와 domain에 적용하는데 도움이 되는 연구라고 보면 됨.
  • 이 논문의 base는 Liu(Multi-task learning에 관련된 것)와 BERT(pretrain model)를 기반으로 한다고 보면 됨.

1. Introduction

  • Representation을 배우는 방법은 크게 두가지가 있다.
    1. Multi-task learning
    2. Language model pre-training
  • 이 논문에서는 두 가지를 잘 융합하는 것의 힘을 보여줌.
    • BERT는 LM pre-training + fine-tunning 의 느낌임
    • OpenAI-GPT는 LM pre-training의 느낌임.
  • MTL(multi-task learning)의 효과를 예를 들면 "사람이 스키타는 법"을 배운다고 하자. 이 때 스케이팅을 타본 사람과 아닌 사람 두 명을 비교해보면, 스케이팅 탄 사람이 배우기 쉽다는 것이다.
  • 또한 Supervised 학습은 데이터 양이 많이 필요하고 항상 이용가능하지 않다.(한계 있음)
  • MTL은 특정 task에 overfiitting되어 학습되는 효과를 regularization을 하는 효과가 있다. 즉 이를 통하여 universal representation이 가능하도록!
  • 최근 LM의 효과를 보여주는 ref 논문이 언급되어 있는데 대표적으로 BERT가 있음.
  • 이 논문의 핵심은 MTL와 LM pre-training의 방법을 상호보완적으로 학습에 녹이도록 하는 것.
  • BERT와 유사한 점은, pre-training과 fine-tunning 두 가지 step으로 학습.
  • BERT와 다른 점은, fine-tunning 할 시, MTL 방법을 사용.
  • 뒤에 실험에서 보이겠지만, label이 적은 task에 대해 BERT보다 MT-DNN을 사용하는 것이 훨씬 좋다.
    • 이 논문에서 이것을 보이기 위해 실험한 데이터세트는, SNLI, SciTail 데이터를 사용함(0.1%, 1% 정도 사용함으로 써, 효과를 입증함).

2. Tasks

  • MT-DNN은 4가지 NLU task를 결합함.
    1. Single-sentence classification
    2. Pairwise text classification
    3. text similarity scoring
    4. relevance ranking
    • 이러한 것은 GLUE 데이터세트가 있음.
  1. Single-sentence classification
    • CoLA: 문법적으로 맞는 지.. O X
    • SST-2: 긍부정 문제
  2. Text similarity
    • STS-B: 문장 유사도 scoring (0~1의 값)
  3. Pairwise Text classification
    • RTE, MNLI: Entailment, contradiction, neutral 세 개 중에 고르기
    • QQP, MRPC: 문 장 두개의 의미가 같은 문장인지 O X
  4. Relevance Ranking
    • QNLI: SQuAD의 한 버전인데.. 원래는 Paragraph이 주어지고 Question에 대해 올바른 정답을 할 수 있는지에 대한 문제(binary)이다. 여기서는 이를 pairwise-ranking task(뒤에서 설명)로 처리하였고 이렇게 하면 실제로 binary로 직접 처리하는 것보다 성능이 향상이 있다.

3. The proposed MT-DNN Model

  • 모델
    • 이 모델은 Task specific layers전까지 사실 BERT와 똑같다고 봐도 무방한 듯?
    • BERT처럼 Transformer encoder을 사용하였음.
  • Lexicon Encoder
    • 맨 앞에 [CLS] 토큰을 추가
    • 만약 문장쌍이 들어오면, 문장 사이에 [SEP] 토큰을 추가
    • Lexicon encdoer는 1. word-piece embedding, 2. segment embedding, 3. position embedding 3가지를 합쳐서 input embedding을 한 것이다.
  • Transformer Encoder
    • Pre-training을 하는 부분이다.
    • BERT와 다른 점은, fine-tunning 할 시, task 별로 fine-tunning을 하지 않고 MTL로 fine-tunning 하게 된다.
      • 생각해보면, BERT에서 feature-extraction 할 때, 이 BERT 모델은 pre-trainig만 한 모델이겠군? 그러면 이것을 실제로 another task에 적용할 때(특히 fine-tunning할 데이터가 적거나 하는 것) 잘 될지를 생각해봐야 할 것 같은데 이 논문에서 짚은 것인 듯.
      • 그런데 이렇게 MTL로 fine-tunning하면, 좀 더 general한 representation이 될 것이고, feature-extraction할 때도, task에 좀 더 덜 민감한 representation을 가져다 쓸 수 있다는 것이 핵심인 듯하다.
  • Single-Sentence Classification Output
    • SST-2(긍부정)와 같은 것을 말함.
    • [CLS]의 representation을 x라 했을 때, 다음과 같이 logistic regression predict를 한다.
  • Text Similarity Output
    • 이것도 마찬가지로, [CLS] token의 representation을 x라 했을 때, 다음과 같은 식으로 similarity을 구한다(유사도는 0~1의 값이므로 sigmoid 사용한 듯).
  • Pairwise Text Classification Output
    • NLI task와 같은 것을 말하는 것임.
    • Premisie의 embedding 결과와 Hypothesis의 embedding을 잘 연관지어서 한다고 보면 되는데.. 이 네트워크는 SAN을 이용하였음. 
    • 뒤에 SAN이 NLI SOTA 네트워크이고 이것을 사용함으로써 그냥 BERT 처럼 간단히 하는 것보다 성능이 좋음을 실험했다고 함. 근데 그냥 SAN이 이 저자가 썼던 논문이어서 쓴 거 같음..
    • SAN이 동작하는 것은 논문을 한번 봐야겠음.
  • Relevance Ranking Output
    • QNLI task와 같은 것을 말함.
    • (Q,A)가 입력이고 이 때의 [CLS] embedding을 x라 할 때 다음과 같은 식을 따름.
    • g는 (2)처럼 sigmoid인 듯(언급은 안되어있지만 같은 기호를 썼으니까)
    • 여기서 Q가 paragraph, A가 question인 거 같음..

3.1 The Training Procedure

  • 두 가지 학습 과정이 있다.
    1. Lexicon encoder과 Transformer encoder의 unsupervised 학습(BERT 방식)
      1. Masked language modeling
      2. Next sentence prediction
      • 이 논문에서는 실제로 이것을 수행하진 않고, pre-trained BERT model을 가져다가 쓴 듯.
    2. MTL 과정을 SGD로 학습. 즉 encoder fine-tunning + task-specific layer learning을 했다는 의미이다.
  • 매 epoch마다 mini-batch를 선택하는데, 선택하는 방법은 모든 task(9개의 GLUE)의 데이터세트를 모아다가 batch를 끄집어내는 식이다. (밑의 수도 코드 참조)
    • 여기서 all dataset D를 만들어서 shuffle하여 mini-batch를 끄집어내는 식
    1. Classification task
      • 여기서 1(X,c)는 맞는 class이면 1, 아니면 0
      • Cross-entropy loss 식을 따름
      • Pr식은 (1) 혹은 (4)을 따름(task에 따라)
    2. Similarity task
      • MSE loss 식을 따름 (regression 문제라 이렇게 정의한 듯)
      • Sim은 (2)식을 따름.
    3. Relevance ranking task 
      • Rel은 (5) 식을 따름. gamma는 여기서 1로 설정
      • Query Q가 주어지고, 후보 A list가 주어짐
        • 여기서 Q가 paragraph, A가 question인 거 같음..
      • A = [A+, A-]식으로 주어지고 positive sample A+은 한 개, negative sample A-은 |A|-1개가 됨. (|A|는 몇인지 안나와있음)
      • 이렇게 |A|개 sample에 대해 softmax식 (9)을 통하여 Negative log-likelihood loss을 정의함.
      • 즉, |A|=4라 하면, ranking batch가 선택되면, 4개의 (Q,A)쌍을 model에 태운다움 4개의 값을 softamx을 통하여 loss를 정의하는거 같음.

4. Experiments

  • 3개의 NLU benchmark을 사용
  1. GLUE
  2. SNLI
  3. SciTail

  • GLUE는 BERT에 비해 MT-DNN의 MTL이 효과적임을 보여주는 데이터로 사용했고
  • SNLI 와 SciTail 데이터세트는 domain adaptation의 MTL의 효과를 보여주는데 사용.

4.1 Datasets

  • CoLA (Corpus of Linguistic Acceptability)
    • 영어 문장이 언어학적으로 맞는지 아닌지 예측
  • SST-2 (Stanford Sentiment Treebank)
    • Sentiment of Sentence을 결정. 영화 리뷰에서의 인간의 반응(긍부정)
  • STS-B (Semantic Textual Similarity Benchmark)
    • 뉴스 헤드라인, 비디오, 이미지 캡션에 대해 얼마나 유사한지를 1~5점사이의 값으로 데이터가 제공되어 있음.
  • QNLI (Qeustion-Answering NLI)
    • 원래 이 데이터세트는 SQuAD의 (변형?)한 버전으로 Question에 Answer을 할 수 있을지 없는지를 맞추는 데이터인데 여기서는 Relevance ranking task로 사용하였다.
    • Paragraph-Question이 쌍이고 이 때, 답을 할 수 있냐 없냐를 맞추는 문제
  • QQP (Quora Question Pairs)
    • 커뮤니티의 question-answering website Quora에서 추출한 데이터
    • 두 개의 질문이 같은 의미를 갖는지 0, 1로 표시
  • MRPC (Microsoft Research Paraphrase Corpus)
    • QQP와 유사하고 온라인 뉴스로 부터 문장을 뽑았음.
    • Accuract와 F1측정 방법이 evaluation metric임
  • MNLI (Multi-Genre Natural Language Inference)
    • Large-scale로 crowd-source entailment classificatino task임.
    • P가 주어질 때, H가 Entailment, conradiction, neutral인지를 맞추는 거임.
  • RTE (Recognizing Textual Entailment)
    • Series of annual challenges on textual entailment의 데이터 모음?
    • MNLI와 비슷하나 entailment / not entailment 두 가지로 구분
  • WNLI (Winograd NLI)
    • Winograd Schema dataset으로부터 추출된 NLI 데이터 세트
    • 대명사(pronoun)가 주어진 문장에서 선택목록의 대명사 대상을 선택하는 것
  • SNLI (Stanford NLI)
    • NLI 데이터세트에서 엄청 보편적으로 사용되는 것
    • 이 논문에서 Domain adaptation을 위한 데이터세트로 사용
  • SciTail (Science entailment)
    • Science question Answering(SciQ)에서부터 추출된 entailment dataset
    • P가 H를 entail 하는지 맞추는 문제.
    • 과학적인 문장들이기 때문에 challenge 한 듯
    • 이 논문에서 Domain adaptation을 위한 데이터세트로 사용

4.2 Implementation details

  • 파이토치 BERT을 이용
  • Adamax optimizer(앞에서 SGD 사용했다는데.. 머지?)
  • Learning rate 5e-5
  • Batch size 32
  • Maximum number of epoch: 5
  • Linear learning rate decay (warm-up 0.1, 초기값?)
  • Dropout rate 0.1 (5 steps 당?)
  • Clipped the gradient norm within 1
  • Wordpiece tokenizing
  • Spans no longer than 512 tokens

4.3 GLUE Results

  • Table 2과 최종 결과라 보면 된다. 즉 BERT_L을 base로 잡고 test dataset에 대한 결과임.
    • 결과가 대부분 SOTA이다.
    • 모델링에 유연해지고, MTL을 함으로써 single-task 성능도 올라간다.
    • 따라서 embedding을 할 때 사용하는 등, 다른 연구에 효과적으로 적용하기 쉬울 것이다.
  • Table 3은 MT-DNN과 앞에서 specific layer로 SAN을 사용한 것, pairwise rankning을 한 효과를 보여주는 실험이다.
    • BERT_B를 base로 실험을 진행하면서 효과들을 비교(왜 BERT_L로 안했지?)
    • BERT_B vs ST-DNN
      • ST-DNN은 BERT처럼 single-task로 fine-tunning한 것이다.
      • 그 결과 MNLI, QQP, MRPC에서 성능이 좋음. 즉 SAN의 효과를 보여줌
      • QNLI에서도 ST-DNN이 좋음. 즉 pairwise ranking의 효과를 보여줌.(BERT에서는 QNLI을 binary classification을 해서 fine-tunning 했다고 함)
    • ST-DNN vs MT-DNN
      • 같은 박스끼리 유사 task인데 하나는 data가 많고 하나는 data가 적은 상황임.
      • 데이터를 잘모르고 써있지 않아서 모르겠지만, 여기서 말하는 거가 성립하려면 RTE, QQP가 데이터 세트가 적어야함.
      • RTE vs MNLI을 보면 RTE에서는 MT-DNN이 훨씬 좋음. 즉 MT-DNN은 MTL로 인해 데이터가 적은 RTE에서조차 성능이 훨씬 좋아짐을 알 수 있음.
      • QQP vs MRPC도 마찬가지임.
      • 즉 MTL의 효과를 보여줌.

4.4 SNLI and SciTail Results

  • BERT으로 SNLI, SciTail에 각각 fine-tunning한 결과
  • MT-DNN은 GLUE + SNLI + SciTail로 fine-tunning한 결과
    • 논문에서 정확히 안써있는게 GLUE로 fine-tunning한 것을 SNLI과 SciTail로 재차 fine-tunning 한 건지 아닌건지 안써있음.
  • 어쨌든 말하고자 하는 것은 MT-DNN이 좋다.

4.5 Domain Adaptation Results

  • 새로운 domain task을 연구할 때, 빠르게 적용해보는 것이 중요하다.
  • 실제로 label을 구축하여 training data를 확보하는 것도 상당히 오래걸린다.
  • 자주 학습 데이터가 부족한 현상을 겪는데 MT-DNN이 이를 해결해주는 실험이다.
  1. GLUE(excluding WNLI) 8개 데이터로 fine-tunning MT-DNN
  2. SNLI, SciTail에 각가 모델 fine-tunning (즉 모델을 각각에 맞게 2개 생성)
  3. Test 해봄
  • 결과를 보면, MT-DNN은 데이터를 0.1%만 써도 성능이 꽤 잘나옴을 볼 수가 있다.
  • 즉 MT-DNN이 BERT보다 데이터가 적을 때, 압도적으로 성능이 좋다.
  • 이는 Domatin adaptation의 효과가 좋음을 의미하고 데이터가 적은 상황에서는 MTL의 효과가 더욱 발휘한다.

5. Conclusion

  • MTL + LM pre-training 두 가지 결합하는 연구
  • MT-DNN also demonstrates an exceptional generalization capability in domain adaptation experiments.
  • BERT feature-based embedding보다 MT-DNN embedding 쓰면 더 좋을 듯!
Reference

댓글