BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding(24 May 2019)
2025. 2. 20. 10:27ㆍ친해지기, 논문
* 원문 논문 아카이브
https://arxiv.org/abs/1810.04805
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
We introduce a new language representation model called BERT, which stands for Bidirectional Encoder Representations from Transformers. Unlike recent language representation models, BERT is designed to pre-train deep bidirectional representations from unla
arxiv.org
0. Abstract
- BERT(Bidirectional Encoder Representations from Transformers)
- 모든 층에서 왼쪽과 오른쪽 문맥을 동시에 조건화해 비지도 텍스트로부터 심층 양방향 표현을 사전 학습 하도록 설계. => 추가적인 출력층 하나만으로 Finetuned 가능.
- 개념적으로도 간단하며 경험적으로 강력.
1. Introduction
- 언어 모델의 사전 학습은 자연어 처리(NLP)에서 효과 입증.
- 사전 학습된 언어 표현을 하위 작업에 적용하는 기존 두가지 전략.
- 기능 기반(feature-based) 접근법 : ELMo 같이 사전 학습된 표현을 추가 기능으로 포함하는 작업 특화 아키텍처.
- 미세 조정(fine-tuning) 접근법 : GPT 같이 최소한의 작업 특화 매개변수를 도입하고, 매개변수를 단순히 미세 조정하여 하위 작업에서 훈련.
- 위 두 접근법은 사전 학습동안 동일한 목적 함수를 공유하고, 단방향 언어 모델을 사용.
- 단방향 언어 모델은 Transformer의 Self-Attention 층에서 이전 토큰에만 Attention을 하므로 문장 수준의 작업에는 최적이 아님.
- BERT는 "마스킹 된 언어 모델(MLM)" 을 사용해 단방향성 제약을 완화.
- "다음 문장 예측(Next Sentence Prediction" 을 사용해 텍스트 쌍 표현을 공동으로 사전 학습함.
2. Related Work
2.1. Unsupervised Feature-based Approachs
- 사전 학습된 단어 임베딩은 현대 NLP 시스템의 필수적 부분.
- ELMo와 그 이전 모델들은 전통적인 단어 임베딩 연구를 다른 차원에서 일반화.
- 한 방향을 가진 언어 모델에서 문맥의 민감한 특징 추출(제한적 어텐).
- 기능 기반 접근법의 단방향 모델.
2.2. Unsupervised Fine-tuning Approachs
- 초기 연구는 비지도 텍스트에서 단어 임베딩 매개변수만을 사전 학습.
- 최근에는 문맥 토큰 표현을 생성하는 문장 또는 문서 인코더가 비지도 텍스트로 부터 사전 학습되고, 이를 지도된 하위 작업에 대해 미세 조장하는 방식.
- 미세조정 접근법은 처음에 학습해야 할 매개변수가 적음.
2.3. Transfer Learning from Supervised Data
- 대규모 사전 학습 모델로부터 전이 학습을 하는 것의 중요성을 입증.(ImageNet)
3. BERT
- BERT 에는 '사전 학습' 과 '미세 조정' 두 가지의 단계.
- 사전 학습 동안 모델은 다양한 사전 학습 작업에 대해 비지도 데이터에서 훈련.
- 미세 조정 단계에서는 BERT 모델이 사전 학습된 파라미터로 초기화되고, 모든 파라미터가 하위 작업의 라벨이 있는 데이터를 사용하여 미세 조정.
- 각 하위 작업은 별도의 Finetuned 된 모델을 가지며, 이 모델들은 동일한 사전 학습된 파라미터로 초기화.(그림 1.)
- 본 연구에서는 number of layers = L, hidden size = H, number of self-attention head = A로 표기.
- BERT가 다양한 하위 착업 처리할 수 있게 입력 표현은 단일 문장과 문장 쌍(예 : 질문과 답변)을 하나의 토큰 시퀀스에서 표현.
- 30,000개의 토큰 어휘를 가진 WordPiece 임베딩을 사용.
- 문장 쌍은 단일 시퀀스로 포장되며 모든 시퀀스의 첫 번째 토큰은 항상 '[CLS]' 토큰.
- 이 토큰은 최종 은닉 층에서 분류 작업을 위한 집계 시쿼스 표현으로 사용.
- 문장 쌍에서 문장을 구분하는법.
- '[SEP]' 토큰으로 구분.
- 각 토큰에 학습된 임베딩을 추가해 해당 토큰이 어느 문장에 속하는지 표현.
- 각 토큰의 입력 표현은 'Token Embeddings', 'Segment Embeddings', 'Position Embeddings' 세 가지를 합산해서 구성.(그림 2.)
3.1. Pre-training BERT
- 두가지 비지도 작업을 사용해 BERT를 사전 학습.(그림 1.의 왼쪽 부분)
- Task #1: Masked LM
- Deep Bidirectional Representation(깊은 양방향 표현)을 훈련하기 위해 입력 토큰의 일부를 무작위 마스킹한 다음 마스킹 된 토큰을 예측. -> "마스킹 된 언어모델(MLM, Cloze task)"
- 각 시퀀스에서 WordPiece 토큰의 15%를 마스킹.
- 전체 입력을 재구성하는 대신 마스킹된 단어만 예측.
- 단점은 Finetuned 단계에서 [Mask] 토큰이 나타나지 않으므로 사전학습과 불일치. => 마스킹된 단어를 실제 [MASK] 토큰으로 대체하지 않음.
- 훈련데이터 생성기가 15%의 확률로 마스킹 토큰 위치 선택.
- 80%의 확률로 [MASK] 토큰으로 대체.
- 10%의 확률로 무작위 토큰으로 대체.
- 10%의 확률로 변경하지 않음.
- 훈련데이터 생성기가 15%의 확률로 마스킹 토큰 위치 선택.
- Task #2: Next Sentence Prediction(NSP)
- 다음 문장 예측 작업으로 두 문장 간의 관계를 이해하는데 기반.
- 각 가전 훈련 예제에 대해 문장 A, B를 선택해 예측.
- 50%의 확률로 문장 B는 A 다음에 오는 실제 문장.(IsNext 라벨)
- 50%의 확률로 문장 B는 A 다음에 오지 않는 문장.(NotNext 라벨)
- 그림 1.에서 C는 NSP에 사용됨.
- 대부분 위키피디아 같은 문서 수준의 코퍼스를 사용함.
3.2 Fine-tuning BERT
- Transformer의 Self-Attention 매커니즘 덕분에 BERT는 다양한 하위 작업 모델링 가능.
=> 적절한 입력과 출력을 교체하기만 하면 됨.
- Self-Attention을 통해 연결된 텍스트 쌍을 인코딩하면 두 문장 간의 bidirectional cross attention이 효과적으로 포함됨.
감상
- 비지도 학습에 대한 궁금증을 갖던 중 BERT 가 효과적인 비지도 학습의 시초격이길래 찾아본 논문.
- BERT를 예전에 꽤나 유용하게 사용했지만 내가 사용한 것은 Finetuning 일 뿐 Pretraining 쪽은 신기했다.
- 알고있는 개념들을 이렇게라도 정리하니 좋은 것 같다.
- Attention 논문도 리뷰해야겠다.
728x90