BERT(Bidirectional Encoder Representations from Transformers)
unlabeled data로 모든 layer에서 양방향 학습을 진행
-> 모델이 각 토큰에 대해 전후 맥락을 동시에 고려하도록 함
pre-training with unsupervised learning이 많은 task의 성능 향상을 가져옴
ex) Sentence-level tasks : NLI(자연어 추론), paraphrasing
ex) Token-level tasks : Entity recognition, QA(question answering)
pre-trained language representation을 downstream task에 적용하는 방법
1.feature-based
2.fine-tuning
ELMo : task specific arch + pretrained representation.
ELMo는 양방향 LSTM을 사용하여 각 문장을 왼쪽에서 오른쪽, 오른쪽에서 왼쪽의 두 가지 방향으로 처리. 하지만 ELMo는 BERT처럼 모든 레이어에서 양방향을 동시에 조건화하는 것이 아니라, 각각의 단방향 모델의 출력을 결합하는 방식으로 양방향성을 구현. BERT와 비교하면, 문장의 모든 레이어에서 양방향 맥락을 동시에 참조하지는 못함.
GPT : undirectional language model.
self-attention 레이어가 이전 토큰들만을 바라보며 학습. 이로 인해 문장 생성에는 뛰어나지만, 모든 문맥을 동시에 이해하기에는 제한적.
=> 단방향성이 앞에서 언급한 두 문장의 관계성을 파악하는 작업(NLI, Paraphrasing)이나, QA와 같은 토큰 수준의 작업에서 성능이 제한적이게 됨.
pre-training deep bidirectional Transformer
input: [CLS] + 문장1 + [SEP] + 문장2 + [SEP]
Masked Language Model (MLM) + Next Sentence Prediction(NSP)
MLM : 입력 문장에서 일부 단어(토큰)를 무작위로 [Mask] 토큰으로 마스킹하고, 마스킹된 단어를 문맥을 기반으로 예측하는 것이 목적
NSP : 두 개의 문장이 주어졌을 때, 두 번째 문장이 첫 번째 문장의 다음에 이어지는 문장인지 아닌지를 예측하도록 학습. [CLS] 토큰에 해당하는 출력을 기반으로 NSP 여부를 판단하는데, [CLS] 토큰의 표현이 두 문장의 전체적인 관계를 나타내도록 학습

first fine-tuning 기반의 representation model로, 여러 task에서 SOTA를 뛰어넘으며, 기존의 task-specific 아키텍처보다 더 뛰어난 성능을 보임
link for code and pre-trained models
history of pre-training general language representations
Pre-trained word embeddings가 중요해지면서, sentence embedding 과paragraph embedding으로 이어졌다. 그리고 traditional word embedding에 새로운 접근방식을 제공한 것이 ELMo.
초기 feature-based approaches에 대한 연구
: unlabeled text로 부터 word embedding parameter를 pre-training 하였음
: feature-based 접근법은 정적인 벡터 표현을 사용하여, 항상 하나의 단어가 고정된 벡터를 가지기 때문에 단어 수준에서만 의미를 반영하며, 문장이나 문서 수준의 문맥적 정보(contextual information)를 효과적으로 반영하는 데 한계가 있었다
최근
: pre-trained from unlabeled text + fine-tuned for a supervised downstream task (GPT또한)
transfer-learning의 중요성
NLI, machine translation 뿐만아니라 CV에서도 transfre-learning의 중요성이 강조됨
BERT를 두가지 과정으로 나누어 설명하자면(pre-training/fine-tuning),
가장 큰 특징은 BERT는 서로 다른 task에 대하여 통일된 모델 구조를 사용한다는 점이다. pre-trained 된 모델과 Downstream된 모델의 architecture의 차이가 적다는 것이다. 아래의 그림을 참고하자.

BERT_BASE (L=12, H=768, A=12, Total Parameters=110M)
BERT_LARGE (L=24, H=1024,A=16, Total Parameters=340M)
*이때 BERT_BASE는 비교를 위해 GPT와 모델 크기가 동일하게 설정하였다.
다양한 downstream task를 수행하기 위해서는 모델의 input이 애매한 표현을 가지면 안된다. 참고로 이 논문에서 말하는 'sentence'는 문장이라는 의미보다도 연속적인 text를 의미하며 'sequence'는 input token의 집합으로 한문장 혹은 두문장이 합쳐진 것들 의미한다.
아래는 BERT의 input representation을 나타낸 그림이다. 이 정보를 기반으로 모델이 입력을 처리하게 된다.

input representation : token embedding + segment embedding + position embedding
두 가지 task로 pre-train 을 진행
vs Denoising Auto-Encoder (DAE) : 일부 입력 데이터를 손상시키고, 그 손상된 데이터를 복원하는 방식으로 훈련하는 auto-encoder의 변형. BERT는 DAE처럼 전체 문장을 복원하지 않고, 마스킹된 단어만 예측한다는 점에서 차이가 있음.
pre-training 과 fine-tuning 과의 불일치 문제
BERT는 pre-training 과정에서 [MASK] 토큰을 사용하여 일부 단어를 마스킹하고 예측하는 방식으로 학습합니다. 하지만 fine-tuning에서는 [MASK] 토큰이 사용되지 않음.
이를 해결하기 위해 BERT는 [MASK] 토큰을 항상 사용하지 않도록 함. 대신, 훈련 데이터에서 마스킹할 토큰을 선택할 때 몇 가지 방법을 섞어서 사용하였다 :
15% 의 WordPiece token을 랜덤으로 마스킹하고 15%의 토큰 위치를 무작위로 선택하여 예측하였다.
- 만약 i번째 토큰이 선택되면, 이 토큰은 다음과 같은 방식으로 마스킹:
1. 80%의 확률로 [MASK] 토큰으로 교체
2. 10%의 확률로 무작위 랜덤 토큰으로 교체
3. 10%의 확률로 원래 토큰 그대로 둠
이렇게 하면 [MASK] 토큰이 항상 등장하는 훈련 방식을 피하면서, fine-tuning에서는 [MASK] 토큰 없이도 적응할 수 있도록 모델이 학습하였다. 이 퍼센티지는 아래의 실험을 통한 결과이다.

QA나 NLI는 두 문장간의 관계에 대한 이해를 기반으로 하는 task => NSP가 이 task에 효과적임을 밝힘.
NSP의 목표는 두 문장이 연속적인 문장인지 아니면 무작위로 선택된 문장인지를 예측하는 것
훈련 방법: supervised learning (label : IsNext, NotNext)
이전의 연구들은 문장 임베딩만을 전이하는 방식이었으나, BERT는 모든 파라미터를 전이학습(transfer learning) 방식으로 다운스트림 작업에 전달하며, 이는 문장 임베딩뿐만 아니라 모델 전체의 파라미터를 fine-tuning 과정에서 학습하도록 도움.
따라서 BERT는 단순한 문장 표현 학습을 넘어서, 문맥에 따른 단어 및 문장 이해를 고도로 학습하게 된다.
BERT는 self-attention 메커니즘을 사용하여 두 문장을 하나로 결합한 후 처리( concatenate self-attention)하여 효과적으로 양방향 cross attention을 모델링함. 즉, 기존 방식에서 두 문장을 독립적으로 인코딩한 후, cross attention을 적용하여 관계를 모델링하는 것처럼 cross attention을 따로 구현할 필요 없이 self-attention을 통해 자연스럽게 구현.
각 downstream task에 알맞게 문장 A,B가 다음과 같이 변환된다 :
11개의 NLP task에 대한 실험 결과

Ablation Study는 모델의 일부 요소를 제거하거나 변경하여 그 영향을 측정하는 방법. BERT 논문에서는 모델의 성능을 개선하기 위한 여러 가지 요소들이 어떻게 서로 상호작용하는지 이해하기 위해 여러 실험을 수행하였다.

MLM + NO NSP
LTR + NO NSP
(* LTR : standard Left-to-Right model)
: MLM아 LTR보다 더 나은 성능을 보임
NSP가 포함된 모델이 질문-응답 및 문장 관계 추론에서 성능을 높이는 데 중요한 역할을 함. 그러나 NSP를 제거한 모델이 단일 문장 분류나 문장 태깅 작업에서는 큰 성능 차이를 보이지 않음.
layer, hidden unit, attention head의 수를 다르게 하여 비교

: BERT는 기존 Transformer 모델들에 비해 모델 크기가 상당히 크지만, 이러한 큰 모델을 활용하여 여전히 성능 향상을 이끌어낸 것이다. 이는 작은 규모의 데이터에 대해서도 적절히 사전학습된 모델이라면, 모델 크기 증가가 성능에 중요한 영향을 미친다는 중요한 인사이트를 제공한다.
Feature-based 방식에도 장점이 있다.모든 작업이 Transformer 인코더 아키텍처로 잘 표현될 수 없기 때문에, 특정 작업에 맞는 별도의 모델 아키텍처를 추가해야 할 수 있으나, 사전에 계산된 표현을 여러 작업에 재사용할 수 있어 계산 비용이 절감된다.
NER 실험에서 두가지 결과를 비교
: 입력된 문장에서 고유 명사(entity)를 인식하는 작업
Feature-based 접근: BERT의 사전 학습된 모델에서 추출한 활성화 벡터(activation)를 사용하여, 이를 BiLSTM(양방향 LSTM) 네트워크에 입력으로 넣은 후 분류 작업을 수행. BERT의 파라미터는 fine-tuning하지 않고, 오직 피처만을 추출하여 사용
Fine-tuning 방식: BERT 모델을 fine-tuning하여 전체 파라미터를 학습

결과 : BERT는 fine-tuning 방식과 feature-based 방식 모두에서 효과적이다. 두 방법 모두 BERT의 사전 학습된 강력한 표현을 활용할 수 있기 때문에 성능이 매우 우수하다.
BERT와 같은 양방향 아키텍처는 모델이 문맥을 양쪽에서 동시에 고려할 수 있게 하여, 다양한 자연어 처리(NLP) 작업을 효과적으로 해결할 수 있게 하였다.