BERT와 BART 비교하면서 간단하게 알아보기(+greedy, beam, exhaustive search)

BART는 기계 독해, 기계 번역, 요약, 대화 등 sequence to sequence 문제의 pre training을 위한 denoising autoencoder

 

 

1. BERT와 BART

 

BERT는 transformer의 encoder만 활용했음

 

각 단어의 encoder embedding을 가져와 embedding을 수치화시킨 뒤 정답의 시작과 끝의 위치를 알아맞추는 extraction에 어울림

 

BART는 transformer의 encoder와 decoder가 모두 존재하여 encoder에서 input의 encoding을 수행한 뒤

 

encoding을 바탕으로 decoder에서 decoding을 통해 실제 text를 generation할 수 있어서 generation based MRC의 기본 모델로 사용가능

 

 

2. pretraining

 

BERT는 pretraining 단계에서 단어를 masking하여 알아맞추는 masked language modeling을 활용

 

GPT는 decoder만을 활용하여 현재 주어진 sequence에서 다음 단어를 알아맞추는 autoregressive language modeling을 수행함

 

 

 

 

위 그림처럼 BART는 BERT처럼 bidirectional한 encoder와 GPT처럼 unidirectional한 decoder를 활용한 encoder, decoder 구조로 이루어짐

 

pretraining시 하나의 방법은 masking을 encoder input에서 하여 masking된 input으로 encoding vector를 구하고

 

그것을 바탕으로 decoder에서 다음 정답을 생성하는 방식을 사용할 수 있음

 

decoder같은 경우 attention mask를 활용하여 이전 단어를 보지 않고 다음 단어를 예측하도록 만들수 있음

 

실제로 논문에서는 BART의 pretraining 방법으로 input에 임의의 random noise를 주입한 뒤 noise 없는 원래 버전을 reconstruct하는 문제를 수행했음.

 

이래서 BART의 논문 제목에는 denoising autoencoder라고 불렀음

 

BART 논문에서 언급한 noise를 주입한 기법들

 

 

3. post processing in generation MRC

 

BART같은 generation based MRC는 decoding 방식으로 text를 generation함

 

이전 step의 예측 출력을 다음 step의 input으로 들어가는 decoding 방식

 

decoder에서 맨 처음 입력은 이전 step의 출력이라는 것이 없으므로 보통 <s>, <sos>같은 문장의 시작을 나타내는 special token을 주입

 

decoder의 일반적인 방식

 

 

첫 input <s>은 문장의 시작을 나타내는 special token

 

이전 step의 출력을 다음 step의 input으로 넣어 하나씩 단어를 생성

 

 

4. greedy search

 

보통 단어를 생성할 때 매 순간순간 가장 likely할것 같은 단어 하나를 생성함

 

이 순간 가장 확률이 높은 단어 하나를 생성하고 다음 예측을 진행해나감

 

효율적이고 빠르게 생성할 수 있지만 초반에 예측한 단어가 나중에 알고보니 최적이 아닐 수 있음

 

 

5. exhaustive search

 

그러면 매 순간순간 예측할 수 있는 모든 단어를 고려한 뒤 최종 예측에서 가장 score가 높은 예측을 사용

 

반드시 정답을 찾을 수 있겠지만 가능한 경우의 수가 time step에 지수적으로 비례하여 증가함

 

조금만 vocab size가 커지면 사실상 계산이 불가능함

 

 

6. beam search

 

greedy와 exhaustive의 중간형

 

각 time step마다 가장 점수가 높은 top-k 경로들만 활용하여 예측을 진행

 

요즘 거의 대부분은 이 방식을 활용

 

최종 step에도 k개의 후보가 있을 텐데 이들 중 가장 점수가 높은 후보를 최종 예측으로 출력

 

greedy search, exhaustive search, beam search의 직관적인 비교

 

 

 

 

 

TAGS.

Comments