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

2022. 8. 26. 22:38NLP

BART는 Facebook에서 2019년에 발표한 논문입니다. 문장 이해와 문장 생성에 높은 성능을 가지고 있는 모델입니다. SKT에서 40GB 이상의 한국어 텍스트에 대해서 학습한 한국어 모델 KoBART를 배포해 한국어 텍스트에 대해서도 좋은 성능을 가지고 있습니다. 뉴스요약, 가사 생성 등 다양한 적용이 가능한데요! 이번 포스트에서 BART 모델의 구조와 사전학습에 대해서 소개하겠습니다. 

 

Abstract

BART는 임의로 noise를 주어 텍스트를 손상 시킨 후 원래 텍스트를 재구성하기 위한 모델을 학습하는(denoising autoencoder) 사전학습 sequence-to-sequence model 입니다. Transformer 기반의 뉴럴 기계번역 구조를 사용합니다. 이는 bidirectional encoder를 가진 BERT와 left-to-right decoder를 가진 GPT 그리고 다른 최신의 사전학습 구조를 일반화한 것으로 볼 수 있습니다. 양한 noising 접근법을 검증했을 때, 원래 문장의 순서를 섞는 방법 그리고 특정 구간의 텍스트를 마스크 토큰으로 대체하는 새로운 in-filling 방법이 최고의 성능을 가졌습니다. BART는 특히 문장 생성과 문장 이해(comprehension task)에 효과적입니다. GLUE와 SQuAD에서 RoBERT와 비교했을 때, abstractive dialogue, question answering, 그리고 summarization task에서 새로운 SOTA를 달성했습니다. BART는 기계번역을 위한 back-translation system에서 1.1 BLEU 증가를 보였습니다. 또한 BART 구조에서 어떤 요인이 end-task performance에 가장 영향을 미치는지 평가하기 위해  ablation experiments을 제시합니다.

 

 

1. Introduction

self - supervised 방법은 NLP에서 큰 성공을 이루었습니다. 가장 성공적인 접근방법은 랜덤하게 마스크된 단어를 재구성하기 위해 학습(denosing autoencoder)하는 masked language model의 변형들입니다. 최근 연구는 마스크된 토큰의 분포를 개선해 이점을 얻는 것을 보여줍니다. 그러나 이러한 방법들은 특히 특정 태스크에만 집중되어 한정적이었습니다. 본 논문에서 제시한 BART는 Bidirectional 그리고 Auto-Regressive Transformer의 결합입니다. BART는 denosing autoencoder로 sequence - to -sequence 모델로 만들어져 다양한 태스크에 적용될 수 있습니다. 사전학습에는 두가지 과정이 있습니다. (1) 텍스트에 임의의 noise로 손상을 줍니다. (2) sequence-to-sequence 모델을 학습해 원래 텍스트 데이터를 재구성합니다. Transformer 기반의 뉴럴 기계번역 구조를 사용합니다. 이는 bidirectional encoder를 가진 BERT와 left-to-right decoder를 가진 GPT 그리고 다른 최신의 사전학습 구조를 일반화한 것으로 볼 수 있습니다. 

 

 

이 구조의 핵심 장점은 noising flexibilty입니다. 즉 어떠한 noising 방법도 적용될 수 있다는 것입니다. 다양한 noising 접근법을 검증했을 때, 원래 문장의 순서를 섞는 방법 그리고 특정 구간의 텍스트를 마스크 토큰으로 대체하는 새로운 in-filling 방법이 최고의 성능을 가졌습니다. 이 접근법은 BERT에서 word masking과 next sentence prediction objectives를 일반화 한 것입니다. 이는 모델이 전체 문장 길이를 고려한 것이고 입력값으로 더 긴 범위의 transformation을 가능하게 합니다. 

 

BART는 특히 문장 생성과 문장 이해(comprehension task)에 효과적입니다. GLUE와 SQuAD에서 RoBERT와 비교했을 때, abstractive dialogue, question answering, 그리고 summarization task에서 새로운 SOTA를 달성했습니다.

 

또한 BART는 fine tuning의 새로운 방법을 제시합니다. 몇개의 BART 모델에서 추가로 트랜스포머 레이어를 쌓은 새로운 구조의 기계번역을 보여줍니다. 이 레이어는 BART를 통한 전파(propagation)를 통해 기본적으로 외국어를 노이즈가 있는 영어로 번역하도록 학습해 사전학습된 pre-trained target-side 언어 모델로 BART를 사용했습니다. 이러한 접근 방법은 기계번역을 위한 back-translation system에서 1.1 BLEU 증가를 보였습니다. 또한 BART 구조에서 어떤 요인이 end-task performance에 가장 영향을 미치는지 평가하기 위해  ablation experiments을 제시합니다.

 

모델의 효과를 잘 이해하기 위해 본 논문은 ablation 분석을 제시합니다. 이 연구는 데이터와 optimization 파라미터를 포함해 다양한 요인들을 잘 고려하도록 합니다. BART는 모든 태스크 범위에서 가장 일관되게 강력한 성능을 보입니다. 

 

 

2. Model

BART는 손상된 텍스트를 원래의 텍스트로 매핑해주는 denoising autoencoder입니다. 이 모델은 손상된 텍스트에 대해서 양방향 인코더와 left-to-right 자기회귀 디코더를 사용한 sequence-to-sequence 모델로 시행됩니다. 사전학습을 위해서 원본 텍스트에 대해서 negative log likelihood를 최적화합니다. 

 

2.1 Architecture

BART는 활성화 함수를 ReLU대신 GeLUs를 사용한 것을 제외하고 기본적인 sequence-to-sequence Transformer 구조를 사용합니다. base 모델은 인코더와 디코더에 각각 6개의 레이어를 사용하고 large 모델은 각각 12개의 레이어를 사용합니다. 이 구조는 BERT에서 사용된 구조와 유사합니다. 다른점은 (1) 디코더의 각 레이어는 추가로 마지막 인코더의 hidden layer에 대해서cross-attention을 수행합니다. 그리고 (2) BERT는 단어를 예측하기 전에 추가로 feed-forward network을 사용하지만 BART는 사용하지 않습니다. BART는 BERT보다 약 10% 더 많은 파라미터를 가지고 있습니다. 

 

2.2 Pre-training BART

BART는 손상된 텍스트로 학습되고 reconstruction loss를 디코더의 결과와 원본 텍스트간의 cross-entropy를 사용해 최적화합니다. 이전의 denoising autoencoders와 다르게 BART는 모든 document corruption을 적용할 수 있습니다. 본 논문은 이전에 소개된 변환과 새로운 변환 몇개를 사용해 실험을 했습니다. 사용한 변환(transformation)은 다음과 같습니다. 

 

 

Token Masking : 랜덤하게 토큰이 선택해 [MASK]로 대체하는 방식. BERT에서 사용함.

Token Deletion : 입력에서 랜덤하게 토큰이 삭제됨. Token masking 방법과 다르게 모델은 어떤 위치가 missing input인지도 맞춰야함. 

Text Infilling : 포아송 분포에서 얻은 길이의 text span을 선택해 각 span은 하나의 [MASK]로 대체. 길이 0이면 [MASK] 토큰 삽입을 의미. Token masking 에서는 하나의 단어만 마스킹 하지만, text infilling 방식은 여러개의 토큰을 한번에 <MASK> 토큰으로 대체해 얼마나 많은 토큰이 span에서 사라졌는지 학습.

Sentence Permutation : 문서를 문장 단위로 나누고, 랜덤 순서로 문장이 섞임.

Document Rotation : 토큰이 균일하게 랜덤으로 선택되고 문서는 그 토큰으로 시작하도록 회전됨. 이 태스크는 모델이 문서의 시작을 구분하도록 학습.

 

 

3. Fine-tuning BART

BART는 하위 태스크에 다양하게 적용되어 사용될 수 있습니다.

3.1 Sequence Classification Tasks

Sequence Classification에서 같은 입력값이 인코더와 디코더에 입력됩니다. 그리고 마지막 디코더 토큰의 hidden state는 새로운 multi classifier에 입력됩니다. 이러한 접근방법은 BERT의 CLS와 관련이 있습니다. 그러나 BART에서는 추가적으로 End 토큰을 사용했습니다.

 

3.2 Token Classification Task

SQuAD와 같은 Token Classification 에서 완전한 문서를 인코더와 디코더에 입력합니다. 그리고 마지막 디코더의 hidden state를 각 단어의 representation으로 사용합니다. 이 representation은 토큰 분류에 사용됩니다.

 

3.3 Sequence Generation Tasks

BART는 자기회귀(autoregressive decoder)를 가지고 있기 때문에, abstractive question answering 그리고 summarization와 같은 sequence generation 태스크에 사용될 수 있습니다. 두 태스크 모두 정보가 입력값으로 부터 복제되고 조종되어 denoising pre-training objective와 관련이 있습니다. 인코더의 입력은 입력 시퀀스이고 디코더는 자기회귀적을 결과를 생성합니다.

 

3.4 Machine Translation

영어로 번역하는 기계번역 디코더에 BART를 사용해 개선을 했습니다. 이전연구에서는 모델이 사전학습된 인코더와 결합하여 성능이 향상될 수 있음을 보여줬습니다. 그러나 디코더에서 사전학습을 사용했을 때의 이점은 한정적이었습니다. 본 연구에서 전체 BART 모델(encoder와 decoder 모두)을 기계 번역을 위한 사전 학습된 decoder로 사용합니다. BART의 인코더 임베딩 레이어를 새로운 랜덤하게 초기화된 인코더로 대체합니다. 새로운 인코더는 외국어를 de-noise 가능한 영어로 대체해 학습합니다. 

source 인코더는 2 step에 거쳐 학습합니다. 첫번째 단계에서 대부분의 BART 모수를 고정시키고 오직 랜덤하게 초기화된 source 인코더와 BART positional embedding 그리고 인코더의 첫번째 레이어의 self-attention input projection 행렬을 업데이트 합니다. 두번째 단계에서 모든 모델의 모수를 학습합니다. 두 단계 모두 BART 결과의 cross-entropy loss를 역전파하면서 학습합니다. 

 

 

4. Comparing Pre-training Objectives

BART는 이전 연구보다 사전학습 과정에서 더 넓은 범위의 noising 구조를 사용할 수 있습니다. base-size model(6개의 인코더, 6개의 디코더, hidden size 768)를 사용해 여러 태스크에 대해서 비교했습니다. 

4.1 Comparison Objectives

많은 사전학습 모델의 objectives가 공개되었지만 학습데이터, 구조, fine-tuning 과정의 차이로 이해서 모델 간의 공정한 비교는 어려움이 있었습니다. BART는 성능향상을 위해서 학습률과 층정규와의 사용의 변화가 있었습니다. 사전학습 objectives와 관련이 없는 차이가 모델간 비교에 영향을 미치지 않게 하기위해 노력했습니다. 본 모델을 BERT(books와 Wikipedia data 합친 데이터를 1M step만큼 학습)기반의 다음 모델들와 비교했습니다.

 

Language Model : GPT와 비슷, left-to-right 트랜스포머 언어모델을 학습. 이 모델은 cross-attention을 하지 않은BART의 디코더와 같다.

Permuted Language Model : XLNet에 기반하고 있다. 토큰의 1/6을 샘플링하고 랜덤한 순서로 자기회귀적으로 생성한다. 

Masked Language Model : BERT를 따라, 15%의 토큰을 [MASK]로 대체해 원래 토큰을 예측하도록 모델을 학습한다. 

Multitask Masked Language Model : Masked Language 모델을 추가적인 self-attention masks와 함께 학습한다. 

Masked Seq-to-Seq : MASS의 영향을 받아 토큰의 50%를 가진 span을 마스크한다. 그리고 sequence to sequence model을 사용해 마스크된 토큰을 예측한다.

 

4.2 Tasks

SQuAD : extractive question answering 

MNLI : bitext classification

ELI5 : long-form abstractive question answering

XSum : news summarization

ConvAI2 : dialogue response generation task

CNN/DM : news summarization

 

4.3 Results

사전학습 방법의 성능이 태스크에 따라 크게 다릅니다. 예를 들어 simple language 모델이 ELI5에서 가장 좋은 성능을 보이지만 SQuAD에서 가장 나쁜 성능을 보입니다. Token masking은 중요했습니다. rotating document나 permuting setences는 상대적으로 성능이 떨어졌습니다. 또한 left-to-right 사전학습은 생성에 성능 향상을 이끌었습니다. SQuAD에서 양방향 인코더가 중요했습니다. Permuted Language Model은 XLNet보다 낮은 성능을 보여줬는데 이는 relative-position embedding이나 segment level recurrence와 같은 다른 구조적 개선을 포함하지 않아 나타난 것으로 사전학습 objective만이 중요한 것은 아님을 보여줍니다. ELI5 데이터셋은 outlier로 Pure language model일 때 좋은 성능을 보임니다. text-infilling을 사용한 BART가 ELI5를 제외하고 가장 좋은 성능을 보여줘 가장 일관된게 높은 성능을 가진다는 것을 알 수 있습니다. 

 

 

5. Large-scale Pre-training Experiment

최근의 연구는 사전학습이 큰 배치 사이즈(large batch size)와 큰 코퍼스로 scaled될때 하위 태스크 성능이 극적으로 개선될 수 있음을 보였습니다. BART가 이 체제에서 얼마나 좋은 성능을 보이는지 확인하고 하위 태스크에서 유용한 모델을 만들기 위해서 BART를 RoBERTa와 같은 스케일로 학습시켰습니다. 

5.1 Experimental Setup

인코더, 디코더 각각 12 레이어, hidden size가 1024인 Large model을 사전학습 시켰습니다. RoBERTa와 같이 batch size를 8000개 사용했고 500000 step을 학습시켰습니다. 문서는 GPT-2와 같은 byte-pair encoding을 사용해 토큰화 했습니다. section 4에서 봤듯이 text infilling과 sentence permutation의 결합을 사용했습니다. 각 문서의 30%를 마스크했고 모든 문장을 permute했습니다. sentence permutaion이 CNN/DM에서만 상당한 개선을 보여줬지만 큰 사전학습 모델은 이 설정에서 더 좋은 성능을 보여줄 것이라고 가정하고 사용했습니다. 모델이 데이터에 더 적합하게 하기위해서 마지막 10%의 training step에서 dropout을 사용하지 않았습니다. 사전학습 데이터로는 160GB의 뉴스, 책, 이야기 그리고 웹 텍스트를 사용했습니다.

 

5.2 Discriminative Tasks

SQuAD와 GLUE 태스크에서 Large model의 결과를 보여줍니다. BART는 RoBERTa와 XLNet과 비슷한 성능을 보여줍니다. 이는 BART의 uni-directional decoder가 discriminative task의 성능을 낮추지 않음을 나타냅니다.

 

5.3 Generation Tasks

 

Summarization

두가지 요약 데이터 셋을 사용했는데 CNN/DailyMail에 대해서는 추출요약이 좋은 성능을 보였고 XSum은 생성 요약에 높은 성능을 보였습니다. XSum에서 모든 ROUGE metric에서 약 6.0 point의 향상을 보였습니다. BART가 이전모델의 성능보다 더 높아 SOTA를 달성했습니다. 

 

Dialogue

BART가 두 성능평가에서 이전 모델을 능가하는 성능을 보입니다.

 

Abstractive QA 

이전 연구보다 1.2 ROUGE-L 향상을 보이며 SOTA를 달성했습니다. 하지만 질문에 대한 답이 여전히 약하게 명시되어 있어 여전히 도전히 필요한 데이터셋입니다.

 

5.4 Translation

WMT16 Romanian-English에서 성능을 평가했습니다. 3.4에서 소개한 것 처럼 6개의 트랜스포머 기반의 인코더를 사용해 루마니아어를 영어로 de-noise 할 수 있도록  매핑시켰습니다. 그 결과는 다음과 같습니다. 

baseline 트랜스포머와 비교했습니다. 역방향 데이터가 없으면 덜 효과적이고 과대 적합하기 쉽다는 것을 보여줍니다.

 

 

6. Qualitative Analysis

BART는 요약에서 이전 SOTA보다 6 point 높은 큰 개선을 보여줍니다. BART의 성능을 이해하기 위해서 정성적으로 평가하는 것이 필요합니다. 다음의 표는 BART로 생성된 요약을 보여줍니다. 예시는 사전 학습 코퍼스에 포함되지 않은 WikiNews articles입니다. 연구진은 문서에서 요약을 추출하기 어렵게 하기 위해서 첫번째 문장을 삭제하고 요약을 했습니다. 

모델의 결과는 유창하고 문법적으로 적절함을 보여줍니다. 모델의 결과는 입력값의 문구가 복제된 부분 거의 없었습니다. 결과는 사실적으로 정확하며, 입력 문서 전반에 걸친 supporting evidence를 배경 지식과 통합했습니다. 첫번째 예시에서 물고기가 지구온난화로 부터 암초를 보호하고 있다는 것을 잘 추론했습니다. 그러나 저널 Science에 게재되었다는 것을 뒷바침하는 문장은 없었습니다. 이러한 예시는 BART 사전학습은 자연어 이해와 생성의 결합이 잘 학습됨을 보여줍니다. 

 

 

7. Related Work

연구들은 기계번역을 개선하기 위해 사전학습 방법을 탐구했습니다. 원래 언어와 타겟언어 모두에 사전학습되었을 때 큰 개선을 이루었습니다. 그러나 이 방법은 모든 관심 언어에 대해서 사전학습이 필요하다는 단점이 있습니다. 다른 연구는 사전학습을 통해 인코더가 개선될 수 있음을 보여줬습니다. 그러나 디코더에서 이점을 얻는 것에는 한계가 있었습니다. 본 연구에서 BART가 기계번역 디코더를 개선하기 위해 사용될 수 있음을 보여줬습니다. 

 

 

8. Conclusion

본 논문에서는 손상된 문서를 원본 문서와 맵핑해 학습하는 사전학습모델, BART을 제시했습니다. BART는 discriminative 태스크에서 RoBERTa와 비슷한 성능을 보여줬고 많은 텍스트 생성 태스크에서 새로운 SOTA를 달성했습니다. 앞으로 사전학습에 사용되는 corrupting document의 새로운 방법을 탐구해야합니다.