.box_article .article_cont p code

상세 컨텐츠

본문 제목

3. BART: Denoising SequencetoSequence Pretraining for Natural Language Generation Translation and Comprehension 논문 리뷰

심화 스터디/NLP 스터디2

by 용가 2021. 9. 25. 21:31

본문

0. Abstract

BART

  • 임의로 noise를 주어 텍스트를 손상 시킨 후 원래 텍스트를 재구성하기 위한 모델을 학습하는 (denoising autoencoder) 사전 학습 모델
  • Transformer 아키텍처를 기반으로 하는 사전 학습 모델

본 논문에서는 다양한 작업에서 최상의 성능을 갖는 BART의 실험 결과를 보이고 있음

 

1. Introduction

<denoising autoencoder>

  • NLP 작업에서 가장 성공적인 성과를 보여준 Self-supervised 접근 방식인 마스크 된 언어 모델(MLM)의 변형 → 단어의 임의 하위 집합이 마스크 된 텍스트를 재구성하도록 학습된 구조 (ex. BERT)
  • 그러나 이러한 방법은 일반적으로 특정 유형의 end task에 초점을 맞추고 적용 가능성이 떨어진다는 한계가 있음 (ex. BERT → NLU, GPT → NLG 등)

Bidirectional 및 Auto-Regressive Transformer를 결합한 모델을 사전 학습하는 BART를 제시

BART : encoder의 input과 decoder의 output의 순서가 같을 필요가 없기 때문에 임의의 noising이 적용 가능 / fine-tuning 시, encoder와 decoder 모두에 변형되지 않은 텍스트를 input으로 전달

 

i. BERT: bidirectional encoder

- 임의 토큰이 masked + 양방향으로 encoded

- 빠진 토큰은 독립적으로 예측 (→ 생성 task에는 잘 사용되지 않음)

 

ii. GPT: left-to-right decoder

-토큰이 auto-regressive하게 예측 (→ 생성에 사용될 수 있음)

-단어들이 왼쪽의 context만을 기반으로 하고 있어서 bidirectional 상호작용을 학습할 수 없음

 

<BART>

BERT(Bidirectional Encoder), GPT(left-to-right Decoder) 등의 사전 학습 Transformer 기반의 아키텍처를 사용

seq2seq 모델(encoder-decoder)로 구축된 denoising auto encoder

⇒ 광범위한 end task에 적용 가능 + noising flexibility를 가짐

(텍스트 생성을 위해 fine tuning 할 때 특히 효과적이지만 이해 작업에서도 잘 작동)

 

 

2. Model

corrupted text에 대해 bidirectional encoder와 left-to-right autoregressive decoder를 적용한 seq2seq model

→ pre-training 과정에서는 원래 문서에 대해 negative log likelihood를 최적화

2.1 Architecture

BART

  • encoder, decoder 모두 6개의 층으로 구성 + ReLU 대신 GeLU 활성화 함수 사용
  • 표준 seq2seq Transformer 아키텍처를 사용 → BERT와 밀접한 관련이 있지만 두 가지 차이점 존재
    • decoder의 각 계층은 (Transformer seq2seq 모델에서 같이) encoder의 최종 은닉 계층에 대해 cross-attention을 추가로 수행
    • BART는 BERT와 달리 단어 예측 전에 additional feed-forward network를 사용하지 않음

2.2 Pre-training BART

BART

  • 문서를 손상 시킨 다음 재구성하는 방식으로 학습 → decoder 출력과 원본 문서 사이의 cross entropy를 손실 함수로 사용해 업데이트
  • 어떠한 유형의 문서 손상이든 적용 가능

⇒ 본 논문에서는 몇 가지 새로운 변형으로 실험 진행

Token Masking

BERT처럼 임의로 토큰이 추출된 후 [MASK] 토큰으로 대체

 

Token Deletion

입력에서 임의의 토큰이 삭제. Token Masking과 대조적으로, 모델은 입력이 누락된 위치 (삭제된 토큰의 위치)를 결정

 

Text Infilling (중요!)

포아송 분포(lambda=3)에서 추출한 범위 길이(0~6)와 함께 여러 텍스트 길이가 표본으로 추출 → 각 길이 만큼의 토큰이 단일 [MASK] 토큰으로 대체 (길이 0: [MASK] 토큰 삽입을 의미)

⇒ 모델은 누락된 토큰 수를 예측하도록 학습

 

Sentence Permutation

full stop을 기준으로 문장들을 나누고 이를 임의의 순서로 섞음

 

Document Rotation

토큰은 무작위로 균일하게 선택되고 문서는 해당 토큰으로 시작되도록 rotate (→문장의 순서 바꿈)

⇒ 모델은 문서의 시작을 식별하도록 학습

 

3. Fine-tuning BART

3.1 Sequence Classification Tasks

encoder와 decoder에 동일한 입력이 공급 → decoder의 최종 은닉 상태는 새로운 다중 클래스 선형 분류기에 전달

(BERT의 CLS토큰처럼, 마지막 토큰의 representation까지 추가해 전체 input에 대한 decoder의 attention 계산 가능하게 함)

3.2 Token Classification Tasks

전체 문서를 encoder와 decoder에 입력 → decoder의 최상위 은닉 상태를 각 단어의 표현으로 사용

⇒ 이 표현은 토큰을 분류하는 데 사용

3.3 Sequence Generation Tasks

(abstractive question answering, summarization ∵BART's autoregressive decoder)

BART의 ****auto regressive decoder로 인해 sequence 생성 작업에 대해 직접 fine tuning 가능

→ Encoder에 완전한 입력을 넣어주면 decoder가 auto regressive하게 한 개씩 출력해 해당 task에 대한 fine tuning을 진행

3.4 Machine Translation

전체 BART 모델(encoder와 decoder 모두)을 기계 번역을 위한 사전 학습된 decoder로 사용 → 이 과정에서 BART의 encoder 임베딩 계층을 무작위로 초기화된 새로운 encoder 계층으로 교체해 fine tuning

⇒ 새롭게 학습된 encoder는 다른 나라의 언어를 BART가 denoise할 수 있는 영어로 대체 (서로 다른 언어는 noise 학습이 안되기 때문)

  • source encoder 훈련 방법
    1. 무작위로 초기화된 source encoder, BART positional embeddings, self-attention input projection matrix만 업데이트 (다른 BART parameter는 고정)
    2. 적은 수의 반복으로 전체 모델 parameter 훈련시킴

 

4. Comparing Pre-training Objectives

BART 기본 크기 모델(인코더 6개 및 디코더 6개 계층, hidden size 768)을 사용하여 다양한 옵션을 비교

4.1 Comparison Objectives

본 논문에서 모델의 구현을 BERT paper의 성능과 비교 (BERT는 책과 위키피디아 데이터의 조합에 대해 1백만 단계의 학습을 진행)

동일한 조건에서 학습 후 성능 비교한 결과 BART(Text infilling + Sentence shuffling)이 가장 일정하고 훌륭한 성능 보임

 

Masked Language Model

15%의 토큰을 [MASK] 기호로 대체하고 원래 토큰을 독립적으로 예측하도록 모델을 학습 (BERT)

 

Masked Seq-to-Seq

50%의 토큰을 포함하는 범위를 마스킹하고 마스킹 된 토큰을 예측하기 위해 seq2seq 모델을 학습 (MASS)

 

Language Model

왼쪽에서 오른쪽으로 Transformer 언어 모델을 학습 → cross-attention 없이 BART decoder와 동일 (GPT)

 

Permuted Language Model

토큰의 1/6을 추출하여 임의 순서로 auto regressive 하게 생성 (XLNet)

 

Multitask Masked Language Model

추가적인 self-attention masks와 함께 마스크 된 언어 모델을 학습 (UniLM)

4.2 Tasks

  • SQuAD: 주어진 문서 context 속에서 일정한 길이의 답변 추출 (질문과 답변 병합한 걸 BART encoder의 input으로 넣고 이걸 decoder에 넘김)
  • MNLI: 한 문장이 다른 문장을 함의하는지 bitext classification
  • ELI5: long-form abstractive question answering dataset / question, supporting documents을 병합한 것으로부터 답 제공
  • XSum: abstractive summaries (news summarization dataset)
  • ConvAI2: context, persona에 따른 dialogue response generation
  • CNN/DM: source sentence와 관련 높은 summary 제

4.3 Results

사전 학습 방법의 성능은 task마다 크게 다름

ex) simple LM 모델은 ELI5 성능이 가장 우수 but SQUAD에서의 결과는 최악

 

토큰 마스킹이 매우 중요

문서 rotation 또는 문장 permutation는 단독으로는 잘 수행되지 않음 → 성공적인 방법은 토큰 삭제 또는 마스킹 또는 self-attention 마스크를 사용하는 것

!특히 토큰 삭제가 생성 작업에서 마스킹보다 성능이 뛰어남

 

왼쪽에서 오른쪽으로 사전 학습으로 생성 성능 개선

마스킹 언어 모델과 순열 언어 모델은 생성 시 다른 모델보다 성능이 떨어지며 사전 학습 중에 left-t-right auto-regressive 언어 모델링을 포함하지 않는 유일한 모델

 

Bidirectional encoders는 SQuAD에 매우 중요

elft-to-right decoder는 SQuAD에서 성능이 떨어짐 (← 뒷부분의 맥락이 분류 결정에 중요하기 때문)

그러나 BART는 bidirectional 계층의 절반만 사용해도 유사한 성능을 달성

 

사전 학습 방식만이 중요한 요소는 아님.

본 논문에서 Permuted Language Model은 XLNet보다 성능이 낮음 → 이러한 차이 중 일부는 상대적 position embeddings 또는 segment-level recurrence와 같은 다른 아키텍처 개선을 포함하지 않기 때문.

 

순수 언어 모델은 ELI5에서 가장 우수한 성능을 발휘

ELI5 데이터 셋은 다른 작업보다 훨씬 높은 난이도를 가지며, 다른 모델이 BART를 능가하는 유일한 생성 작업

→ 순수 언어 모델은 출력이 입력에 의해 오직 느슨하게 제한될 때 BART가 덜 효과적이라는 것을 암시

 

BART는 가장 지속적으로 강력한 성능을 달성

ELI5를 제외하고 text-infilling을 사용하는 BART 모델은 모든 작업에서 우수한 성능을 발휘

 

5. Large-scale Pre-training Experiments

RoBERTA 모델과 동일한 스케일을 사용하여 BART를 학습

5.1 Experimental Setup

  • 각 encoder와 decoder에 12개의 계층과 1024의 hidden size를 가진 대형 모델을 사전 학습
  • 4장의 결과를 바탕으로 text infilling과 sentence permutation의 조합을 사용 → 각 문서에서 토큰의 30%를 숨기고 모든 문장을 permute

5.2 Discriminative Tasks

다른 목표이지만 같은 resource로 사전훈련되었던 RoBERTa와 비교해봤을 때, 대부분의 task에서 거의 비슷한 성능을 보임

→ BART의 generation tasks에서의 성능 향상이 classification 수행을 약화시켜서 얻은 결과가 아님을 보여줌

5.3 Generation Tasks

BART의 Fine-tuning

  • standard seq2seq model로 fine-tuning
  • label smoothed cross entropy loss 사용
  • beam search 과정에서 반복되는 trigram 삭제

Summarization

BART가 요약에 대해 이전 모델들의 성능을 능가함

i. CNN/DailyMail dataset

  : extractive model이 좋은 성능을 보임

ii. XSum dataset

  : abstractive model이 좋은 성능을 보임

 

Dialogue

BART가 대화 응답 생성에서 이전 모델들의 성능을 능가함

 

Abstractive QA

BART가 long free-form 답변 생성해야 하는 ELI5 abstractive QA 데이터 셋에서 SOTA를 달성

→ 각 질문에 특정한 답변을 보이기는 약함

 

5.4 Translation

본 논문에서는 6 계층의 Transformer encoder를 사용하여 루마니아어를 영어로 noise를 제거할 수 있는 표현으로 mapping

→ 해당 결과를 Transformer-대형 설정(기준 행)이 있는 baseline Transformer 아키텍처와 비교

⇒ 위 접근 방식이 역방향 데이터가 없으면 덜 효과적이고 과대 적합하기 쉽다는 것을 시사 (정규화 필요)

 

6. Qualitative Analysis

자동화된 측정 기준 이상의 BART의 성능을 이해하기 위해, 추가적으로 BART의 생성을 질적으로 분석 → WikiNews 기사에서 요약하기 전에 기사의 첫 번째 문장을 삭제해 요약 수행

⇒ 출력물은 일반적으로 사실적으로 정확하며, 입력 문서 전반에 걸친 지원 증거를 배경 지식과 통합 (이러한 샘플은 BART 사전 학습이 자연어 이해와 생성의 강력한 조합을 학습했음을 입증)

 

7. Related Work

(생략)

8. Conclusions

BART: 손상된 문서를 원본에 mapping하는 방법을 배우는 사전 학습 접근 방식

  • 분류 task에서 RoBERTa와 비슷한 성능을 보이면서 여러 텍스트 생성 task에서 SOTA 달성
  • 앞으로 사전훈련을 위해 문서를 corrupt할 새로운 방법에 대한 연구 필요 (특정 end tasks에 맞추는 식으로)

 

*참고

https://www.youtube.com/watch?v=VmYMnpDLPEo

관련글 더보기

댓글 영역