0. Abstract
- sequence-to-sequence model을 pre-training하기 위한 denoising autoencoder, `BART`를 제안
- BART는 두 가지 과정을 통해 학습
- 임의의 `noising function`을 통해 text를 손상
- 손상된 text를 통해 original text를 재구성하며 모델을 학습
- 단순함에도 불구하고 BERT(bidirectional encoder로 인해), GPT(left-to-right decoder) 등 현재의 최신 pre-training 체계를 일반화한것으로 볼 수 있는 표준 `Transformer-based neural machine translation architecture`를 사용
- 여러 가지 noising approach를 평가하여 최상의 성능을 찾음
- original sentences의 순서를 무작위로 shuffling
- 임의의 length range의 text(0 length 포함)의 일부가 `single mask token`으로 대체되는 `infilling` 방식
- BART는 text generation과 comprehension task를 fine-tuning할 때 효과적
- GLUE, SQuAD benchmark dataset에서 `RoBERTa`와 비교가능한 training resource를 구성하여 `abstractive dialogue`, `question answering`, `summarization` task에서 최대 6 ROUGE의 성능 향상을 이루어내면 SOTA 달성
- 오직 targe language pre-training을 통해서 machine traslation의 back-translation system에서 1.1 BLEU 증가
1. Introduction
- Self-supervised methods는 넓은 범위의 NLP task에서 성공을 보이고 있으며, 특히 랜덤한 일부를 masking하여 text를 재구성하는 방식으로 훈련되는 denoising autoencoder가 가장 성공적
- 그러나 이러한 방식들은 `span prediction`, `generation` 등의 특정 end task에만 집중하여 그들의 능력을 제한
- `BART`는 `Bidirectional`과 `Auto-Regressive`를 합친 Transformer로 구성된 모델을 pre-training
- BART는 매우 광범위한 end task에 적용할 수 있는 sequence-to-sequence 모델로 구축된 `denoising autoencoder`
- pre-training은 두 가지 과정으로 구성
- 임의의 noising function을 통해 text를 손상
- 손상된 text를 통해 original text를 재구성하며 sequence-to-sequence 모델을 훈련
- 이 setup의 주요 장점은 original text에 길이 변경 등의 임의의 변환을 적용할 수 있는 `noising flexibility`
- BART는 모델이 전체 문장 길이에 대해 더 추론하고, input에 더 긴 범위의 변환을 수행하도록 하여 `BERT`의 MLM과 NSP를 일반화
- 몇 개의 추가적인 tranformer layer 위에 BART 모델을 쌓아올리는 새로운 machine translation 방법 제시
- 이러한 layer는 BART의 `propagation`을 통해 외국어를 노이즈가 없는 영어로 번역하도록 훈련
- BART를 pre-trained targe-side language model로 사용
- WMT Romanian-English benchmark에서 back-translation MT baseline보다 1.1 BLEU의 성능을 향상
2. Model
- BART는 손상된 text를 활용하는 `Bidirectional Encoder`와 `left-to-right autoregressive Decoder`를 합친 sequence-to-sequence 모델을 통해 구현
- pre-training을 위해 original document의 `negative log likelihood`를 최적화
2.1 Architecture
- standard sequence-sequence Transformer architecture를 사용하지만 GPT와 동일하게 ReLU activation function을 `GeLUs`로 변경하며 N(0, 0.02)로 파라미터 초기화
- 각각 12개의 layer로 구성된 Encoder와 Decoder를 6 layers 쌓음
- BERT의 architecture와는 유사하지만, 다음과 같은 차이점이 존재
- Decoder의 각 layer는 Encoder의 최종 hidden layer와 `cross-attention`을 추가적으로 수행
- BERT는 word prediction 이전에 `feed-forward network`을 사용하지만 BART는 x
- 총합 BART는 동일한 크기의 BERT보다 대략 10% 더 많은 parameter를 포함
2.2 Pre-training BART
- BART는 문서를 손상시킨 다음 Decoder의 output과 original document 사이의 `reconstruction loss(cross-entropy)`를 최적화하면서 학습
- 특정한 noising 방법에 특화된 기존 denoising autoencoder와 다르게 BART를 사용하면 어떠한 document corruption도 적용이 가능
- source에 대한 모든 정보가 손실되는 극단적인 경우 BART는 language model과 동일
- `BERT` : Random token이 mask로 대체되어 bidrectoinally encoded을 수행하며, Missing token은 독립적으로 예측되며, generation에 쉽게 사용 불가
- `GPT` : Token이 auto-regressively하게 예측되기 때문에 generation에 사용할 수 있지만 leftward context만 고려하여 bidirectional interaction이 불가
- `BART`
- Encoder의 input은 Decoder의 output과 정렬할 필요가 없으며 임의의 noise transformation 가능
- 해당 예시에서는 document가 일부 text가 mask symbol로 대체되는 형태로 손상
- 손상된 문서(left)는 bidirectional model에 의해 encoding되며, original document의 likelihood(right)는 autoregressive decoder에 의해 계산
- Fine-tuning을 위해 손상되지 않은 document를 Encoder와 Decoder 모두에 input으로 활용하고 Decoder의 최종 hidden state를 representation으로 이용
Token Masking
- BERT와 동일하게 random token이 샘플링되며 [MASK] token으로 대체
Token Deletion
- input에서 random token을 삭제
- token masking과 다르게 모델은 반드시 missing input의 위치를 결정해야 함
Text Infilling
- `Poisson distribution(lambda=3)`을 통해 span length를 정해 text span을 샘플링
- 샘플링된 text span은 single [MASK] token으로 대체
- 길이가 0인 범위의 경우 [MASK]을 input에 삽입
- `SpanBERT`를 통해 고안된 방법이지만, 해당 방법론에선 `clamped geometric` 분포를 통해 spen length를 정하며, 각 span을 정확하게 같은 개수의 [MASK] token으로 대체
- 모델은 해당 text span에서 누락된 token의 수를 예측하도록 학습
Sentence Permutation
- document는 full stop에 기반하여 sentence로 나눠지며, 이 sentence는 무작위 순서에 따라 shuffled
Document Rotation
- token은 무작위로 균등하게 선택되며, document를 해당 token을 시작점에 두고 rotate
- 모델은 document의 시작점에 해당하는 token을 알아차리기 위해 학습
3. Fine-tuning BART
- BART를 통해 생성된 representation은 downstream application에 다양한 방식으로 사용이 가능
3.1 Sequence Classification Tasks
- 동일한 input이 Encoder와 Decoder에 입력되며, 최종 Decoder token의 최종 hidden state가 새로운 `multi-class linear classifier`에 입력
- 이는 BERT의 `CLS` token과 관련있지만 이러한 token을 Decoder의 끝에 추가하여 Decoder의 token representation이 전체 input에서 Decoder state를 확인 가능
3.2 Token Classficiation Tasks
- `SQuAD`의 answer endpoint classification과 같은 token classification task에서는 Encoder와 Decoder 모두에 완전한 document를 입력
- Decoder의 최상단 hidden state를 각 word에 대한 representation으로 사용하여 token을 classify
3.3 Sequence Generation Tasks
- BART는 `Autoregressive Decoder`가 있기 때문에 `abstractive qeustion answering`, `summarization`과 같은 generation task에 직접적으로 fine tuning 가능
- 이러한 task에서의 information은 input에서 복제되지만, denoising pre-training objective를 따라 조작됨
- Encoder의 input은 input sequence이며, Decoder는 autoregressive하게 output을 생성
3.4 Machine Translation
- Encoder와 Decoder를 모두 포함하는 BART 모델을 `bitext`로 부터 학습한 encoder parameter를 추가하여 single pre-trained Decoder로 사용 가능
- BART의 Encoder embedding layer를 새로운 randomly initialized Encoder로 대체
- 이 모델은 end-to-end 학습을 통해 새로운 Encoder가 외국어(영어가 아닌 언어)를 input에 매핑해 BART가 노이즈를 제거하여 영어로 변환할 수 있도록 학습
- 새로운 Encoder는 BART 모델과 상관없이 분리된 vocabulary를 사용 가능
- Source Encoder를 2가지 단계를 통해 학습하며, 두 가지 단계 모두 BART 모델의 output에 대한 `cross-entropy` loss를 `backpropagating`
- BART의 대부분의 파라미터를 freeze하고, randomly initialized source encoder와 BART의 positional embeddings, BART의 Encoder first layer의 self-attention input projection matrix만 업데이트
- 모든 모델 parameter를 작은 iteration으로 학습
4. Comparing Pre-training Objectives
- base-size models(6 Encoder and 6 Decoder layers, with a hidden size of 768)과의 비교
- 5장에서 진행할 full large scale experiment에서 고려할 task의 representative subset을 통해 평가
4.1 Comparison Objectives
- 수많은 pre-training objective들에 대해서 training data의 크기, training resources, 모델 간의 architecture의 차이, fine-tuning 절차 등의 차이로 인해 공평한 비교가 힘듬
- discriminative와 generation task에서 좋은 성능을 보인 pre-training approach들에 대해 재구현
- 가능한 pre-training objective와 관련이 없는 차이를 제어하는 것에 초점
- 하지만 성능 개선을 위해 `learning rate`, `layer normalisation` 등에 대한 미세한 수정(각 objective에 대해 분리하여 tuning)
- Books과 Wikipedia data의 조합으로 1M step에 대한 훈련을 수행한 BERT의 방식에 따라 본 논문의 구현들과 비교
- 다음 방법론들을 비교
- `Language Model` : GPT와 유사하게 left-to-right Transformer LM 훈련(이는 cross-attention이 없는 BART decoder와 동일)
- `Permuted Language Model` : `XLNet`에 기반하며, token의 1/6을 샘플링하고 무작위 순서로 autoregressive하게 생성하며 다른 모델들과의 일관성을 위해 XLNet의 segment 간 relative positional embedding이나 attention은 구현 x
- `Masked Language Model` : `BERT`에 따라 15%의 token을 [MASK] symbol로 대체하고 original token을 독립적으로 예측하게끔 학습
- `Multitask masked Language Model` : `UniLM`에 따라 추가적인 self-attention mask(1/6 left-to-right, 1/6 right-to-left, 1/3 unmasked, 1/3 first 50% token unmaksed and a left-to-right mask for the remainder)를 호라용한 Masked Language Model 학습
- `Masked Seq-toSeq` : `MASS`에서 영감을 받아 50%의 token을 masking하고 sequence to sequence 모델을 masked token을 예측하게끔 훈련
- 두 가지 방법을 통해 실험을 진행
- task를 standard sequence-to-sequence 문제로 다뤄 source input을 Encoder에 입력하고, target을 Decoder의 output으로 간주 → BART에 효과적
- Decoder에서 source를 target의 prefix로 추가하여 sequence의 target 부분만 loss를 계산 → 다른 모델들에 효과적
4.2 Tasks
- `SQuAD`, `MNLI`, `ELI5`, `XSum`, `ConvAI2`, `CNN/DM`
4.3 Results
- pre-training method들의 성능은 task마다 매우 다름
- pre-training method들의 효율성은 task에 매우 의존적
- simple Language Model은 ELI5에서 best performance를 보였지만, SQuAD에서는 worst
- Token masking은 필수적
- `rotating document` 혹은 `permuting sentence` 등에 기반한 pre-trianing objective들의 성능은 좋지 않음
- 성공적인 방법들은 `token deletion` 혹은 `token masking`, `self-attention mask`를 사용
- Generation task에서는 masking보다 Deletion이 더 나은 성능을 보임
- Left-to-right pre-training은 Generation을 개선
- left-to-right auto-regressive language modeling을 포함하지 않은 The Masked Language Model과 The Permuted Language Model은 Generation에서 성능이 좋지 못함
- Bidirectional Encoder는 SQuAD에 필수적
- BERT 논문에서 언급했듯이 `future context`가 classification decision에서 중요하기 때문에 left-to-right decoder만을 사용할 경우 SQuAD에서 좋지 않은 성능을 보임
- 그러나 BART는 bidirectional layer의 절반의 layer만으로 비슷한 성능을 달성
- pre-training objective가 유일한 중요 요소는 아님
- Permuted Language Model이 XLNet보다 성능이 좋지 못함
- relative-position embedding 혹은 segment-level recurrence를 포함하지 않았기 때문
- 기본적인 Language Model이 ELI5에서 가장 성능이 좋음
- ELI5 dataset은는 다른 task보다 더 높은 perplexity를 가진 outlier로 다른 모델이 BART보다 더 좋은 성능을 보인 유일한 Generation task
- 기본 Language Model이 가장 성능이 좋았으며 이는 output이 input에 의해 느슨한 제한이 걸릴 경우 BART의 효율성이 떨어진다는 것을 의미
- BART가 가장 일관적으로 강력한 성능을 보임
- ELI5를 제외하고 text-infilling을 사용한 BART 모델이 모든 task에서 좋은 성능을 보임
5. Large-scale Pre-training Experiments
- 최근의 연구들(XLNet, RoBERTa 등)은 large batch size와 large corpora를 통해 pre-training을 수행하면 downstream performance가 극적으로 상승하는 것을 보임
- BART가 이러한 환경에서 얼마나 잘 작동하는지 확인하, downstream task를 위한 유용한 모델을 만들기 위해 `RoBERTa`와 동일한 scale로 훈련
5.1 Experimental Setup
- Encoder와 Decoder 각각 12 layer로 구성하며 hidden size는 1024
- RoBERTa와 동일하게 batch size는 8000이며 500,000 step으로 학습
- Document는 `GPT-2`와 동일하게 `byte-pair encoding`을 통해 토큰화
- 4장의 결과를 통해 `text infliing`과 `sentence permutation`을 조합해서 사용
- 각 document마다 30%의 token을 masking하며 모든 sentence에 대해 permute 수행
- 비록 sentence permutation이 CNN/DN summarization dataset에서만 효과를 보였지만, larger pre-trained model은 해당 task를 잘 수행할 것이라 가정
- 모델이 data를 더 잘 학습하기 위해 마지막 10% training step에 대해서 `dropout`을 비활성화
- RoBERTa에서 사용한 news, books, stories, web text를 포함한 약 160GB의 동일한 pre-training data를 사용
5.2 Discriminative Tasks
- SQuAD와 GLUE task에서 좋은 성능을 보인 방법론들과 BART의 성능을 비교
- 같은 resource지만 다른 objective로 pre-training한 RoBERTa가 주요한 비교군
💡 여기서 RoBERTa는 Masked Language Modeling을 통해 pre-trained되었고, BART는 denoising autoencoder를 통해 pre-trained 되었기 때문에 pre-training 과정에서의 최적화하는 손실 함수(objective)의 차이가 모델 성능을 비교하는 데 주요한 기여점이 될 수 있다.
- 전체적으로 BART의 성능은 다른 모델들과 작은 차이만 있을 뿐 비슷한 수준을 유지함
- 이는 BART의 Generation task에서의 개선이 Classification peformance에 크게 영향을 주지 않음을 의미
💡 BART모델은 향후 언급될 Generation Task와 Translation에서 큰 장점을 가지고 있다. 해당 파트에서는 Generation Task 및 Translation뿐만 아니라 이러한 classification task에서의 성능도 다른 모델에 뒤떨어지지 않는다는 점을 강조한다.
5.3 Generation Tasks
- BART는 standard sequence-to-sequence model로써 input에서 output text까지 fine-tuning
- fine-tuning 동안 `label smoothed cross entropy loss`를 사용
- smoothing parameter는 0.1
- generation 동안 beam size를 5로 설정하고 beam search에서 중복된 trigram을 제거하며, validation set에서 `min-len`, `max-len`, `length penalty`를 적용하여 모델을 조정
Summarization
- 2개의 summarization dataset인 `CNN/DailyMail`와 `Xsum`을 통해 summarization의 성능을 비교
- CNN/DailyMail의 summary는 source sentence와 비슷한 경향이 있어 extractive model이 좋은 성능을 보임
- BART는 모든 작업에서 좋은 성능을 보임
- 반대로 XSum의 경우 매우 추상적이며 extractive model의 성능이 좋지 않음
- 이 경우에도 BART는 기존에 SOTA였던 BERT를 모든 ROUGE metric에서 대략 6.0 point 높은 성능을 기록
Dialogue
- 모델이 이전 context와 text마다 지정된 persona를 고려하여 대답을 생성해야 하는 `CONVAI2` dataset을 통해 dialogue response generation 성능을 평가
- 이전에 좋은 성능을 보인 2개의 모델보다도 좋은 성능을 보임
Abstractive QA
- 모델의 long free-form answer을 생성하는 능력을 평가하기 위해 `ELI5` dataset 사용
- 이전에 성능이 좋았던 2개의 모델보다도 좋은 성능을 보임
- 하지만 질문에 대한 답변이 약하게만 명시되어 있어 해당 dataset은 여전히 task를 수행하기 쉽지 않음
5.4 Translation
- Sennrich et al.(2016)의 `back-translation data augmentation` 기법을 적용한 WMT16 Romanian-English dataset의 성능 확인
💡 back-translation data augmentation 기법은 NLP 분야에서 많이 활용되는 data augmentatoin 기법 중 하나이다. 먼저, 각 training data에 대해서 다른 언어로 번역을 수행한 후, 번역한 문장을 다시 원래의 언어로 번역하는 과정이다. 이러한 과정을 거치면 최종적으로 각 original text data 당 1개씩의 back-translation이 추가되어 data가 증강된다. 만약 잘 학습된 번역 모델이 있다면 기존 문장의 의미는 잘 보존한 상태로 새로운 문장을 생성할 수 있다.
- baseline으로 `Large Transformer` 모델과 비교
- 6 layer의 transformer encoder를 통해 BART가 노이즈를 제거하여 루마니어를 영어로 변환할 수 있는 representation으로 매핑
- 앞서 3.4장에서 언급한 randomly initialized encoder에 해당
- beam size는 5이며, length penalty alpha 값은 1
- back-translation을 적용하지 않은 data에 대해선 BART가 덜 효과적이고 과적합이 발생하기 쉬었으며, 향후 작업에서는 추가적인 정규화 기법이 필요
💡 여기서 Fixed BART와 Tuned BART의 차이점은 fine-tuning 방법에 있다. Fixed BART의 경우 6 lyaer의 transformer encoder를 제외한 다른 파라미터를 모두 freeze하였고, Tuned BART의 경우 Fixed BART이 모든 파라미터를 한 번 더 학습시켰다.
6. Qualitative Analysis
- BART는 summarization metric에서 커다란 개선을 이루어 냈으며, BART로 부터 생성된 summary를 확인
- 모델의 output은 유창하고 문법적으로 오류가 없으며, input에서 그대로 복사한 구절이 적은 매우 추상적인 결과
8. Conclusions
- 손상된 document를 original에 맞춰가며 학습하는 pre-training 방법인 BART를 제안
- BART는 RoBERTa와 비교해서 discriminative task에선 유사한 성능을, 여러 text generation task에선 SOTA 달성
- 향후 작업에서는 document를 손상시키는 새로운 방법을 연구해야하며, 특정 end task에 맞게 조정할 수 있어야함
Comment
💡 BART는 bidirectional encoder만 사용하는 BERT와 left-to-right autoregressive decoder만 사용하는 GPT와는 다르게 두 가지의 encoder와 decoder를 모두 사용하여 pre-training한다. 또한 학습 방식에 차이가 있는데, input sentence에 여러 가지 손상(본 논문에서의 최종 선택은 Text infilling + Sentence shuffling)을 가하고, 해당 노이즈를 제거하는 방식으로 모델 학습을 진행한다.
그러나 BART 또한 결국 fine-tuning 과정이 필요하며, 몇몇 task에서는 추가적인 학습 과정이나 모델 구조를 수정해야하는 부분이 있어 비교적 복잡한 절차를 거쳐 fine-tuning이 이루어지는 것 같다. 이는 결국 GPT 등 거대 데이터를 통해 학습하여 fine-tuning 과정을 아예 없애려는 경향을 비추어봤을 때는 성능과 별개로 개선되어야할 부분이 있다는 생각이다.