논문 정리
0. Abstract
- unlabeled text corpora(corpus의 복수형)는 충분하지만, 특정한 task를 학습하는 데에 labed data는 부족한 상황
⇒ 다양한 unlabeled text corpus의 generative pre-training → discriminative fine-tuning 에 의해 이런 특정한 task를 잘 학습할 수 있음 - 이전과 달리, 효과적으로 전달하기 위해 fine-tuning 중에 task-aware input transformation을 사용
- task-agnostic(= 작업에 구애받지 않는) 모델은 각 작업에 맞게 설계된 모델의 성능을 능가했음 (ex. RACE에서 5.7%, MultiNLI에서 1.5% 개선)
1. Introduction
- NLP에서 supervised learning에 대한 dependence를 완화하기 위해서는 raw text로부터 효과적으로 학습하는 능력이 매우 중요
- 대부분의 딥러닝 method들은 상당한 양의 손수 라벨 데이터를 필요로 함 & annotated data가 부족한 많은 분야에서 응용 가능성을 제한
→ unlabed data의 언어 정보를 활용할 수 있는 모델이 더 많은 annotation을 수집하는 것이 대안
→ However, unlabeled text로부터 단어 수준 이상의 정보를 활용(ex. 단어간 관계 등)하는 것이 어려운 이유- 어떤 유형의 optimization objective가 전달에 유용한 text representation을 학습하는 데에 효과적인지 불분명
- learned representation를 target task에 전달하는 효과적인 방법에 대한 의견 일치 X : 기존 기술들은 모델 아키텍처를 작업에 맞게 변경, 복잡한 learning scheme을 사용, 보조 learning objective를 추가하는 것을 조합하여 활용
⇒ 이러한 불확실성은 언어처리에서 효과적인 semi-supervised learning 접근들을 발전시키기 어렵게 함
이 연구에서는,
unsupervised pre-training, supervised fine-tuning 💡 의 조합을 사용하여 언어 이해 작업에 대한 semi-supervised approach를 탐색
(목표) 다양한 task에 적응하지 않고도 전달되는 universal representation을 학습하는 것
(가정) unlabeled text와 손수 annotated training example들을 가진 여러 데이터셋들의 large corpus + 손수 annotated training example (= target task)와 unlabeled text corpus는 같은 domain에 있을 필요가 없음
(훈련 과정)
- nerual network model의 초기 파라미터를 학습하기 위해 unlabeld data에 대해 language modeling objective를 사용
- target task에 맞춰 해당하는 supervised objective를 사용하여 파라미터를 조정
(Model Architecture) Transformer [1] 다양한 task(ex. 기계 번역, 서류 생성, 구문분석) 에 잘 수행 + recurrent network와 같은 대안에 비해 텍스트의 장기 의존성을 처리하기 위한 structured memory를 제공 → 다양한 task에서 전달 성능이 robust
- transfer 동안 traversal-style 접근 방식에서 파생된 task별 input 적응 방법을 활용: text input을 하나의 연속적인 토큰 시퀀스로 처리
→ 이러한 적응 방법은 pre-trained 모델의 아키텍처에 최소의 변화를 주어서 fine-tune을 효과적으로 하게 해줌 - 4종류의 language understanding task로 평가
- natural language inference
- question answering
- semantic similarity
- text classification
⇒ 각 task에 맞게 특별하게 만들어진 architecture를 사용하는 model보다 작업에 관계없이(task-agnostic) 💡 사용하는 모델(=논문에 나오는 GPT1)이 성능이 좋음 (연구된 12개의 task 중에서 9개 과제에서 크게 향상 ex. (Stories Cloze Test) 상식 추론에서 8.9% 상승, (RACE) question answering에서 5.7% 상승, (MultiNLI) textual entailment에서 1.5% 상승, (GLUE multi-task benchmark) 5.5% 상승)
- 네위의 4가지 다른 setting에서 pre-trained model의 zero-shot behavior를 분석 + downstream task을 위한 유용한 언어 정보가 필요하다는 것을 증명
2. Related Work
Semi-supervised learning for NLP
- 본 연구는 Semi-supervised 범주에 속하며, 이러한 접근방식은 sequence labeling이나 텍스트 분류와 같은 task에 적용: 초기에는 unlabeled data에서 단어 수준이나 구문 수준의 정보를 추출 → supervised model에서 feature로 사용
- 최근 몇년 간 unlabeled corpora에서 훈련된 Word Embedding이 다양한 작업에서 성능을 향상시키는 데 유익하다는 것을 입증
However, 이 접근방식은 단어 수준 정보를 전달하는 것 뿐, 목표는 더 높은 수준의 의미(semantic)를 반영하는 것 💡
⇒ unlabeled data로부터 단어 수준 이상의 의미를 학습하고 활용하는 방향으로 발전: 구 수준(Phrase-level) 또는 문장 수준(sentence-level) 임베딩은 다양한 target task에서 text → vector representation으로 인코딩하는데 사용됨
Unsupervised pre-training
- Unservised pre-training은 semi-supervised learning의 special case로 supervised learning objective를 수정하는 것 대신, 초기 지점을 잘 찾는 것이 목표
- 초기에는 이미지 분류나 회귕귀에 사용하였으나, 그 이후에는 pre-training이 정규화 기법으로 작용 → 더 나은 generalization에 도달
- LSTM에서는 short range로 제한하지만, transformer는 더 넓은 범위의 언어구조를 반영할 수 있게 해줌
- 다른 접근법들은 pre-trained language나 기계 번역 모델의 hidden representation을 보조 특성으로 사용하여 supervised model 훈련 때 사용하는 것은 상당한 양의 새로운 매개변수 필요
→ 우리는 전달 중에는 모델 아키텍처에 최소한의 변경만 필요
Auxiliary training objectives
- 보조 unsupervised training objective를 추가하는 것은 semi-supervised learning의 대안 형태
- Collobert and Weston[3]은 다양한 보조 NLP task를 사용하여 semantic role labeling을 개선
- Rei[4]는 target task objective에 보조 language modeling objective를 추가하여 sequence labeling의 성능을 향상
→ 우리는 unsupervised pre-training이 target task와 관련하여 이미 여러 언어적 측면을 학습한다는 것을 보여줌
3. Framework
훈련 절차는 총 2단계로 나누어짐
- 많은 양의 text corpus에서 high-capacity language model을 학습
- labeled data를 사용하여 task에 맞게 조정 (fine-tuning stage)
3.1 Unsupervised pre-training
아래의 likelihood를 최대화하는 standard language modeling objective를 사용
즉, likelihood 최대화하는 것이 목표
- k: context window 크기
- ${U}$ (1~n): unsupervised corpus of tokens
- 조건부 확률 $P$는 파라미터 theta를 가진 신경망을사용하여 모델링됨
→ 파라미터는 Stochastic Gradient Descent(SGD)[3]에 의해 훈련됨 - multi-layer Transformer decoder 💡 를 사용
- input context token에 대해 multi-headed self-attention 연산 적용 → position-wise feedforward layer를 거쳐서 target token에 대해 출력 분포를 생성
- $U$ (-k ~ -1): context vector of tokens
- n: layer 개수
- $W_{e}$: token embedding matrix (단어 → 토큰)
$W_{p}$: position embedding matrix (위치 정보를 추가)
(위 식에 대한 추가 설명)
1. 입력 임베딩과 위치 임베딩 추가
입력 토큰을 벡터로 변환한 후, 각 토큰의 위치 정보(position encoding)를 더함
2. Transformer 블록을 여러 층 거침
- $h_{l}$ : $l$번째 층에서의 hidden representation
- transformer_block: self-attention + FFN
여러 개의 Transformer 블록을 통과하면서 점점 더 정교한 학습을 함
3. 출력 확률 분포 계산
- $h_{n}$ : Transformation 블록에서 나온 최종 hidden state
- softmax : 확률 분포를 만들기 위한 활성화 함수
각 토큰이 다음에 나올 확률을 계산하여 언어 모델이 다음 단어를 예측할 수 있도록 함
3.2 Supervised fine-tuning
위 식(1) objective에 대해 훈련한 이후, supervised target task에 맞게 파라미터를 조정
- labeled dataset $C$를 가정
- $x_{1}, ... , x_{n}$ : input token sequence
- $y$ : label
- $h_{l}^{m}$ : pre-trained model을 통해 얻은 마지막 transformer block activation 값 (input)
→ 파라미터 $W_{y}$를 가진 linear output layer에 입력하여 $y$를 예측
- 언어 모델링을 fine-tuning의 보조 objective를 포함시키는 것이 (a) supervised model의 generalization을 향상시키고, (b) 수렴을 빠르게 하여 학습에 도움이 된다는 것을 발견하였음
- 추가 파라미터: $W_{y}$, delimeter token에 대한 임베딩 (3.3 에서 설명)
모든 structured input → pre-trained model에 의해 처리된 token sequence로 변환 → linear + softmax layer
즉, Transformer 모델을 다양한 NLP 문제에 맞게 변형하여 사용할 수 있음
3.3 Task-specific input transformations
- text classification 같은 task: 직접 fine-tuning
question answering, textual entailment 같은 task: 순서가 있는 문장 쌍 또는 문서, 질문, 정답으 삼중구조와 같은 구조화된 입력을 필요로 함
⇒ pre-trained model은 text의 연속적인 sequence로 훈련이 되어있기 때문에 이 task에 적용하는 수정이 필요 - 이전에는 transferred representation 위에 task별 아키텍처를 학습했다면, (상당한 양의 task별 customization이 필요 + 추가적인 아키텍처 component에 대해 transfer learning 을 사용 X)
우리는 traversal-style approach 💡[6] 를 사용
Traversal-style approach
- structured input → pre-trained model이 처리할 수 있는 ordered sequence(정해진 순서대로 배열된 데이터의 집합)로 변환
⇒ extensive change를 막을 수 있게 함 - 모든 변환 과정에는 랜덤으로 초기화된 시작 토큰과 종료 토큰을 추가하는 작업이 포함됨
Textual entailment
premise $p$ (전제)와 hypothesis $h$ (가설) 토큰 시퀀스들을 연결하고 그 사이에 구분자 토큰($)을 그 사이에 넣음
Similarity
비교하는 두 문장 간에 본질적인 순서가 존재하지 X
→ 문장 순서를 포함하도록 변형하고, 각 요소에 대해 개별적으로 처리하여 두 개의 시퀀스 표현인 $h_{l}^{m}$ 을 생성
→ lienar output layer로 들어감
Question Answering and Commonsense Reasoning
context document $z$, question $q$, answers $a_{k}$
→ document context와 답을 할 수 있는 question을 연결하고, 그 사이에 구분자 토큰 추가하여 $[z;q;$;a_{k}$ 형태의 시퀀스를 얻음
→ 각 시퀀스들ㅇ느 각각 처리되고 softmax layer를 거쳐 답변에 대한 확률분포를 생성
4. Experiments
4.1 Setup
Unsupervised pre-training
- BooksCorpus 데이터셋 사용: 길고 연속적인 text를 포함하해서 생성 모델이 긴 범위의 information을 조건으로 하는 방법을 배울 수 있게 함
- 1B Word Benchmark는 ELMo와 같은 접근 방식에서 사용되며. 데이터 크기는 비슷하지만 sentence level에서 섞여 있어 긴 범위의 구조가 파괴됨
⇒ 본 모델은 낮은 perplexity 값인 18.4를 달성
여기에 BooksCorpus가 무엇인지, 각 데이터셋이 무엇을 의미하는지 알아보기
Model specifications
기존 transformer 작동 방식을 따름
- 12-layer decoder-only transformer, masked self-attention heads (768차원과 12 attention heads)
- Embdding Size: 보통 임베딩(사람이 쓰는 자연어를 기계가 이해할 수 있는 숫자의 나열인 벡터로 바꾼 결과) 될 때의 벡터 크기 = feature dimension: 768
- Attention Heads: 12개의 Self-Attention Head가 있으므로 768/12 = 64로, 각 attention head는 64차원의 벡터를 다룸
- Position-wise feed-forward network는 3072 차원
- Adam optimization scheme 사용 (learning rate = 2.5e-4)
- 2000번 업데이트까지는 0에서 선형적으로 증가시키고, 그 이후에는 cosine schedule을 사용하여 0으로 감소
- 각 미니배치에 64개의 랜덤 샘플링된 연속적인 512개의 토큰 시퀀스를 사용하여 100 에포크동안 학습
- 모델 전반에 layernorm을 사용하기 때문에 N(0, 0.02)를 사용하여 가중치를 초기화했음
- 40,000 merge를 가진 Bytepair Encoding(BPE) vocabulary 사용 [7]
- residual, embedding, attention dropout은 0.1로 regularization
+ 수정된 버전의 L2 regularization도 사용 [8] : bias나 gain 가중치를 제외한 가중치값들은 다 0.01로 설정 - activation function은 Gaussain Error Linear Unit (GELU) 사용
- 원래 tranformer처럼 sinusoidal version 대신 학습된 learned position embedding을 사용
- ftfy library(fixes text for you) [9]를 사용하여 raw text를 전처리
구두점과 공백을 표준화
spaCy tokenizer [10]를 사용
Fine-tuning details
- unsupervised pre-training에서의 하이퍼파라미터 세팅을 재사용
- classifier에 dropout을 0.1로 추가
- 대부분에서 learning rate는 6.25e-5와 배치크기는 32로 함
- 빠르게 finetuning이 돼서 3 에폭으로 충분
- linear learning rate decay를 사용하였으며 전체 training동안 0.2% 동안 warmup을 적용
- lambda값은 0.5로 설정
4.2 Supervised fine-tuning
Natural Language Inference
- Recognizing Textual Entailment 로 알려져 있으나,
두 문장을 읽고, entailment, contradiction(모순), neural(중립) 중 하나를 기준으로 문장 간 관계를 읽는 것도 포함
→ 어휘적 함의(entailment), 상호참조(coreference, 임의의 개체를 표현하는 다양한 명사구들을 찾아 연결), 어휘와 구문 모호성같이 다양한 현상으로 인해 어려운 task
- image captions(SNLI), 음성에서 글자로 바뀐 데이터, 대중 소설, 정부 보고서(MNLI), 위키피디아 문서(QNLI), 과학 시험(SciTail), 뉴스 기사(RTE)인 5가지 데이터셋들을 사용하여 모델을 평가
- MNLI에서는 1.5% 상승, SciTail에서는 5%, QNLI에서는 5.8%, SNLI에서는 0.6% 상승
⇒ 우리 모델이 여러 문장들을 잘 추론하고 언어의 모호함을 처리해줌을 알 수 있음 - (RTE): 가장 작은 데이터셋 (2490개)에서 56% 정확도를 달성
⇒ multi-task biLSTM model에서 기록된 61.7%보다 아래지만,
더 큰 NLI 데이터셋에서 강력한 성과를 보였기 때문에 우리의 모델이 multi-task training을 적용하면 더 나아질 것
Question answering and commonsense reasoning
- RACE dataset 사용: 중고등학교 시험 질문이 포함된 영어 지문: CNN이나 SQuaD와 같은 다른 데이터셋보다 더 많은 추론 질문을 포함하고, 이는 long-range context를 처리하도록 훈련되어진 모델에 대한 완벽한 평가를 제공
- Story Cloze Test 로 평가: 여러 문장으로 구성된 스토리에서 두 가지 옵션 중 올바른 결말을 선택
⇒ Story Cloze Test는 최대 8.9% 향상, RACE 전체: 5.7% 향상
Semantic Similarity
= paraphase detection
- 두 문장이 의미가 같은지 아닌지 예측
- 문제는 개념의 rephrasing을 인식, 부정을 이해, 구문적 모호함을 인식하는 것이 어려움
- Microsoft Paraphrase corpus(MRPC), Quora Question Pairs(QQP), Semantic Textual Similarity benchmark(STS-B) 총 3개의 데이터셋 사용
- Semantic Similarity에서 3개중 2개가 SOTA를 기록
- STS-B는 1% 향상
QQP는 Single-task BiLSTM + ELMo + Attn에서보다 4.2% 향상
Classification
- Corpus of Linguistic Acceptability (CoLA): 이 문장이 문법에 맞는지 아닌지 판단하는 전문가 판단을 포함하고, trained model으 선천적인 언어 편향을 테스트
- Stanford Sentiment Treebank (SST-2): 이진분류 task
- 우리의 모델은 CoLA에서 45.4% 향상 (이전 best 값이 35%에 비해 엄청난 jump): 선천적인 언어 편향을 잘 학습된거를 볼 수 있음
- SST2에서 91.3%로, SOTA모델과 경쟁력이 있음
- GLUE Benchmark에서 68.9% 달성한 것보다 높은 72.8% 달성
전반적으로, 12개의 데이터셋 중 9개의 데이터셋에서 SOTA를 달성 + 다른 사이즈 (STS-B ~ SNLI) 에서 잘 작동 ❗
5. Analysis
Impact of number of layers transferred
unsupervised pre-training → supervised target task로 다양한 개수의 layer를 transfer하는 것이 미치는 영향을 보았음
- 임베딩만 적용해도 성능이 개선됨을 확인
- 각 transformer layer가 추가적으로 성능을 향상해, MultiNLI에서는 모든 레이어를 transfer했을 때 최대 9% 향상
⇒ pre-trained model에서의 각 layer가 target task를 해결하는 데에 유용한 기능을 포함하고 있음을 의미
Zero-shot Behaviors
transformer의 pre-training이 효과적인 이유를 잘 이해하는 것이 좋음
- 가설: 기저에 생성 모델이 언어 모델링 능력을 향상 시키기 위해 우리가 평가하는 많은 task들을 수행하는 방법을 학습, transformer의 더 구조화된 attention memory가 LSTM보다 transfer에 더 도움이 됨
- 생성 모델이 supervised finetuning 없이 task를 수행하는 휴리스틱 solution을 고안함
- [Figure 2]에서는 generative pre-training의 과정에서의 휴리스틱 solution이 안정적이고 꾸준히 증가하는 것을 볼 수 있음 → generative pretraining이 다양한 task 관련 기능을 support함을 알 수 있음
- cf) Inductive bias: 해당 데이터에 대한 판단을 내리기 위해 가지고 있는, 학습과정에서 습득한 편향
머신러닝은 특정 문제를 풀기 위해 가장 loss가 작은 hypothesis를 찾는데, 이 hypothesis의 제한이 없다면 overfitting이 일어나게 됨
→ overfitting이 안되게 hypthesis에 제한을 걸어두는게 Inductive bias
→ Inductive bias가 강하면 오히려 generalization(variance)가 덜어져서 오히려 학습을 방해
즉, inductive bias랑 generalization은 trade-off 관계
이어서,
LSTM이 zero-shot performance에서 높은 variance를 가지고 있음을 확인 → Transformer 아키텍처의 inductive bias가 transfer 과정을 도움 - CoLA(linguistic acceptability)
생성 모델이 할당한 평균 토큰 로그 확률로 점수가 매겨지며, 임계값을 설정하여 예측이 이루어짐 - SST-2(sentiment analysis)
토큰 $very$를 각 예시에 추가하고 language model의 output 분포를 "positive"와 "negative" 두 단어로 제한
높은 확률이 할당된 단어를 최종 예측값으로 선택 - RACE(question answering)
문서와 질문을 조건으로 주었을 때, 생성 모델이 가장 높은 평균 토큰 로그 확률(token log-probabiltiy)을 할당한 답변을 선택 - DRRD(winograd schemas)
대명사를 두 개의 가능한 참조 대상으로 대체 → 문장에서 나머지 부분에서 생성 모델이 더 높은 토큰 로그 확률을 할당하는 해석을 예측
Ablation studies
모델의 특정 구성 요소를 제거하거나 변경하여 해당 요소가 성능에 미치는 영향을 분석하는 연구 방법
- fine-tuning 동안 보조적인 LM objective 가 X (without aux LM): 보조 objective가 NLI task와 QQP에 도움을 준다는 것을 알 수 있음
전반적인 경향이 데이터셋이 클수록 보조 objective로부터 더 이득을 봄 (더 작은 데이터셋은 X) - 같은 framework를 사용한 single layer 2048 unit LSTM에서와 비교했을 때 Transformer의 효과를 볼 수 있음 (LSTM with aux LM) : Transformer보다 평균 점수가 5.6점이 낮은 것을 확인 (MRPC에서만 Transformer보다 큼)
- pre-training 없이 supervised target task (Transformer w/o pre-training): pre-training의 부족이 모든 작업에서 성능이 저하되며, full model에 비해 14.8% 감소
6. Conclusion
- generative pre-training과 discriminative fine-tuning을 통해 단일 task에 구애받지 않는 모델로, 강력한 언어 이해를 달성하기 위한 프레임워크를 도입
- 긴 연속적인 텍스트를 포함한 다양한 말뭉치에서 pre-training을 함으로써 우리의 모델은 상당한 world knowledge(= 인간 사회 생활에 필요한 물리적인 세계의 지식(이러한 일반적인 배경 지식은 어문 혹은 구문으 모든 의미를 이해하는 데 필수적)) + long-range 의존성을 처리하는 능력을 얻음 → 질문답변, 의미 유사성 평가, 함의 판단, 텍스트 분류와 같은 discriminative task를 해결하기 위해 성공적으로 transfer
- Unsupervised training을 활용하여 discriminative task의 성능을 향상시키는 것은 Machine Learning research에서 중요한 연구
⇒ 성능 향상이 가능하고, Transformer와 데이터셋이 이 접근방식에서 잘 사용이 된다는 단서를 제공
⇒ 자연어 이해 뿐만 아니라 unsupervised learning에 대한 새로운 연구가 나오도록 돕고, unsupervised learning이 더 나아가 언제, 어떻게 효과적인지를 더 깊이 이해하는 데 기여하기를 바람
References
[1] Attention Is All You Need: https://arxiv.org/pdf/1706.03762
[2] downstream task: 언어모델을 pre-train 방식을 사용해 학습 → 원하는 task를 fine-tuning 방식을 통해 모델을 업데이트 ( https://velog.io/@nawnoes/Downstream-Task%EB%9E%80 )
[3] R. Collobert and J. Weston. A unified architecture for natural language processing: Deep neural networks with multitask learning. In Proceedings of the 25th international conference on Machine learning, pages 160–167. ACM, 2008
[4] M. Rei. Semi-supervised multitask learning for sequence labeling. ACL, 2017
[5] Stochastic Gradient Descent(SGD) 보조 설명
[6] Traversal-style approach: T. Rocktäschel, E. Grefenstette, K. M. Hermann, T. Koˇ cisk` y, and P. Blunsom. Reasoning about entailment with neural attention
[7] R. Sennrich, B. Haddow, and A. Birch. Neural machine translation of rare words with subword units. arXiv preprint arXiv:1508.07909, 2015
[8] I. Loshchilov and F. Hutter. Fixing weight decay regularization in adam. arXiv preprint arXiv:1711.05101, 2017
[9] ftfy library: https://ftfy.readthedocs.io/en/latest/
[10] spaCy tokenizer: spaCy · Industrial-strength Natural Language Processing in Python
[11] G. Lai, Q. Xie, H. Liu, Y. Yang, and E. Hovy. Race: Large-scale reading comprehension dataset from examinations. EMNLP, 2017