Sangmun

BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension 본문

논문리뷰

BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension

상상2 2023. 1. 8. 00:09

1. Introduction

그동안 많은 self-supervised 방법론들이 제시가 되었고 NLP task에서 많은 성과를 얻었다. 그리고 특히 성과가 좋았던 것은 Cloze Tasks에서 영감을 받아 제안되었던 Masked Laguage model이었다. 하지만 이러한 방법론들은 특정 태스크에만 집중을 하여 범용성이 떨어졌다고 본 논문은 주장을 하고 있다.

 

따라서 본 논문은 bert의 encoder와 gpt의 decoder 구조를 합한 bart를 제안하였으며 pre-train 과정은 원본 데이터를 bert와 유사하게 mask를 씌워서 encoder에 input으로 넣어주면 decoder가 그것을 복원하는 것이다.

 

bart architecture

bert와의 mask 기법의 차이점은 bert는 하나의 토큰당 하나의 mask가 생기지만 bart는 span을 대상으로 mask를 하며 극단적으로는 문장 전체가 하나의 mask 토큰으로 대체가 될 수 있다.

 

2. Pre-training Bart

bart를 pre-training 하는 과정은 input으로 주어진 원본 데이터와 decoder의 출력으로 나온 값간의 CEL를 최적화하는 과정으로 주어지며 token을 masking 하는 기법은 아래와 같다. 본 논문에서는 Text Infilling이 가장 효과가 좋았다고 주장한다.

  • Token Making
    • Bert의 masking 기법과 같다고 생각하면 된다.
  • Token Deletion
    • Token을 랜덤하게 삭제한다. [mask] 토큰이 생성이 안되기 때문에 어느 자리에 빠진 단어를 넣어야 할지 모델이 학습을 해야 한다.
  • Sentence Permutaion
    • 문서를 마침표를 기준으로 split 하고 split 된 문장을 랜덤으로 섞음
  • Text Infilling
    • 뒤에 서술할 가장 성능이 좋았던 masking 기법이며 일정 길이의 span을 하나의 mask 토큰으로 치환한다.
    • mask 처리될 span의 길이는 포아송 분포에서 추출한다.(span이 0인 경우도 포함, 위 이미지의 D와 E 사이를 주목)
  • Document Rotation
    • token이 uniform 하게 랜덤으로 선택되고, 선택된 토큰을 기준으로 문서를 rotate 함으로써 문서의 시작이 어디인지 학습을 시킨다.

3. Fine-tuning Bart

  • Sequence Classification Tasks
    • encoder와 decoder에 같은 input이 들어가며 decoder의 마지막 hiddens state를 이용하여 분류 task에 이용한다.
  • Token Classification Task
    • SQuAD의 answer endpoint classification 같은 task이며 각각의 단어에 대한 확률 값으로 각각의 top hidden state를 사용함
  • Sequence Generation Tasks
    • encoder에 입력이 주어지면 decoder가 Auto Regressive 하게 출력을 생성한다.
  • Machine Translation
    • Bart는 다른 언어끼리는 노이즈 기법이 적용이 불가하여 Randomly initialized Encoder를 Pre-trained encoder 이전에 추가를 해줌
    • 해당 layer를 통하여 한국어 <-> 영어를 번역한다고 할 때 한국어 input을 영어의 input으로 바꿔주는 역할을 한다.

Sequence Classification Task(왼), Token Classification Task(오)
Sequence Generation Task(왼), Machine Translation(오)

 

4. Comparing pre-training Objectives

또한 그동안 제안되었던 다양한 pre-train기법을 bart에 적용하여 성능을 비교하는 실험을 해보았다. 실험을 한 pre-train 기법은 아래와 같다.

  • Masked Language Model(MLM) : Bert와 동일
  • Masked Seq2 Seq(MASS) : 50%의 span을 mask처리하고 seq2 seq로 복원을 시킴
  • Language Model(GPT) : GPT와 동일
  • Permuted Language Model(XLNET) : XLNET과 동일하나 XLNET에서 제안된 relative positional embedding과 attention segments는 사용하지 않음
  • Multitask Masked Language Model : Masked Language Model에 더해서 self-attention mask도 사용

실험을 해본 태스크는 아래와 같다.

  • SQuAD : wikipedia 단락에 대한 질문/답변 task
  • ELI5 : SQuAD 보다는 매우 긴 형식의 추장적인 질문/답변 task
  • MNLI : 두 개의 문장이 입력으로 들어오면 문장의 포함관계에 대한 classification task
  • CNN/DM : 뉴스 요약 데이터로. 요약된 내용이 원본 데이터와 매우 유사성이 높아 상대적으로 쉬움
  • XSum : 매우 추상적인 뉴스 요약 데이터세트
  • ConvAI2 : dialogue task. 문맥과 persona를 바탕으로 응답 데이터 생성

따라서 각각의 pre-train objective를 각각의 태스크에 실험해본 결과는 위의 표와 같으며 내린 결론을 요약해 보자면

1. Token masking기법은 매우 중요하다. => token masking이 없는 rotating document와 premuting sentence는 전반적으로 성능이 매우 좋지 않게 나옴

2. Bidirectional encoder가 SQuAD task에서는 매우 중요한 요소로 작용을 하였다.

3. Pure Lanugage Model이 추상적인 답변을 요구하는 task인 ELI5 task에서 가장 성능이 좋았다.

 

결론적으로 ELI5를 제외하고는 text-infilling을 적용한 bart가 대부분의 task에서 지속적으로 가장 좋은 성능을 보여주었다는 결과를 제시한다.

 

5. Large-scale pre-training Experiments and Conclusion

이후 Bart large 모델을 이용하여 Roberta-large 모델을 baseline으로 삼고 각각의 NLP task에서 bart-large모델이 sota 성능을 달성한 결과를 제시하고 있다. 자세한 내용은 논문에 제시되어 있다.

Bart는 discriminative task 뿐만 아니라 generative task에서도 sota 모델들에 지지 않는 성능을 달성하며 encoder와 decoder의 구조를 합한 bart가 여러 NLP task에서 범용적으로 성능이 좋음을 보여주었다. 즉 task agnostic 하다고 결론을 내릴 수 있다.

 

 

Comments