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

Tobig's 17&18 NLP seminar·2022년 11월 28일
0

BART(Bidirectional Auto-Regressive Transformer)는 2019년에 페이스북에서 발표한 논문입니다. BART는 BERT와 GPT를 하나로 합친 형태로, sequence-to-sequence 모델이면서 denoising task를 pre-training objective로 하고 있는 모델입니다.

BERT : 양방향으로 언어 시퀀스의 토큰들을 어텐션 메커니즘을 통해 모두 반영하여 인코딩 (transfomer encoder)
GPT : 이전의 입력을 바탕으로 새로운 출력을 만들어내는 모델 (transfomer decoder)

BART 모델은 여러 자연어 벤치마크에서 SOTA를 달성하며, 여러 pretrain task에 대한 면밀한 분석을 진행했다고 합니다.


1. Introduction

BERT는 인코더이기 때문에 generation task에 대응할 수 없고, GPT는 디코더만 존재하기 때문에 양방향 문맥정보를 반영하지 못합니다. BART는 “Bidrectional”과 “Auto-Regressive” Transformer를 합친 모델이며 seq2seq 모델로 만들어진 denoising autoencoder로, 많은 downstream task에서 잘 동작합니다.

BART 사전학습의 2가지 단계는 다음과 같습니다.

1) 텍스트가 임의의 noising 함수를 통해 오염된다. (다른 토큰[Mask]으로 교체 or 삭제 or 순서 변환 등)
2) seq2seq 모델이 원래의 텍스트를 복원하기 위해 학습된다.

왼쪽 아래 인풋으로 들어오는 문장을 보게 되면, BERT의 MLM(masked language model)처럼 노이즈가 낀 입력으로 들어옵니다. 따라서 pretraining은 corrupted된 인풋 문장을 오른쪽 상단의 A,B,C,D,E와 같이 원래 original document 혹은 sentence로 복원시키는 태스크를 풀게 됩니다.

BART는 BERT의 MLM처럼 어떤 corrupted된 document를 원래 original document로 복원하는 방법을 학습하면서 사전학습을 진행합니다. XLNet, SpanBERT, UniLM 등 기존 방법론들은 특정 end task 형태에 집중해서 활용성이 떨어진다는 문제점이 있는 반면, BART의 장점은 활용성이 떨어지는 이런 MLM들의 noise Flexibility를 제공한다는 점입니다. ***어떤 임의의 변형이라도 기존 텍스트에 바로 적용될 수 있으며, 심지어 길이도 변화시킬 수 있다고 합니다. 저자는 여러 noising 방법론을 실험하였고, 최고의 성능을 보이는 방법은 “기존 문장의 순서를 랜덤하게 섞고, 임의의 길이의 텍스트를 하나의 단일 마스크 토큰으로 교체하는 것(Text Infilling)”*이라는 것을 발견했습니다.


2. Model

BART는 손상된 문서를 기존 문서로 되돌리는 denoising autoencoder로, pretraining objective로는 denoising task를 하면서 sequence-to-sequence를 기본 아키텍처로 삼고 있습니다. BART는 bidirectional한 encoder (즉, BERT)와 auto-regressive한 decoder (즉, GPT)의 모양과 같은 encoder-decoder 모양을 가집니다.

2.1 Architecture

[BERT와 BART의 비교]

BERT (Bidirectional Encoder Representation from Transformer)

  • Transformer의 encoder로만 구축한 모델
  • BERT도 MLM, denoising auto-encoding task를 품
  • MLM과 NSP를 pre-training objective로 학습
  • NSP보다 MLM의 효과가 정말 대단했기 때문에 MLM에 대한 후속 연구가 활발히 진행됨
  • BERT의 대항마로 XLNet이 나올 때, 지적했던 부분
    • 1) BERT는 denoising auto-encoding에 기반한 모델로 오염된 문장이 들어왔을 때, 원본 문장으로 되돌릴 확률을 계산함
      (Xˉ\bar{X} : original text X^\hat{X} : corrupted text mtm_t : masked index)
      → BERT는 corrputed text가 original text로 복구하는 확률에 대한 MLE로 학습한다고 생각
      → 모든 masked token이 독립적으로 복원되기 때문에(Independence Assumption) 수식이 equal 이 아닌, approximation(근사)로 표시가 된다라고 지적
    • 2) BERT에서 pretrain을 할 때는 masked token을 넣어주는데, 파인튜닝때는 들어가지 않음
      pretraining-finetuning discrependency 문제가 존재함
      → XLNet은 auto-regressive한 language model, 즉 PLM(Permutation Language Model)을 제시함으로써 이러한 문제를 해결하고자 함

BART (Bidirectional Auto-Regressive Transformer)

  • Transformer의 encoder-decoder로 seq-to-seq 모델을 기반으로 함
  • BART도 denoising task를 pretraining objective로 품
  • Bidrectional Trnasformer’s Encoder
    • BART 역시 base와 large 크기의 모델이 존재하며, base 모델은 6가지의 인코더-디코더 레이어, large 모델은 12가지 인코더-디코더 레이어를 각각 가짐
    • 디코더의 각 레이어가 인코더의 최종 hidden 레이어와 cross-attention을 수행함
      → 따라서 BART는 BERT보다 약 10% 더 많은 파라미터를 가짐
    • BERT는 단어를 유추해내기 위해 추가적인 feed-forward 네트워크를 사용하지만, BART는 word prediction 전 추가적인 FFN이 필요하지 않음 (인코더가 바로 masking된 단어를 유추하지 않기 때문)
  • Autoregressive Transfomer’s Decoder
    • GPT와 다르게 ReLU대신 GeLUs를 사용
    • 파라미터를 평균 0, 표준편차가 0.02인 정규분포(N(0,0.2))로 초기화 함
      → BART는 auto-regressive한 transformer decoder가 있기 때문에 BERT의 2가지 단점 개선이 가능함
  • pretraining task로 MLM의 변형체들을 사용함으로써 end task에 집중했던 이전 모델들과는 다르게 noise flexibility가 존재함 → orginal text에 임의의 변환을 주고 BART 아키텍처에 적용해서 pretraining 시키고, 파인튜닝함으로써 생성모델에 특화된 모델임을 강조함

2.2 Pretraining BART

BART는 문서를 오염시키고 난 뒤 reconstruciton loss, 즉 디코더의 output과 기준 문서와의 cross entropy loss를 최적화하는 것으로 훈련됩니다. BART는 output 개수가 정해져 있지 않고, auto-regressive하게 생성되기 때문에 어떠한 종류의 corruption이든 모두 적용할 수 있습니다.

BART의 사전학습 objective는, 여태껏 제안된 여러 noising 기법과 새로운 변형기법에 대해 실험하였습니다. 실험의 사용한 5가지 noising 기법은 다음과 같습니다.

1) Token Masking

BERT에서 제시한 기법으로, MLM과 동일합니다. random token들을 샘플링하고, 이를 [MASK] token으로 대체합니다. 모델은 [MASK] token이 어떤 토큰이었는지 맞추어야 합니다.

EX) ‘어제 그녀와 만났다. 그녀와의 데이트는 너무나도 달콤했다.’라는 문장이 있을 때, ‘그녀와’, ‘그녀에게’가 랜덤하게 각각 문장별로 샘플링 되었다면, BERT와 동일하게 해당 토큰들을 80% 확률로 마스킹하고, 10%는 그대로 놔두고, 10%는 임의의 다른 토큰으로 변형하는 식으로 진행

2) Token Deletion

랜덤한 토큰들을 input에서 임의로 제거하는 태스크입니다. Token Masking과 다르게, 모델은 input의 어느 위치가 없어졌는지에 대한 정보도 함께 결정해야 합니다.

EX) ‘그녀와’, ‘그녀에게’가 랜덤하게 샘플링 되었다면, 오른쪽에서 없어지는 것

3) Text infilling

SpanBERT에서 영감을 받은 기법이며, 5가지 noise task 중에서 가장 성능이 좋았고 중요합니다. 포아송 분포(람다=3)에서 span length를 추출한 길이만큼의 텍스트 span을 샘플링하고, 토큰을 단일 [MASK] token으로 대체합니다. 모델에게 얼마나 많은 토큰이 하나의 span으로부터 없어졌는지 예측하도록 학습시킵니다.

포아송 분포
: 람다라는 파라미터를 가짐. (람다는 포아송분포의 기댓값, 분산과 같음)
→ 람다=3인 포아송 분포의 출력값 : 분산=3, 기댓값=3이니까 대략 0~6 사이의 값들 중에서 span length가 추출될 확률이 높은 것이고, 이 중에서도 3에서 가장 높은 것
** span length가 0인 경우도 존재
→ 이상한 곳에 [MASK] token을 삽입하는 것과 동일

EX) ‘어제 그녀와 만났다’라는 문장에서의 span length가 0으로 뽑혔다고 가정

→ masked token을 중간에 삽입하는 식으로 진행

‘그녀와의 데이트는 너무나도 달콤했다.’라는 문장에서의 span length가 2로 뽑혔다고 가정

→ length 2를 length 1의 단일 single maksed token으로 대체함
⇒ spanBERT와의 차이점(SpanBERT는 span 길이를 다른 분포로 샘플링하고, 각 span을 가려진 단어 길이와 동일한 만큼 [MASK] token으로 치환)

4) Sentence Permutation

XLNet에서 영감을 받은 기법으로, 하나의 문서가 마침표를 기준으로 문장별로 모두 분리되며 분리된 문장들은 순서가 랜덤으로 섞입니다. 모델은 섞인 토큰들을 원래의 순서대로 배열해야 합니다.

EX) 인풋은 sentence로 들어올 수도 있고, document로 들어올 수도 있음 → 즉, ‘어제 그녀와 만났다’가 abc, ‘그녀와의 데이트는 너무나도 달콤했다.’가 de, 이런식으로 입력이 들어간다고 논문에서 설명함

5) Document Rotation

하나의 토큰이 랜덤으로 동일한 확률로 선택되고, 문서가 해당 토큰으로 시작하도록 섞습니다. 이 태스크는 모델이 문서의 시작이 어디인지 학습할 수 있게 도와줍니다.

Ex) ‘만났다’라는 토큰이 선택됐으면, ‘만났다’를 기준으로 그 뒤에 문장이 계속 나열되고, 앞에 있는 토큰들은 맨 뒤로 붙여버림


3. Fine-Tuning BART

BART가 생성해내는 representation은 여러 downstream에서 다양한 방법으로 적용될 수 있습니다. 논문에서는 4개의 task별로 어떻게 파인튜닝이 진행되는지 설명합니다.

1) Sentence Classification task

어떠한 문장을 분류하는 태스크로, 대표적으로 주어진 문장이 문법적으로나 영어적으로 합당한지 분류하는 GLUE의 CoLA가 있습니다. 해당 태스크에서는 동일한 입력이 인코더와 디코더에 들어가고, 마지막 decoder token의 마지막 hidden state가 새로운 multi-class 선형 분류기에 들어가게 됩니다. (이 방법론은 BERT가 CLS 토큰으로 분류하는 것에 영감을 얻었다고 합니다) 추가적인 토큰을 마지막에 추가하여, 마지막 토큰의 representation이 전체 입력과 attention을 수행할 수 있도록 하여 마지막 output이 모든 입력을 반영할 수 있도록 했습니다. BERT는 classification special token이 들어가지만, BART는 단순히 end token으로 구분해줘서, 완벽한 문장을 인풋으로 넣어줘도 문제 없이 설계했습니다.

2) Token Classification task

토큰단위로 분류를 수행하는 태스크로, 대표적으로 주어진 본문 내에서 정답을 찾아야 하는 SQuAD가 있습니다. SQuAD에서는 정답에 해당되는 start와 end point의 토큰을 찾아야 합니다. BART에서는 모든 문서를 인코더와 디코더의 입력으로 하고, 디코더의 최상단 hidden state를 각 토큰의 representation으로 사용하여 분류했습니다.

3) Sequence Genreation task

BART는 autoregressive decoder를 가지고 있기 때문에 abstractive question answering과 summarization과 같은 sequence generation task에 바로 적용할 수 있습니다. 인코더의 입력은 input sequence가 되고, 디코더는 autoregressive하게 출력을 생성합니다.

4) Machine Translation task

기계번역은 2개의 다른 언어를 다루기 때문에 인코더와 디코더 모두 같은 언어로 사전학습된 BART 모델을 바로 사용할 수 없습니다. 이전 연구에 따르면 사전학습된 인코더를 합쳐 성능을 향상시킬 수는 있었지만, 사전학습된 디코더의 경우 성능 향상이 제한됨으로 알려져 있었습니다. ****BART에서는 BART 모델 전체를 기계번역 디코더를 사용하고, 여기에 bitext로 학습된 새로운 인코더 파라미터를 추가하여 해결할 수 있음을 보여주었습니다.

BART 인코더의 임베딩 레이어를 랜덤하게 초기화된 인코더로 교체하고, end-to-end로 학습합니다. 이 새로운 인코더를 외국어 단어(영어가 아닌)들을 매핑하도록 학습하며 BART가 이를 영어로 denoise할 수 있도록 학습합니다. 이때 새로운 인코더는 기존 BART 모델과 다른 vocabulary를 사용해도 됩니다.

해당 태스크에서는 인코더를 2가지 단계로 학습시킵니다. 2가지 단계 모두 BART 모델의 출력으로 나온 cross entropy loss로 역전파를 수행합니다. 첫번째 단계에서 대부분의 BART 파라미터는 freeze 시킵니다. 그리고 랜덤하게 초기화된 encoder, BART positional embedding, BART 인코더의 첫번째 레이어의 self-attention input projection matirx만을 학습시킵니다. 두번째 단계로 적은 수의 iteration으로 전체모델 파라미터를 학습시킵니다.

EX) 알파,베타~ 부분이 한국어, abc~ 부분이 영어라고 가정 → BART는 영어 혹은 한국어에 대한 단일 언어로 noise objective를 학습했는데, 번역 태스크에서는 입력으로 한국어가 들어와야하기 때문에 discrependency가 발생함 → 따라서 임의의 초기화된 인코더 레이어를 붙여서 영어의 인풋으로 바꿔줘서 이거를 출력하도록 파인튜닝을 설계함


4. Comparing Pre-training Objectives

BART는 이전 연구보다 pretraining 단계에서 더 넓은 범위의 noising 방법론을 지원합니다. 연구팀은 먼저 base-size model(6 encoder and 6 decoder layers, with a hidden size of 768)을 사용하여 여러 denoising task에 대해 실험을 진행했습니다.

4.1 Comparison Objectives

1) Language Model

훈련은 GPT모델이 훈련하는 방식으로, left-to-right 트랜스포머 언어 모델입니다. 해당 모델은 BART의 디코더와 동일하지만, cross-attention을 수행하지 않습니다.

2) Permuted Language Model (PLM)

XLNet에 기반 모델이며, 토큰들의 1/6을 샘플링하고, 이를 autogregressive하게 랜덤한 순서로 생성하는 모델입니다.

3) Masked Language Model (MLM)

BERT와 같이, 토큰의 15%를 [MASK]로 대체하고, 모델을 각 토큰마다 기존 토큰을 예측하도록 훈련합니다.

4) Multitask Masked Language Model (MMLM)

UniLM에서 제안한 방법으로, MLM을 추가적인 self-attention mask를 통해 훈련합니다. Self attention의 mask는 다음과 같은 비율로 랜덤하게 선택됩니다. → ⅙ left-to-right, ⅙ right-to-left, ⅓ unmasked, 그리고 ⅓의 처음 50% 토큰이 unmask되고 나머지 비율은 left-to-right mask가 됩니다.

5) Maksed Seq-to-Seq

MASS에 영감을 받은 모델로, 50%의 토큰을 포함하는 span을 마스킹하고, seq2seq 모델로 [MASK] token을 예측하도록 훈련합니다.

4.2 Tasks

위의 모델을 기반으로 아래의 태스크들을 수행했습니다.

  • SQuAD : Wikipedia 문단에 대한 extractive question answering 태스크로, 본문과 질문이 주어지면 주어진 본문로부터 정답에 해당되는 text span을 찾는 문제
  • MNLI : 두개의 문장에 대한 classification 태스크로, 이전 문장과 이후 문장의 관계가 성립 하는지 예측하는 태스크
  • ELI5 : 긴 형식의 abstractive question answering 태스크
  • XSUM : 뉴스 요약 태스크로, 많이 함축된 요약을 생성
  • ConvAI2 : 대화의 답변에 대한 generation 태스크로, context와 persona(화자)를 컨디션으로 줌
  • CNN/DM : 뉴스 요약 데이터셋으로, 데이터셋의 요약본은 입력 문서와 밀접하게 연관되어 있어 XSum 태스크와는 성격이 약간 다릅니다.

4.3 Results

1) pretraining method의 성능은 task별로 매우 다르다

Simple Language Model의 경우 ELI5에서 가장 좋은 성능을 보였으나, SQuAD에서는 가장 나쁜 성능을 보여줬습니다.

2) token masking은 매우 중요하다

Doument Rotation이나 permuting sentences 기법의 경우 단독으로 사용하면 성능이 좋지 않았습니다. Token Deletion이나 Masking 또는 self-attention masks를 사용했을 때 좋은 성능을 보였습니다. 특히 Token Deletion의 경우 generation task에서 높은 성능을 냈습니다.

3) Left-to-right 기반 언어 모델은 gerneration task에 효과적이다.

MLM과 PLM은 generation task에서 성능이 좋지 못했습니다. 해당 모델들은 left-to-right auto-regressive 모델링이 적용되지 않았기 때문이라 추정합니다.

4) Bidirectional Encoder는 SQuAD에서 아주 중요하다.

left-to-right 디코더는 SQuAD에서 약한 성능을 보입니다. 왜냐하면 classification decision에서 future context 정보가 중요하기 때문입니다. 그렇지만, BART는 절반의 양방향 레이어를 가지고도 비슷한 성능을 달성하여 BART 모델의 효과성을 보여준다고 주장했습니다.

5) pretraining method 이외에도 중요한 요소가 많다.

PLM은 기존 XLNet보다 약한 성능을 보였습니다. 그 이유로 XLNet에 적용된 relative-position embeddings 또는 segment-level recurrence와 같은 기법이 적용되지 않았기 때문입니다. 따라서 사전 학습 방법론 이외에도 성능 향상에 중요한 요소가 많이 존재할 것이라고 주장하였습니다.

6) 순수한 언어 모델이 ELI5에서 최고의 성능을 보인다.

ELI5의 경우 다른 task에 비해 높은 PPL을 가지고, BART보다 다른 모델의 성능이 더 높습니다. 해당 태스크에서는 순수한 언어 모델이 가장 성능이 좋았으며, input과 output의 연관성이 적어, BART가 좋은 성능을 내지 못했기 때문입니다.

7) BART가 가장 일관되게 최고의 성능을 달성했다.

ELI5를 제외하면, BART를 Text Infilling으로 학습한 모델이 모든 태스크에서 좋은 성능을 보여 BART의 우수성을 주장했습니다.


5. Large-scale Pre-training Experiments

5.1 Experimental Setup

연구팀은 large size BART에 대해서도 실험을 진행했습니다. 실험 구성은 다음과 같습니다.

  • 인코더와 디코더 각각 12개의 레이어인 large model을 프리트레인 시킴
  • RoBERTa처럼 배치 사이즈 8000, 500000 스텝의 학습 진행
  • 문서는 GPT-2와 동일한 BPE 방식으로 토크나이징
  • text infilling과 sentence permutation 기법 적용
  • 각 문서에 토큰의 30%를 마스킹하고, 모든 문장들을 섞음
  • 마지막 10%의 training step에서는 dropout을 적용하지 않았다.
  • CNN/DM 요약 데이터셋 사용
  • 사이즈가 큰 프리 트레인 모델이 더 성능이 좋을 것이라 가설을 세움

BART를 RoBERTa large 크기의 모델과 동일한 수준으로 학습했을 때 다른 모델과의 성능 비교를 하였습니다. 트랜스포머 인코더만 있는 BERT 기반 모델들은 Generation 태스크를 수행하지 못합니다. 따라서 다른 모델과의 비교를 위해 BART 논문의 저자들은 실험한 다운스트림 태스크를 “답을 정해진 범위 내에서 내야하는 결정적인 태스크(Discriminative Task)”와 “정해져 있지 않은 자유형식의 문장을 생성하는 생성 태스크(Generation Task)”, 그리고 “영어를 다른 Target 언어로 번역하는 기계 번역 태스크(Translation Task)”로 나누어 분석을 진행하였습니다.

5.2 Discriminative Tasks


전체적으로 BART는 대부분의 task에서 다른 모델들과 비슷한 성능을 보이고 있습니다. 이는 BART가 generation Task에서 성능 향상을 이뤘는데, 이것이 discriminative task에는 영향을 미치지 않았다는 것을 의미합니다.

5.3 Generation Tasks

1) Summarization

문서 요약 태스크들의 SOTA와 비교하기 위해, 두 개의 서로 특징이 다른 요약 데이터셋, CNN/DailyMail과 XSum를 이용해 실험을 진행했습니다. CNN/DailyMail의 경우 Extractive summarization의 특성상 이전 모델들의 성능도 매우 높았고, BART 또한 높은 성능을 보였습니다. XSum의 경우 Abstractive summarization 특성상 Extractive summarization에 비해 낮은 성능을 보였고, BART는 이전 SOTA 모델인 BERTSUMEXTABS보다 약 6.0 ROUGE metric 만큼의 비약적인 향상이 있었습니다.

2) Dialogue


ConvAI2 데이터셋으로 실험을 진행했고, 해당 태스크는 반드시 이전 문맥과 텍스트로 명시된 화자 둘 다 고려하여 응답을 생성해야합니다. 2개의 자동화된 평가 메트릭스(Valid F1 score, Valid Perplexity)를 이용하여 BART가 이전 모델들의 성능을 압도한 것을 알 수 있습니다.

3) Abstracitve Question Answering

ELI5 데이터셋을 활용하여 긴 자유형식의 답변을 생성하는 능력을 평가했고, BART가 이전 모델들보다 1.2 ROUGE-L 만큼 더욱 좋은 성능을 보였습니다. 하지만 아직 데이터셋에서 질문에 대한 답변이 잘 정의되어 있지 않아서, 어려움이 많은 태스크입니다.

5.4 Translation

해당 실험에서 베이스라인은 기존 Large Transformer 모델로 두었습니다. BART를 영어로 표현으로 매핑하는 6개의 레이어만 학습하고 나머지 파라미터는 freeze한 Fixed BART와 Fixed BART의 모든 파라미터를 한번 더 학습시킨 Tuned BART로 나누어 실험했다는 특징이 있습니다. large-size Transformer보다 성능이 향상된 것을 볼 수 있습니다.


6. Conclusions

BART는 손상된 문장을 원본으로 복구하도록 학습하는 pretrain method를 사용한 모델입니다. BART는 Discriminative Task에서 RoBERTa와 비슷한 성능을 보였으나, 여러 텍스트 Generation Task에서 SOTA의 성능을 달성했습니다. 추가 연구로 pretrain을 위해 텍스트를 손상시키는 새로운 방법을 제안했습니다.


7. References

https://arxiv.org/pdf/1910.13461.pdf
https://www.youtube.com/watch?v=VmYMnpDLPEo
https://chloelab.tistory.com/34
https://facerain.club/bart-paper/

0개의 댓글