본문 바로가기
Deep Learning

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

by Worldie 2022. 1. 6.
반응형

Background

Key features : NLP(Natural Language Processing), Language modeling objective, Transformer, Pre-training, Fine-tuning, Language Model, BERT, GPT, Sequence-to-Sequence(Seq2Seq), BART, Bidirectional Auto-Regressive Transformer

 

안녕하세요~ NLP 맨입니다. 이번에 들고온 논문은 BART입니다.

바트.. 어디서 들어본 이름 아닌가요? 바트 심슨이 떠오르시죠? 그러나 오늘 소개할 것은 애니메이션 캐릭터가 아니라 Bidirectional Auto-Regressive Transformer입니다. 각 단어의 앞글자를 따서 BART인거죠!

자 먼저 BART 풀네임에 대해 알아봅시다. Bidirectional하면 뭐가 떠오르시나요? 제가 지난 BERT논문에서 소개드렸던 것이 먼저 떠오르시죠? BERT는 Bidirectional Encoder Representation from Transformer의 약자입니다. 양방향으로 언어 시퀀스의 토큰들을 어텐션 메커니즘을 통해 모두 반영하여 문자를 엔코딩합니다. 그럼 Auto-Regressive하면 무엇이 떠오르나요? 네 맞습니다! GPT, 혹은 Generative Decoder가 먼저 떠오르실 겁니다. 왼쪽, 즉 이때까지의 입력을 바탕으로 새로운 출력을 만들어내는 생성 모델입니다. 네, 그렇습니다. BART는 BERT와 GPT를 하나로 합친 형태로, 기존 Sequence to Sequence 트랜스포머 모델을 새로운 Pre-training objective를 통해 학습하여 하나로 합친 모델입니다.

기존에 있던 모델을 하나로 단순히 합친 모델, 아니 심지어 기존 Viswani et al.이 제안한 트랜스포머 모델 구조와 동일한데 어떻게 논문이 될 수 있었을까요? 바로 BART 모델이 여러 자연어 벤치마크에서 sota를 달성한 것도 있겠지만, 여러 사전 학습 태스크에 대한 면밀한 분석도 한 몫하였습니다. 

논문을 쓰시는 독자 여러분들께선 와 이렇게도 논문이 만들어지는구나~ 하고 보시면 될 것 같고, 자연어 처리를 공부하시는 입장에서는 사전학습의 중요성에 대해 알아가시면 좋을 것 같습니다.

자 그러면 제대로 된 리뷰 들어가봅시다.

Facebook에서 개발한 BART, 우리가 잘 아는 바트 심슨을 노린 것이 맞을 것이다. 자연어 처리 논문에는 특이하게도 애니메이션 캐릭터의 이름으로 모델 이름을 짓는 유행이 있다...^^;

Introduction

 Self-supervised learning, 즉 자기 지도 학습은 넓은 범위의 NLP 태스크에서 주목할만한 성과를 보여주었습니다. 가장 성공적인 접근법은 바로 masked language model, 문장 내 존재하는 단어의 집합이 가려진 텍스트를 다시 재구축하는 denoising autoencoder입니다. BERT 이후에 나온 연구에서는 MASK 토큰의 분포를 바꾸어 훈련하는 방법을 다루기도 하였는데, 예를 들면 가려진 토큰이 어떤 순서로 예측되는지, 그리고 MASK 토큰을 교체하기 위해 제공되는 문맥정보 등이 있습니다. 그러나 이러한 방법론은 특정 태스크의 종류(span prediction, generation, 등)에서 잘 동작하기 위한 정형적인 방법론이고, 모든 종류의 태스크에 적용할 수 없습니다. 왜 그런지는 BERT와 GPT의 근본적인 차이점에 있습니다. BERT는 엔코더이기 때문에 Generation task에 대응할 수 없습니다. 그리고 GPT는 디코더만 존재하기 때문에 양방향 문맥정보를 반영하지 못합니다.

 BART는 Bidirectional과 Auto-Regressive Transformer를 합친 모델입니다. BART는 seq2seq 모델로 만들어진 denoising autoencoder로, 많은 종류의 downstream 태스크에서 잘 동작한다고 합니다. 사전학습(Pretraining)은 2가지 단계가 있습니다.

    1) 텍스트가 임의적인 noising 함수를 통해 오염된다.(다른 토큰[Mask]으로 교체되거나, 없애거나, 순서를 바꾸거나 등이 있습니다.)

    2) seq2seq모델이 원래의 텍스트를 복원하기 위해 학습된다.

BART는 표준 Transformer 기반 신경망 기계 번역 구조로, BERT(bidirectional encoder)와 GPT(left-to-right decoder)를 일반화한 것이라고 볼 수 있고 여러 pretraining scheme을 도입하였습니다.

  BART의 핵심적인 장점은 바로 noising의 유연성입니다. 어떤 임의의 변형이라도 기존 텍스트에 바로 적용될 수 있으며, 심지어 길이도 변화시킬 수 있습니다. 저자는 여러 noising 방법론을 실험하였고, 최고의 성능을 보이는 것은 바로 기존 문장의 순서를 랜덤하게 섞고 임의의 길이의 텍스트를 하나의 단일 마스크 토큰으로 교체하는 것이라는 것을 발견하였다고 합니다. 이 방법론은 BERT의 기존 방법론을 따르는 단어 mask과 next sentence prediction을 일반화 한 것으로, 모델이 전체적인 문장 길이에 대해 학습해야하고, 변형된 입력에 더 많이 집중해야 하는 효과가 있다고 합니다. (사전 학습에 대한 내용을 더 많이 알고싶다면, T5논문을 읽는것을 추천드립니다. 강추!!)

 BART는 텍스트 생성에 fine-tuning하였을 때 특히 효율적이지만, comprehension(이해) 태스크에서도 역시 잘 동작합니다. SQuAD와 GLUE에서 비슷한 수준의 학습을 하였을 때 RoBERTa의 성능과 비슷하였고, abstractive dialogue, question answering, summarization task에서 sota의 성능을 달성하였다고 합니다. 그 중에서 XSum 데이터셋의 이전 SOTA 성능보다 6ROUGE만큼 성능이 향상되기도 하였습니다.

  BART는 fine-tuning에 대한 새로운 방법에 대해 제안하기도 하였습니다. BART 모델에 몇개의 추가적인 transformer 레이어를 쌓아 올리는 것으로 기계 번역에 대한 새로운 방법론을 제시하였다고 합니다. 추가적인 레이어는 외국어를 noise가 적용된 영어로 번역하는 것을 학습되며, BART 전반적으로 학습되게 되어 BART를 사전학습된 target-side 언어 모델로 사용합니다. 이 방법론은 back-translation 기계 번역 베이스라인보다 WMT 로마니안-영어 벤치마크에서 1.1 BELU만큼 성능이 향상되었다고 합니다.

  이러한 효과를 더 잘이해하기 위해서 추가적으로 저자는 다른 최근에 제안된 훈련 목적 함수을 이용해 비교해보았습니다. 이 연구는 데이터나 최적화 파라미터 등과 같은 여러 요소들을 신중하게 컨트롤할 수 있게 합니다. 이러한 요소들은 전반적인 성능에 training objective의 선택과 동일하게 중요합니다!! 

BART 모델 구조를 대표하는 그림. 놀랍게도 별거 없다! 그러나 기존의 서로 다르게 사전학습된 모델을 추가적인 사전학습을 통해 하나의 모델로 합친다는 참신한 아이디어 하나만으로 여러 실험을 통해 논문을 만들어내었다! 우리도 한 번 연구에 중요할 수 있는 아주 간단한 아이디어를 놓치고 있지 않나 생각해보자.

 

Model

자 그러면 모델 구조를 알아봅시다. BART는 손상된 문서를 기존 문서로 되돌리는 denoising autoencoder입니다. BART는 seq2seq 모델으로 구현되어 있고 손상된 텍스트를 birdirectional encoder(BERT)가 엔코딩하고 이를 left-to-right autoregressive decoder(GPT)가 받습니다. 사전학습을 위해, 기존의 negative log lielihood를 최적화 하였다고 합니다.

Architecture

BART는 표준 seq2seq Transformer 구조를 사용한다고 하였죠? 단, 디코더에서는 GPT에서 사용하는 ReLU 활성화 함수를 GeLU로 바꾸었고 파라미터 초기화를 N(0,0.2)로 하였다고 합니다.(N(0,0.2)는 표준 정규분포를 따르는데 평균은 0, std는 0.2의 분포를 갖게 하였다는 뜻입니다!) BART역시 base와 large 크기의 모델이 있는데, base 모델은 엔코더와 디코더에 각각 6개의 레이어를 사용하였고 large 모델은 12개의 레이어를 사용하였습니다. 구조는 BERT에서 사용한 것과 아주 비슷하지만, 다음과 같은 다른 점이 있습니다.

    1) 디코더의 각 레이어가 엔코더의 최종 hidden 레이어와 cross-attention을 수행한다. (기존 Transformer Decoder와 동일)

    2) BERT는 단어를 유추해내기 위해 추가적인 feed-forward 네트워크를 사용하지만, BART는 그렇지 않다.(이는 엔코더가 바로 masking된 단어를 유추하지 않기 때문입니다.)

따라서 BART는 BERT보다 약 10% 더 많은 파라미터를 가지고 있게 됩니다.(추가적인 레이어, 즉 디코더의 cross-attention 레이어가 추가되었기 때문입니다.)

Denoising Objectives의 종류들. BERT의 Token Making부터 XL Net에서 제안한 Sentence Permutation 등등이 있다. 모두 알아보도록 하자!

Pretraining BART

BART는 문서를 오염시키고 난 뒤 reconstruction loss, 즉 디코더의 output과 기준 문서와의 크로스 엔트로피 로스를 최적화하는 것으로 훈련됩니다. 기존의 맞춤형 noising scheme을 사용하였던 denoising autoencoder와는 달리, BART는 어떠한 종류의 문서 corruption이든 모두 적용할 수 있습니다(output의 개수가 정해져 있지 않고 auto-regressive하게 생성되기 때문입니다.). 극단적인 상황인, 원본에 대한 모든 정보가 없는 상황에서도, BART는 원래의 언어 모델과 동일하게 동작할 수 있다. (생성모델을 생각하시면 됩니다.)

  BART논문은 BART의 사전학습 objective에 대해 분석하였습니다. 여태껏 제안된 여러 noising 기법과 새로운 변형기법에 대해 실험하였고, 다른 새로운 기법을 개발하는 것이 중요할 것이라고 말합니다. 실험에 사용된 noising 기법을 알아봅시다!

1) Token Masking : BERT에서 제시한 기법으로, 랜덤한 토큰이 샘플링되어 [MASK]토큰으로 치환됩니다. 모델은 MASK 토큰이 어떤 토큰이었는지 맞추어야 합니다.

2) Token Deletion : 랜덤한 토큰들이 input에서 치환되지 않고 제거됩니다. 기존 token masking과는 다르게, 모델은 인풋의 어느 위치가 없어졌는지에 대한 정보도 함께 결정해야 합니다.

3) Text Infilling : 몇개의 텍스트 span(0>=의 토큰들)이 샘플링 되고, 한 span의 길이는 포아송 분포(람다 = 3)를 따른다고 합니다. 각 span은 단일 [MASK]토큰으로 치환되어 모델이 MASK 토큰에 해당되는 단어들(!)을 맞춰야 합니다. 심지어 0길이의 span(아무것도 바뀌지 않음)도 역시 [MASK] 토큰으로 치환됩니다. 해당 기법은 SpanBERT에서 영감을 받았지만, SpanBERT는 span 길이를 다른 분포(clamped geometric)로 샘플링하고, 각 span을 가려진 단어 길이와 동일한 만큼 [MASK]토큰으로 치환합니다. Text infilling은 모델이 얼마나 많은 토큰이 하나의 span으로 부터 없어졌는지 예측하는 법을 알아야 합니다.

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

5) Document Rotation : 하나의 토큰이 랜덤으로 동일한 확률로 선택되고, 문서가 섞여 해당 토큰이 문서의 시작지점이 됩니다. 이 태스크는 모델이 그 문서의 시작점을 찾는 것을 통해 훈련됩니다.

 

각각 Classification 태스크(a)와 Translation 태스크(b)에 대한 미세조정(Fine-tuning)방법론입니다. 같은 input과 output이 엔코터와 디코더로 들어가고, label을 output으로 하는 방법(a)이고, 문장을 번역하여 생성해야하는 기계 번역과 같은 경우 auto-regressive하게 아웃풋이 생성되고, 다른 언어로 표현되는 인풋을 조정하기 위한 엔코더를 추가적으로 도입해 학습합니다.

Fine-tuning BART

BART가 생성해내는 representation은 여러 다운스트림 어플리케이션에서 다양한 방법으로 적용될 수 있습니다. 자 그러면 각 태스크별로 어떻게 파인튜닝이 진행되는지 알아봅시다!

1) Sequence Classification Tasks

Sequence Classification Task는 어떠한 시퀀스를 분류하는 태스크입니다. 대표적으로 주어진 문장이 문법적으로나 영어적으로 합당한지 분류하는 GLUE의 CoLA가 있습니다. 해당 태스크에서는 동일한 입력이 엔코더와 디코더에 들어가고, 마지막 decoder token의 마지막 hidden state이 새로운 multi-class 선형 분류기에 들어가게 됩니다. 이 방법론은 BERT가 CLS 토큰으로 분류하는 것에 영감을 얻었다고 합니다. 그렇지만, 여기에선 추가적인 토큰을 마지막에 추가하여 디코더에 있는 마지막 토큰의 representation이 전체 입력과 attention을 수행할 수 있도록 하여 마지막 output은 모든 입력을 반영할 수 있도록 하였습니다.

2) Token Classification Tasks

Token classification Task는 토큰단위로 분류를 수행하는 태스크입니다. 대표적으로 주어진 본문 내에서 정답을 찾아야 하는 SQuAD가있습니다. SQuAD는 정답에 해당되는 Start Point와 End Point의 토큰을 찾아야 합니다. BART에서는 모든 문서를 엔코더와 디코더를 입력으로 하고, 디코더의 가장 위의 hidden state를 각 토큰의 representation으로 사용하였습니다. 각 토큰들의 representation을 분류하는데 사용합니다.

3) Sequence Generation Tasks

기존 BERT는 할 수 없었던 태스크 중 하나인 Generation Task입니다. 그 이유는 BART가 autoregressive 디코더를 가지고 있기 때문인데요, 때문에 abstractive question answering과 summarization과 같은 sequence generation 태스크에 바로 적용 할 수 있습니다. 이러한 태스크들은, 입력 시퀀스가 복사되고 조절되는 특징이 있는데, 이는 denoising pre-training objective랑 밀접하게 연관되어 있다고 합니다. 엔코더의 입력은 입력 시퀀스가 되고, 디코더는 autoregressive하게 출력을 생성합니다.

4) Machine Translation

영어를 다른 언어로 번역하는 Machine Traslation Task 입니다. BART를 사용해 기계 번역 태스크에서 사용되는 디코더를 개선할 수 있는지도 알아보았다고 합니다. 이전 연구에 따르면 모델이 사전학습된 엔코더를 합치는 것으로 개선될 수 있지만, 사전학습된 디코더를 사용하는 것에 대한 이점은 제한되어 있다고 알려져 있었습니다. BART에서는 모델 전부를 하나의 사전 학습된 기계 번역을 위한 디코더로 사용하는 것이 가능하다는 것을 보여주었고, 이를 bitext로부터 학습된 새로운 엔코더 파라미터를 추가하는 것으로 해결하였습니다.

 추가적으로 설명하자면, BART 엔코더의 embedding 레이어를 새롭게 초기화된 엔코더로 교체합니다. 이 모델은 end-to-end로 학습되며, 이 새로운 엔코더를 학습시키는 것으로 외국어(영어가 아닌) 단어들을 영어로 매핑하여 바트가 외국어를 denoise할 수 있도록 합니다. 이 새로운 엔코더는 기존 BART 모델과 다른 vocabulary를 사용하여도 됩니다.

  따라서 해당 태스크에서는 엔코더를 2가지 스텝으로 훈련시킵니다. 두 방식 모두 BART 모델의 출력으로 cross-entropy 로스로 역전파를 적용해 수행하는데, 첫번째 step에서 BART의 대부분의 파라미터를 freeze하고 랜덤으로 초기화된 (embedding layer를 대체하는) source 엔코더, BART의 positional embedding, 그리고 첫번째 엔코더 레이어의 self-attention input projection matrix만 학습시킵니다. 두번째 step은 모든 모델 파라미터를 작은 수의 iteration으로 학습시킵니다!

 

Comparing Pre-training Objectives

BART는 이전 연구보다 pre-training단계에서 더 넓은 범위의 noising 방법론을 지원합니다. 사전 학습 Objective 함수를 보다 더 잘 이해하기 위해 해당 챕터에서는 base 크기의 모델을 이용해 여러 denoising task에 대해 실험을 진행하였습니다.

Comparison Objectives

위에서도 나열하였듯 많은 사전학습 방법론이 제안되었지만, 이러한 방법론들의 정당한 비교는 힘듭니다. 왜냐하면 훈련 데이터, 리소스, 구조적 차이가 모델에 따라 다르고, 그리고 파인 튜닝 방법론도 다르기 때문입니다. 따라서 이를 위해 최근에 제안된 강력한 사전학습 방법론들을 discriminative와 generation task에 맞게 재구현하였다고 합니다. 그리고 가능한 만큼 사전 학습 목적 함수와 관계 없는 요소들을 컨트롤하려 했지만, layer normalization의 사용이나 학습률을 조금 조정하여 성능을 향상시키기도 하였다고 합니다. (각 오브젝티브에 따라 조금의 조정은 들어가 있음.) 또한 BERT에 나와있는 방법에 따라 구현 하였고, 1M step만큼 Book과 Wikipedia 데이터를 합한 데이터로 훈련시켰습니다(BERT가 사전 학습을 한 데이터와 동일합니다). 참고로 RoBERTa에서는 Pretraining 데이터에 대한 고찰을 많이 하였습니다. 궁금하신 분들은 찾아보시는 것도 좋을 것 같습니다! 다음은 실험한 언어 모델의 종류에 대해 알아봅시다.

1) Language Model : 자연어처리를 처음부터 공부하신 사람들에게 가장 익숙한 모델입니다. 훈련은 GPT모델이 훈련하는 방식으로, left-to-right 트랜스포머 언어 모델입니다. 해당 모델은 BART의 디코더와 동일하지만, cross-attention을 수행하지 않습니다. (엔코더가 출력하는 representation이 없기 때문이겠죠?)

2) Permuted Langauge Model : 해당 모델은 XLNet 기반 모델이며, ⅙ 토큰만큼 샘플링하여 이를 랜덤한 순서로 autoregressive하게 생성하는 모델입니다. 다른 모델과의 동일한 비교를 위해, 기존 XLNet에서 수행하였던 relative positional embedding이나 segment간의 attention을 수행하지 않았다고 합니다.

3) Masked Language Model : BERT와 같은 모델링 방법이며, 15%의 토큰을 [MASK] 토큰으로 치환하고 모델을 각 토큰마다 기존 토큰을 예측하도록 훈련합니다.

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

5) Masked Seq-to-Seq : MASS에 영감을 받은 모델로, 50%의 토큰을 포함하는 span을 마스크하고, seq2seq 모델로 마스크된 토큰을 예측하도록 훈련합니다.

 

참고할 사항으로는 Permuted LM, Masked LM, Multitask Masked LM을 위해서 two-stream attention을 이용해 효율적으로 시퀀스의 출력에 대한 likelihood를 계산하였다고 합니다. (diagonal self-attention mask를 출력에 적용해 단어를 left-to-right로 예측합니다. diagonal self-attention mask는 알다시피 left-to-right방식, 현재 타임스탭의 왼쪽 토큰들만 반영하겠다는 뜻입니다)

  논문은 다음과 같은 실험을 진행하였습니다. 1) 태스크를 일반적인 seq2seq 문제로 취급하고, 소스 입력을 엔코더에 넣고 타겟이 디코더의 출력이 된다. 2) 소스를 타겟의 prefix에 추가하여 디코더에 넣고, 시퀀스의 타겟 파트의 로스만 계산한다.(전형적인 Decoder Only 모델이죠?) 해당 실험을 통해 1)이 BART 모델에 더 잘 작동하는 것을 알았고, 2)는 다른 모델에 더 잘 작동한다는 것을 발견하였다고 합니다 또한, 모델이 fine-tuning objective를 모델링하는 능력을 직접적으로 비교하기 위해, perplexity를 계산하였습니다.

 

Tasks

위의 모델들을 기반으로 실험에 쓰인 데이터셋에대해 알아봅시다!

SQuAD : Wikipedia 문단에 대한 extractive question answering 태스크 입니다. 위키피디아에서 따온 본문과 질문이 주어지면 주어진 본문로부터 정답에 해당되는 text span을 찾는 문제입니다. BERT와 비슷하게, BART에서는 문제와 context를 이어붙인 것을 엔코더의 입력으로 하고, 디코더를 통해 예측하도록 하였습니다. 모델은 각 토큰의 시작과 끝 인덱스을 예측하는 분류기가 포함되어 있다고 합니다. (text span을 찾으면 되기 때문에, start 토큰과 end 토큰의 위치만 예측하는 분류기 2개가 있다는 뜻입니다!)

MNLI : 두개의 문장에 대한 classification 태스크로 하나의 문장이 다른 문장을 entail, 즉 이전 문장과 이후 문장의 관계가 성립 하는지 예측하는 태스크 입니다. BART 모델은 두개의 문장을 EOS token(문장의 끝을 알리는 토큰입니다.)을 추가해 합치고, 이를 엔코더와 디코더에 넣습니다. BERT와는 다르게, EOS 토큰의 표현이 문장 관계를 분류하는데 쓰입니다.(BERT는 CLS토큰이었죠?)

ELI5 : 긴 형식의 abstractive question answering 태스크 입니다. BART 모델은 문제와 추가적인 문서를 붙인 것으로 컨디션을 주어 답을 생성합니다.  

XSum : 뉴스 요약 태스크로 많이 함축된 요약을 생성해야합니다.

ConvAI2 : 대화의 답변에 대한 generation 태스크로, context와 persona(화자)를 컨디션으로 줍니다.

CNN/DM : 뉴스 요약 데이터셋입니다. 이 데이터셋의 요약본은 입력 문서와 밀접하게 연관되어 있어 XSum 태스크와는 성격이 약간 다릅니다.

 

Results

결과 테이블입니다. 위에 설명한 사전학습 모델에 따른 성능 차이와 사전방습 방법론에 따라 각 태스크별로 달라지는 성능 차이를 알 수 있습니다.

대망의 실험 결과입니다! 위의 결과 테이블을 통해 저자가 알아낸 사실을 알아봅시다.

1) 사전 학습 방법론의 성능은 태스크별로 확연한 차이가 있다.

사전학습 방법론의 효율성은 태스크에 크게 의존합니다. 예를 들어, 간단한 언어 모델은 ELI5 데이터셋에 최고의 성능을 달성하였지만, SQuAD 태스크에서는 최악의 성능을 보인 것으로 알 수 있습니다.

2) 토큰 마스킹은 아주 중요하다.

Rotating Document나 Permuting Sentences기반 사전학습 방법론은 해당 목적 함수로만 훈련시켰을 때 성능이 좋지 않았습니다. 성공적인 방법론은 Token Deletion이나 Token Masking, 혹은 Self-Attention Mask를 사용하는 방법이었다고 합니다. 그 중 Token Deletion는 생성 태스크에서 Token Masking보다 더 좋은 성능을 보였습니다.

3) Left-to-right 기반 언어 모델은 생성 태스크에 효과적이다.

Masked Language Model과 Permuted Language Model은 생성 태스크에서 다른 것들보다 성능이 떨어졌고, 이 두 모델은 사전학습 단계에서 left-to-right auto-regressive 언어 모델링을 적용하지 않은 유이한 모델들입니다.

4) 양방향 엔코더는 SQuAD에서 아주 중요하다.

이전 연구에서는 left-to-right 디코더가 SQuAD 태스크에서 성능이 안좋다고 밝혔습니다. 왜냐하면 미래의 컨텍스트가 classification 태스크에서 중요하기 때문입니다. 그렇지만, BART는 절반의 양방향 레이어를 가지고도 비슷한 성능을 달성하여 BART 모델의 효과성을 보여준다고 주장하였습니다.

5) 사전 학습 방법론 이외에도 중요한 요소가 많다. 

저자가 실험에서 학습한 Permuted Language Model은 기존 XLNet보다 성능이 떨어졌습니다. 이에 대한 이유로 XLNet에서 제안한 relative-position embedding이나 segment-level recurrence와 같은 다른 구조적인 향상을 적용하지 않았기 때문이라고 하여, 사전 학습 방법론 이외에도 성능 향상에 중요한 요소가 많이 존재할 것이라고 주장하였습니다.

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

ELI5 태스크는 다른 데이터셋과 성질이 다른 Outlier(이상치) 입니다. 왜냐하면 다른 태스크보다 perplexity가 아주 높았고, 다른 모델이 BART보다 성능이 더 좋았던 유일한 generation 태스크였기 때문입니다. 해당 태스크에서는 순수한 언어 모델이 가장 성능이 좋았으며, BART가 느슨하게 연관되어있는 문서에 대해 출력을 내는 태스크에 덜 효과적이라는 것을 나타냅니다.

7) BART가 가장 일관성 있게 강력한 성능을 달성하였다.

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

 

Large-scale Pre-training Experiments

최근의 연구는 pre-training이 큰 배치 크기와 큰 corpora로 이루어 졌을때 다운스트림 태스크의 성능이 엄청나게 증가할 수 있다는 것을 보여주었습니다.(GPT가 대표적이죠?) BART도 이전 연구에서 밝혀낸 내용과 일치하는지 테스트하기 위해 그리고 여러 다운스트림 태스크에 유용한 모델을 만들기 위해, BART를 RoBERTa모델과 같은 스케일로 훈련시켰다고 합니다.

Experimental Setup

엔코더와 디코더를 각각 12개의 레이어로 두고, 1024의 hidden size로 둔 큰 모델을 사전학습하였습니다. RoBERTa의 등장 이후에, 사전학습으로 8000의 배치사이즈를 이용하였고, 모델을 500000step만큼 학습시켰습니다. 문서들은 GPT-2와 같은 Byte-Pair Encoding(BPE)을 이용하였습니다. 실험에서 알아낸 결과를 기반으로, Text Infiling과 Sentence Permucation을 조합한 사전 학습 함수를 이용하였습니다. 30%의 토큰을 각 문서에서 마스크하였고, 모든 문장을 섞었다고 합니다. 비록 Sentence Permutation이 CNN/DM 요약 데이터셋에서만 큰 성능 향상을 보이지만, 더 큰 사전 학습 모델이 이 태스크에서 더 잘 학습할 것이라는 가정을 하였습니다. 모델이 데이터를 더 잘 학습하게 하기 위해, 마지막 10%의 훈련 스텝에서는 dropout을 적용하지 않았다고 합니다. RoBERTa에서 제안한 Pretraining Data를 사용하였으며, 이 데이터셋은 뉴스, 책, 이야기, 웹 텍스트로 이루어진 160GB의 크기를 가지고 있다고 합니다.

Results

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

1. Discriminative Tasks

표를 통해 알 수 있는 사실은, BART의 경우 SQuAD, MNLI, STS-B와 같은 일부 태스크에서 RoBERTa보다 성능이 낮았다는 사실입니다. 그리고 그 이외의 태스크에서도 RoBERTa 모델과 성능적인 면에서 두드러진 향상이 보이지 않습니다.

위 표는 BART와 다른 언어 모델을 SQuAD와 GLUE 태스크에 적용한 것의 성능에 대해 비교한 표입니다. 가장 직접적으로 비교할 베이스라인은 RoBERTa입니다. RoBERTa는 같은 리소스로 사전 학습되었지만, 서로 다른 Pre-training objective로 훈련되었습니다. 전체적으로 BART는 대부분의 태스크에서 다른 모델들과 성능면에서 작은 차이밖에 일어나지 않았다는 것을 알 수 있습니다. 그러나 BART의 장점은 바로 Generation Task와 Translation Task에 있습니다! 여기서 설명하는 것은 생성 태스크에서의 성능 향상이 Discriminative Task에 대한 성능에 영향을 미치지 않았다는 것에 의미를 두고 있다고 합니다.

2. Generation Tasks

저자는 여러 생성 태스크에 대해 실험을 진행하였습니다. BART는 일반적인 seq2seq 모델 즉, input으로부터 output text를 만들어내는 모델입니다. BART의 fine-tuning 단계에서 label smoothed cross entropy loss를 사용하였고, smoothing parameter는 0.1로 설정하였다고 합니다. 또한 beam size를 5로 두었고, beam search에서 중복된 trigram을 삭제하고, min-len, max-len, length penalty를 validation set을 생성할 때 모델에 적용하였습니다. (생성 태스크에 대한 세부 기술이.. 많죠? 해당 기법들에 대해서는 텍스트 생성 모델에 대해 연구할 때 성능 향상을 위해 필수적으로 알아야 하는 지식입니다!) 

- Summarization 

CNN/DailyMail과 XSum에 대한 결과 테이블입니다. 생성 태스크는 Rogue Score를 통해 성능을 비교합니다. 높을수록 정답 문장과 모델이 예측한 문장과의 유사도가 높다는 뜻입니다.

문서 요약 태스크들의 SOTA와 비교하기 위해, 두 개의 서로 특징이 다른 요약 데이터셋, CNN/DailyMail과 XSum를 이용해 실험을 진행하였습니다.

 CNN/DailyMail의 요약은 주어진 문서의 문장과 닮은 것이 많다는 특징이 있습니다. 추출 모델이 이 태스크를 잘 수행하는 특징이 있어, 비교적 이전 연구로 만들어진 세개의 베이스 라인 모델들도 경쟁력 있는 성능을 보여주었습니다. 그럼에도 불구하고, BART는 BART이전까지(2019년) 존재하던 모든 모델보다 성능이 좋았습니다.

  그와 반대되게, XSum은 아주 함축적입니다. 따라서 추출 모델은 해당 태스크에서 약합니다. BART는 이전의 BERT를 활용한 SOTA 모델(BERTSUMEXTABS)보다 성능이 좋았고,  대략 6.0 ROUGE 메트릭 만큼의 향상을 보였습니다. 이는 해당 태스크에서의 상당한 성능 향상을 나타냅니다. 또한 질적으로도, 요약에 대한 질이 높았습니다.

- Dialogue

ConvAI2에 대한 결과 테이블입니다. BART는 다른 모델들과 비교하였을 때 Perplexity에서 큰 향상을 보였습니다.(F1 score는 크면 좋고, Perplexity는 낮으면 좋은 것입니다!)

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

- Abstractive QA

어려운 태스크인 ELI5에서도 BART는 Sota의 성능을 달성하였습니다.

마지막으로 저자는 ELI5 태스크를 이용해 모델의 긴 자유형식 답을 생성하는 능력을 테스트해보았습니다. BART가 이전의 최고의 연구 결과보다 1.2 ROUGE-L 더 좋았지만, 해당 데이터셋은 여전히 풀기 어려운 문제입니다. 왜냐하면 정답이 문제에서 잘 정의되지 않아 답을 유추하기 어렵다는 ELI5의 특징 때문입니다.

3. Translation Task

BART는 Sennrich.et al.이 제안한 Back-Translation Data Augmentation를 적용한 WMT16 Romanian-English 데이터셋으로 실험하였습니다. 6개의 추가적인 트랜스포머 엔코더 레이어를 도입해 루마이아어를 영어 표현으로 매핑하여 BART가 기존의 영어로 문제를 풀 수 있게 하였습니다. 자세한 모델 훈련 방법론은 위에 소개되어 있습니다. 그러면 결과를 확인해 봅시다.

기계 번역 태스크를 측정하는데는 대표적으로 BLUE 스코어를 사용합니다! 번역 레이블과 생성 텍스트간의 유사도를 측정하여 성능을 평가한다고 생각하면 됩니다!

해당 실험에서 베이스라인은 Viswani et al.이 제안한 기존 Large Transformer 모델로 두었습니다. (트랜스포머 논문은 기계 번역 태스크를 푸는 모델로 처음 제안되었다는거, 기억하시나요?) 또 다른 특징으로는 BART를 영어로 표현으로 매핑하는 6개의 레이어만 학습하고 나머지 파라미터는 freeze한 Fixed BART와 Fixed BART의 모든 파라미터를 한번 더 학습시킨 Tuned BART로 나누어 실험했다는 특징이 있습니다. 위에서도 말씀드렸듯 실험한 데이터셋은 기존의 WMT16 Romanian-English 데이터셋에 back-translation data augmentation 기법을 적용한 것을 사용하였습니다. 또한 beam width 5를 주고 length penalty를 1.0으로 주었다고 합니다. back-translation data augmentation을 적용하지 않으면 BART 모델의 성능이 별로 효과적이지 않았고, 오버피팅 될 확률이 높았다고 합니다.(데이터의 중요성을 아시겠죠?)

 

Qualitative Analysis

BART가 문서를 요약한 출력 결과. 자동화된 매트릭 측정법 뿐만 아니라 결과의 질적으로도 만족할만한 결과를 나타낸다는 것을 보여줍니다.

이때까지의 결과를 바탕으로 알 수 있는 것은, BART가 바로 요약 태스크(Abstractive Task)에 큰 강점을 보인다는 것입니다. 특히 XSum 데이터와 같은 경우는 기존 SOTA보다 6 Rogue Score만큼 증가하였습니다. 그러나 BART의 성능을 자동화된 메트릭을 이용하지 않고 이해하기 위해, 생성 문장의 질을 직접 분석하였다고 합니다. 위의 결과는 BART로 생성한 몇몇 입력 문서에 대한 요약의 결과입니다. 예시에 사용된 문서들은 사전 학습 코퍼스에 존재하지 않은 WikiNews 기사로 부터 가져와, 모델의 훈련 데이터에 존재할 수 있는 문서가 포함될 확률을 제거하였다고 합니다. 가장 중요한 내용을 담고 있는 기사의 첫번째 문장을 삭제하여 요약을 진행하였고, 따라서 입력 문서의 요약이 쉽지 않게 만들었습니다.

위의 결과를 보면 아시겠지만, 모델의 출력은 유창하고 문법적인 영어였습니다. 그와 동시에 모델의 출력은 또한 아주 함축적이었으며, 적은 phrase가 입력으로부터 복사된 것을 알 수 있습니다. 출력은 또한 일반적이고 사실적으로 정확하였으며, 배경 지식과 입력 문서에서 뒷받침하는 증거들을 넣었습니다. (예를 들어, 알맞게 고유 명사를 출력하고 캘리포니아에서 PG&E가 작동하고 있다는 것을 추측하는 것 등이 있습니다.) 첫번째 예시를 살펴봅시다. 요약을 보면 물고기가 지구 온난화로부터 암초(reef)를 보호하고 있다는 내용을 출력하였는데, 이를 추측하기 위해서는 텍스트로부터 적지않은 추론이 필요합니다. 그러나, 이를 뒷받침하는 근거로 해당 주장이 Science지에 올라온 논문이라고 하였는데, 이는 원본 문서에서 뒷받침 하지 않은 내용입니다! (해당 내용이 거짓일 수 있는 위험한 추론입니다. 이 때문에 인공지능이 생성한 텍스트에 대한 교차검증은 필수적입니다.) 저자는 이러한 요약 예시들은 BART 사전 학습이 강한 자연어 이해와 생성을 결합하여 학습하였다는 것을 의미한다고 주장하였습니다.

 

Conclusions

자 오늘 알아본 내용은 바로 BART입니다. BART는 손상된 문서를 기존 문서로 매핑하는 것으로 학습하는 사전학습 방법론을 이용한 모델입니다. BART는 Discriminative Task에서 RoBERTa와 비슷한 성능을 보였으나, 여러 텍스트 생성 태스크에서 SOTA의 성능을 달성하였습니다.

이번에 리뷰한 내용을 어떠셨나요? 사전 학습 방법론과 언어 모델에 대한 서베이 논문과 같은 인상을 받았을 것 같습니다. 그러나 많고 체계적인 실험을 바탕으로 알아낸 여러 인사이트들이 흥미롭고, 또 유용한 내용이었습니다. 저는 최근까지도 많은 논문을 보았지만, 요새 나오는 버트 기반 모델들은 구조적인 결함이나 향상을 꾀하기 보다는 데이터셋에 대한 고찰과 훈련 방법에 대한 내용이 많은 것 같습니다. 여러분들도 신경망 기반 모델을 실험할 때 여러 훈련 기법들에 대해 진지하게 생각하고, 내 아이디어를 효과적으로 적용할 수 있는 훈련방법에 대한 고찰을 충분히 하시길 바랍니다. 그러면 이번 리뷰는 여기서 마치고 다음번에도 좋은 논문으로 찾아뵙겠습니다!

 

https://arxiv.org/abs/1910.13461

 

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

We present BART, a denoising autoencoder for pretraining sequence-to-sequence models. BART is trained by (1) corrupting text with an arbitrary noising function, and (2) learning a model to reconstruct the original text. It uses a standard Tranformer-based

arxiv.org

 

반응형