BERT는 unlabeled text 로부터 deep bidirectional representations을 사전 학습후 이를 Downstream Task에 파인튜닝 할수 있게 설계된 모델이라고 설명합니다.
또한 하나의 출력 층을 사전 학습된 BERT모델에 결합하면 Question Answering, Language Inference등과 같은 영역에서 최신의 그것을 달성한다고 합니다.
연구진들은 Language model의 사전 학습은 이전부터 연구 되어져 왔었고 task-level(문장간의 관계 추론…),token-level(개체명 인식, Q&A…) 두 영역 모두의 영역에서 좋은 성능을 보여왔다고 설명
downstream task 에서의 pre-trained language representation의 적용 방법은 크게 두가지가 존재함
가장 대표적인 예시로는 ELMo(Embeddings from Language Model) → pre-trained language representations를 하나의 feature로 사용해서 task-specific architecture를 사용
가장 대표적인 예시로는 GPT(Generative Pre-trained Transformer) → task-specific 파라미터 수를 줄이고 pre-trained 파라미터를 수정해서 downstream task를 수행
이 두가지와 BERT의 구조를 비교하면 다음과 같습니다.
위의 feature,fine-tunning방식 둘 다 사전 학습 과정에서 unidirectional language model를 사용
연구진들은 해당 두가지 방식 특히나 fine-tunning approach가 representation pre-training의 성능을 저하 시킨다고 말합니다. 그 예시로 GPT에 대해서 설명하는데 GPT와 같은 단방향 언어모델의 경우 모든 토큰이 이전토큰과의 어텐션만을 계산하기에 Sentence-level에서는 앞뒤 토큰 모두와의 attention을 계산하는 것 대비 차선책에 불과하다고 설명합니다.
최선책: 이전,이후 토큰 모두와의 attention / 차선책: 이전 토큰과의 attention만 계산
즉, 연구진들은 양방향을 띄는 Context의 중요성을 강조하며 이를 충족하는 모델이 BERT라고 주장한다.
BERT는 MLM(Masked Language Model)을 pre-training 목적으로 사용하서 단방향성 언어보델에서 생기는 문제를 완화 했다고 주장합니다.
MLM(Masked Language Model: 일부가 랜덤하게 마스킹된 입력 토큰과 해당 토큰으로만 구성 된 문장을 기반으로 해서 마스킹된 토큰의 원래 토큰을 예측하는 모델. 이를 통해 deep bidirectional Transformer를 가능하게 한다. 게다가 text-pair representations로 pre-train 하게되면 NSP(Next Sentence Prediction)또한 수행 가능 할것 이라고 주장 합니다.
기존의 language representation을 pre-train하는 방법론 중 일부를 간단하게 확인
수십 년 동안 널리 적용 가능한 단어 표현을 학습하는 것이 활발한 연구 분야였습니다. 여기에는 비신경망 방식과 신경망 방식으로 나뉘며 사전 훈련된 워드 임베딩은 현대 NLP 시스템의 필수적인 부분이 되었습니다.
이는 처음부터 학습한 임베딩보다 상당한 성능 향상을 제공합니다. 이러한 접근 방식은 문장 임베딩(sentence embedding)이나 단락 임베딩(paragraph embedding)과 같은 더 큰 단위로 방향으로 이어져 왔습니다.
BERT이전의 sentence representations 학습
ELMo와 같은 후속 모델의 경우 전통적인 워드 임베딩 연구에서 한단계 더 발전했고 정방향,역방향 언어 모델을 통해서 context-sensitive feature를 추출 해내는 방식(위에서 언급 한것 처럼 단순 Concat이기에 생성된 contextual representation 은 shallow bidirectional임)
해당 방식이 deep bidirectional 하지 않음에도 ELMo는 질문 답변, 감성 분석, 개체명 인식 등 여러 주요 NLP 벤치마크에서 최고 성능을 달성했습니다.
초기 feature-based 방식에 대한 연구는 라벨되지 않은 텍스트로 부터 워드 임베딩 파라미터를 pre-train하는 방향으로 수행되었습니다.
최근에는 contextual token representation을 만들어 내는 인코더가 pre-train 하고 supervised down stream task에 맞춰 파인 튜닝 되어 처음부터 학습하는데 많은 파라미터가 필요하지 않다고 설명합니다
대규모 데이터셋에서의 전이 학습은 효과적이고 자연어 처리 뿐만 아니라 컴퓨터 비전에서도 사전 학습을 한 모델의 성능상 이점을 가진다고 이야기 합니다.
해당 논문에서는 모델을 Pre-training, Fine-tuning part 두 분류로 나눠 설명합니다.
Pre-training part는 다양한 Pre-training task들의 라벨링 되지 않은 데이터로 초기 파라미터를 설정 하고 Fine-tunning part에서 downstream task들의 다벨링된 데이터를 이용해 파인 튜닝 됩니다.
이미지 처럼 항상 동일한 pre-trained model의 파라미터가 서로다른 downstream task의 초기 값으로 설정되고 이는 파인튜닝과정에서 조정 되어 사실상 동일한 구조를 사용하게 된다.
BERT의 구조는 multi-layer bidirectional Transformer encoder로 양방향 트랜스포머 인코더를 여러층 쌓은 구조이다.(base: L=12, H = 768, A=12→ 110M large: L=24, H=1024, A=16→ 340M)
base 모델의 파라미터수는 GPT와의 비교를 위해 동일하게 만들어 진행하였고 이를 통해서 GPT와의 차이점이자 GPT의 단점이 이전의 토큰과만의 어텐션을 계산하는 constrained self-attention이 사용되는 것을 확인 할수 있으며 BERT는 bidirectional self-attention을 사용합니다.
BERT가 다양한 dowstream task들에 적용되기 위해서는 인풋이 애매해서는 안되며 이는 하나,한 쌍의 문장을 하나의 토큰 시퀀스로 표시되어야 합니다.(한쌍: Q&A 형식의 질답 형태)
문장의 쌍의 하나의 시퀀스로 묶여야 하지만 이는 토큰 [SEP],[SEP]를 통해서 분리를 보여주고 모든 토큰에 대해서 어느 문장인지를 표시하는 학습된 임베딩을 추가합니다.
BERT에서 사용하는 tokenizer는 WordPiece 임베딩 방식입니다.
모든 문장의 처음은 [CLS]고 이를 통해 마지막 분류시에 분류에 대한 값이 해당 토큰의 결과
각각의 레이러를 통해 나타나는 임베딩을 E로 표시하고 tokenizer embedding, Segment Embedding(문장 쌍이라면 어디 속하는지), 그리고 Position Embedding을 진행 한다.
WordPiece(Token) Embedding : 실질적인 입력이 되는 워드 임베딩. 임베딩 벡터의 종류는 단어 집합의 크기로 30,522개
Segment Embedding : 두 개의 문장을 구분하기 위한 임베딩. 임베딩 벡터의 종류는 문장의 최대 개수인 2개
Position Embedding : 위치 정보를 학습하기 위한 임베딩. 임베딩 벡터의 종류는 문장의 최대 길이인 512개
언어 모델이 아무런 제약조건 없이 Bidirectional하게 학습을 하게 되면 간접적으로 예측하려는 단어를 참조하게 되고, multi-layered 구조에서 해당 단어를 예측할 수 있기 때문이다.
연구진들은 이를 해결하기 위해 다음 단어가 무엇이 오는지 예측하는 학습이 아니라, 문장 내에서 무작위로 입력 토큰의 일정 비율을 마스킹하고, 그 다음 마스킹된 토큰들을 예측한다. 이를 줄여서 MLM이라 부른다.
이 경우에,마스크 토큰에 해당하는 마지막 hidden vector는 일반적인 언어모델 처럼 어휘를 통해 출력 소프트맥스로 주어지고 단어를 예측하게 된다.
BERT는 WordPiece 토큰의 15%를 무작위로 각 시퀀스에서 마스킹한다. 이때 BERT는 문장을 복구하는 것이 목표가 아니라 마스킹 된 토큰의 원본 예측이 목표가 된다.
이를 통해 양방향으로의 학습이 가능해지지만, fine-tuning 중에 [MASK] 토큰이 나타나지 않기 때문에(빈칸 단어 예측은 그냥 빈칸 단어로 주어지기 때문), 사전 훈련과 fine-tuning 사이에 불일치를 만들어내는 단점이 있습니다.
훈련 데이터를 생성할 때에 예측을 위해 무작위로 토큰의 15%를 선택한다. 만약 i 번째 토큰이 선택된다면, i 번째 토큰을
- 80%는 [MASK] 토큰으로 교체
- 10%는 다른 토큰(단어)으로 교체
- 10%는 변형 없이 사용
결과적으로 모델은 변경이 된 단어에 대해 적합한지를 판단해 예측을 하게 된다.
위의 학습과 동시에 BERT는 Q&A,NLI(Next Sentence Inference)에서 사용되기 위해 두개의 문장을 제공하고 문장들간의 관계를 확인하는 훈련도 거치게 된다. 이때 문장들은 1/2 확률로 서로 이어지는 문장으로 설정되어 사용 됩니다.
추가적으로 해당 구분과정에서 [SEP] 토큰이 사용된다. 각 문장이 다른 문장임을 보여주기 위해서 각 문장의 마지막에 [SEP] 토큰을 넣습니다.
[CLS]토큰의 경우에는 분류 문제를 해결하기 위해 추가된 토큰이며 문장이 이어지는 문장인지에 대한 예측을 하게 된다.
NSP와 MLM은 각자의 손실값을 합하여 학습이 동시에 이루어 지는 구조
뒤의 Ablation Study에서는 해당 NSP 훈련을 하지 않을 경우 모델의 성능이 많이 감소한다고 명시되어있습니다.
사전 학습된 BERT를 downstream task들의 데이터를 통해 추가로 학습시켜 검증과 테스트를 거치게 된다.
특히나 텍스트 쌍이 포함되는 경우 일반적으로 각각의 텍스트 쌍을 인코딩한 이후 bidirectional cross attention를 수행하고 이는 Transformer를 통해 Self-Attention 매커니즘을 사용해서 두 단계를 통합하며 이를 효과적으로 수행하게 됩니다.
이를 통해 BERT는 적절한 입출력을 교체하는 방식으로 Fine-tuning을 하게되고 논문에서는 네 개의 예시를 설명합니다.
BERT는 총 11개의 NLP 분야에서 학습을 시켰고 이들을 종합해서 평가합니다.직전에 나온 모델이 ELMO와 GPT-1이기 때문에 둘 과의 비교위주의 내용이 담겨 있다.
General Language Understanding Evaluation의 약자로 “강건하고 범용적인 자연어 이해 시스템의 개발”이라는 목적을 가지고 제작된 데이터셋 입니다.
Input sequence가 입력으로 들어가게되면 처음의 [CLS] 토큰에서 Hidden vector가 출력되고 이를 GLUE task에 적합하게 가중치를 곱한뒤 softmax를 통해서 결과를 도출해 냅니다.
![]() | ![]() |
---|
Stanford Question Answering Dataset의 약자로 Q&A를 위해 구성된 데이터셋으로 질문에 대한 정답을 답변에서 찾아내는 방법으로 진행
주어진 문장(Q+A)에서 어디서부터 어디까지가 정답에 해당하는 영역인지를 예측하는 모델을 학습한뒤 평가하며 주어진 문장내의 토큰이 정답의 시작과 끝 토큰이 될 확률을 구하는 것으로 확률은 다음과 같이 계산이 가능 합니다.
SQuAD 2.0은 주어진 문장에서 답이 없는경우를 포함하고 있어 SQuAD보다는 조금 까다로운 Dataset이다. 그리고 그런 경우에는 [CLS]토큰에 결과가 나타나게 된다.
인간의 능력에는 미치지 못하였지만, 기존의 baseline에 비해서는 매우 우수한 성능을 확인할 수 있습니다. 이것을 예측하는 수식은 답변이 있는 문장이라면, 기존 수식과 동일하게 진행합니다.
The Situations With Adversarial Generations의 약자로 라고 불리는 방식은 앞 문장이 주어지고, 보기로 4 문장이 주어진다. 그 주어진 문장중에서 가장 잘 어울리는 문장을 찾는 sentence pair inference task 이다.
Fine tuning 하기 위해, 앞 뒤 문장중 가능한 경우의 수의 문장들을 묶어 하나의 문장으로 만들고 그 이후 GLUE를 학습할때와 동일하게 [CLS] 에 대응하는 C토큰과 A 문장 이후에 나타나는 문장의 token의 dot product 한다. 이를 score 로 삼고, softmax를 통해 결과 값을 도출한다.
Ablation이란 학습이 사용되는데 사용되는 요소의 일부를 제거하는 것으로 이를 통해 제거한 부분이 전체적인 시스템의 성능에 기여하는 바를 연구합니다.
이는 제안한 요소가 모델에 어떠한 영향을 미치는지 확인하고 싶을 때, 이 요소를 포함한 모델과 포함하지 않은 모델을 비교하는 것을 말합니다.
여기서는 NSP(Next Sentence Prediction), model size, feature-based Approach with Bert 이렇게 세가지로 나눠서 Ablation Study를 진행했습니다.
LTR & No NSP: 순방향의 언어모델을 사용하고 NSP를 사용 하지 않은 경우 모든 영역에서의 성능이 하락하는 모습을 볼수 있습니다. 다만 BiLSTM을 추가해서서 양방향 모두를 고려하는 경우 성능이 다시 상승하는 모습으로 보아 bidirectional한 요소가 성능에 영항을 미치는 것을 파악할 수 있습니다.