Abstract
- 자연어 이해는 넓은 범위의 다양한 task들을 보장했다.
- textual entailment, QA, 의미 유사도 평가, 문서 분류
- 비록 라벨링 되지 않은 copus들은 많지만 라벨링된 특정 task의 데이터는 충분히 모델의 성능을 높이기에 부족하다.
- 라벨링되지 않은 다양한 corpus의 언어 모델은 생성적(generative) 사전 훈련과 fine-tuning을 통한 많은 이득이 있다.
- 모델 구조의 변화를 최소화하면서 효과적인 전이학습을 위해 fine-tuning중에 작업 인식 입력 변환을 사용한다.
- 자연어 이해를 위해 넓은 benchmark에 대한 효율성 보여줌
Introduction
- NLP에서 지도학습을 하는 의존도를 완화하는 것에는 raw text로부터 효율적으로 학습하는 능력이 중요하다.
- 대부분 딥러닝 방법은 상당한 양의 라벨링된 데이터를 필요로 한다.
- 이 점은 많은 도메인들이 라벨링된 자원의 부족으로부터 고통받게 많든다.
- 라벨링 되지 않은 데이터의 언어 정보를 활용하는 모델은 많은 라벨링을 수집하게 한다.(시간과 비용이 많이듦)
- 라벨링 된 데이터가 많더라도 라벨링 되지 않은 데이터를 사용하는 방식으로 학습하면 성능 향상 가능
- 증거: 사전 훈련된 단어 임베딩을 사용하여 성능 향상
- 최적 목적(optimization objectives)이 전이 학습에 유용한 단어 표현을 얻는 것에 가장 효과적인지 여부는 불명확하다.
- 최근 연구는 다양한 목적(기계 번역, 담화 일관성 판단 등)을 지니고 있다.
- 목적 task를 위한 표현 방법의 전이학습에 가장 효과적인 방법이 합의되지 않았다.
- 모델 구조에 task 세부적인 변화를 가리기, 복잡한 학습 scheme 사용, auxiliary learning objective 추가
- 이 불확실성은 효과적인 반지도학습의 발전에 어려움을 주었다.
- 자연어 이해 task에서 반지도학습 접근법을 탐색하기 위해 비지도학습 사전학습과 지도학습 fine-tuning을 조합해 사용하였다.
- 넓은 범위의 task에 적응하여 전이학습할 수 있는 보편적인 표현법을 학습하는 것이 목표이다.
- 라벨링된 학습 예시와 함께 label이 없는 커다란 corpus와 dataset에 접근한다.
- target task가 라벨링이 되지 않은 말뭉치와 동일한 domain에 있을 필요가 없다.
- 2 stage 학습 과정을 사용한다.
- 신경망의 초기 파라미터 값 설정을 학습하기 위해 라벨링 되지 않은 데이터를 사용한다.
- 그 후에, 이 파라미터들을 target task에 사용한다.
- 모델 구조에 기계번역 등의 task에 성능이 좋은 Transformer을 사용했다.
- 이 모델 선택은 장기 의존성을 다루기 위한 구조화된 memory를 준다.(강건하다)
- 전이학습 동안, 구조화된 input 텍스트를 단일 연속 토큰 sequence로 처리하는 순회 스타일 접근 방식에서 파생된 작업별 입력 적응을 활용
- 이 적응은 최소한의 모델 구조 변화로 효과적으로 fine-tuning하게 해준다.
- 4가지 언어 이해 task에 평가해봤다.(자연어 추론, 질의응답, 구문 유사도, 텍스트 분류)
- 우리의 일반적인 task-불가지론 모델은 더 좋은 결과를 냈다.
⇒ 비지도 학습을 통해 단어의 embedding 사전 학습 후, 각 task에 알맞게 fine-tuning
Semi-supervised learning for NLP
- 초기에는 단어 수준, 구문 수준의 통계를 계산하기 위해 라벨링 되지 않은 데이터를 사용했다.
- 몇 년 후, 연구자들은 라벨링 되지 않은 corpus로 학습된 word embedding을 사용하는 이익을 설명했다.
- 해당 접근법은 단어 수준의 정보에만 접근했다.
- 반면 우리는 더 높은 수준의 구문을 포착하는 것을 목표로 했다.
- labeling 되지 않은 data를 활용한 최근 접근법들은 단어 수준 의미론 이상의 학습 및 활용을 조사한다.
Unsupervised pre-training
- 비지도사전학습은 좋은 초기 지점을 찾기 위한 반지도 학습의 특별한 경우이다.
- 초기에는 이미지 분류와 회귀에서 기술을 사용하는 것을 탐구했다.
- 이후 연구에서는 사전 학습이 규제화 역할을 해서 더 일반화를 잘한다는 것을 알아냈다.
- 최근에는, 이미지 분류, 음성인식, 개체 명확화, 기계 번역 등 다양한 task에 딥러닝 학습을 쉽게 하기위해 사용한다.
- 신경망을 사전 훈련한 다음 fine-tuning
- 사전 학습은 몇 언어적 정보를 잡아내는 것을 돕지만, LSTM 모델 사용은 예측 능력을 짧은 범위로 줄인다.
- 반대로 transformer 신경망 선택은 더욱 긴 언어 구조를 잡아내는 것을 허용한다.
- 다른 접근법들은 사전학습 동안 auxiliary feature로써 사전 학습된 언어 모델로부터 hidden representation을 사용한다.
- 각 개별 target task에 상당한 새로운 파라미터들을 포함한다.
- 하지만 우리 접근법은 우리 모델 구조를 최소한으로 바꾼다.
Auxiliary training objectives
- auxiliary 비지도 학습은 반지도학습의 대안이다.
- 옛날엔 의미론적 역할 라벨링은 개선하기 위해 품사 태깅, chunking, 명명된 객체 인색 및 언어 모델링 같은 다양한 보조 NLP 작업을 사용했다.
- 최근에는, auxiliary 언어 모델을 target task에 추가하고 순서 라벨링 task에 성능 향상을 가져왔다.
- 우리도 auxiliary objective를 사용하지만 이미 비지도 사전학습이 많은 언어 양상을 학습한다.
Framework
- 큰 corpus를 활용하여 고용량 언어 모델을 학습한다.
- 라벨링된 데이터로 fine-tuning
비지도 사전학습
L1(U)=ΣilogP(ui∣ui−k,⋯,ui−1;θ)
- 비지도 토큰 모음 U={u1,…,un}으로 위 우도를 최대화하기 위해 표준 언어 모델링 목표를 사용한다.
- k: context window size, θ: SGD로 학습된 파라미터
h0=UWe+Wphl=transformer_block(hl−1)∀i∈[1,n]P(u)=softmax(hnWeT)
- multi-layer transformer decoder를 사용
- input 문맥 토큰에 multi-head self-attention, position-wise feedforward layer 활용
- U=(u−k,…,u−1)는 토큰의 문맥 벡터, n은 계층의 수, We는 embedding matrix, Wp는 positional embedding matrix
지도 학습
- labeled dataset을 C라고 하면, 각 예시는 input 토큰의 순서 x1,…,xm와 라벨 y를 포함한다.
- input은 마지막 transformer block의 활성화 함수 hlm을 얻기위해 사전 학습 모델을 통과한다.
- y를 예측하기 위해 output layer에 Wy를 추가
P(y∣x1,…,xm)=softmax(hlmWy)L2(C)=Σ(x,y)logP(y∣x1,…,xm)
- fine-tuning의 보조 목표로 언어 모델링을 포함
- 일반화 개선, 수렴 가속화
L3(C)=L2(C)+λL1(C)
- 전반적으로 미세 조정 중에 필요한 유일한 parameter는 Wy와 구분 기호 토큰에 대한 embedding이다.
- 텍스트 분류에서는 모델을 직접적으로 fine-tuning한다.
- 특정 다른 task에서는 순서 정렬된 문장 쌍같이 구조화된 입력도 있다.
- 사전 훈련된 모델이 근접한 순서의 텍스트를 학습한 이후로, task를 적용하기 위해 약간의 수정이 필요하다.
- 이전의 작업은 사전학습된 표현 위에 task 별 구조를 제안했다.
- 작업별로 알맞게 변환을 시도하고 해당 부분에 대해서는 전이 학습을 사용하지 않는다.
- 대신 구조화된 input을 사전 학습된 모델이 접근할 수 있는 정렬된 순서로 전환하는 traversal-style 접근법을 사용한다.
- Q&A(start|question|delim|answer|extract)
- entailment(start|premise|delim|hypothesis|extract)
- 모든 변환은 무작위로 start, end token을 초기화한다.
- Textual entailment: 전제(p)와 가설(h)를 구분자 토큰($)을 가운데에 두고 concatenate
- Similarity: 비교하는 두 문장 사이의 순서가 없기 때문에 구분자를 사이에 두고 가능한 순서를 모두 독립적으로 제공한다.
- Question Answering and Commonsense Reasoning: 이 task들에 대해, 우리는 문맥 문서 z, 질문 q 그리고 가능한 답 ak를 이용하여 (z, q), ak의 가능한 조합을 모두 만들고 사이에 구분자를 넣는다. 이는 독립적으로 수행하며 softmax를 통해 정규화한다.
Experiments
Setup
- 비지도 사전학습
- BooksCorpus dataset 사용
- 7000개의 어드벤쳐, 판타지, 로맨스 등 다양한 장르의 출판되지 않은 책 포함
- 긴 연속된 문자를 포하하기에 긴 범위의 정보를 학습하기에 적합
- 1B Word Benchmark, ELMo 사용
- token 수준 혼잡도가 18.4로 매우 낮았다.
- 모델 설명
- 우리 모델은 transformer을 따랐다.
- masked self-attention heads(768차원과 12개의 head)와 함께 12 layer의 transformer의 decoder만 학습했다.
- position-wise feed forward 신경망에 3072 차원의 내부 상태를 사용했다.
- 학습률 2.5e-4의 Adam 사용
- 학습률은 첫 2000번 업데이트 동안 0에서 선형적으로 증가했고 코사인을 사용하여 0으로 어닐링 됨(부드럽게 됨)
- 무작위로 추출된 64 미니배치로 인접한 512개의 토큰을 100 epoch 만큼 학습
- Layer Normalization 사용, 가중치 초기화(N(0,0.02))
- BPE 사용(40000 merge)
- skip connection, embedding, attention에 dropout 사용(0.1)
- 수정된 L2 규제항(w=0.01) 사용
- Gaussian Error Linear Unit(GELU)를 활성화 함수로 사용
- sinusoidal 버젼 대신 학습된 position embedding을 사용
- 전처리를 위해 ftfy, spaCy 라이브러리 사용
- fine-tuning
- 비지도 사전학습의 하이퍼파라미터를 재사용했다.
- 우리는 classifier에 0.1 확률로 dropout을 적용했다.
- 32 batchsize와 6.25e-5의 학습률 사용
- 3 epoch fine-tuning
- 선형 학습률 갑소 사용(0.2%, λ: 0.5)
Supervised fine-tuning
- 자연어 추론(Natural Language Inference, Recognition Textual Entailment)
- 문장 쌍을 읽고 함축(entailment), 모순(contradiction), 중립(neutral)로 판단
- 5개의 dataset으로 평가
- image captions(SNLI), transcribed speech, popular fiction, government reports(MNLI), Wikipedia articles(QNLI), science exams(SciTail), news article(RTE)
- 5개 중 4개가 SOTA였다.
- 더 작은 데이터 세트 중 하나인 RTE에서는 biLSTM모델보다 성능이 낮다.
- Question answering and commonsense reasoning
- 단일 및 다중 문장 추론의 측면을 필요로하는 작업
- RACE dataset로 평가
- 중, 고등학교 문제 포함
- CNN 또는 SQuaD 같은 다른 datasets보다 더 많은 추론 유형의 질문 포함
- 장거리 context를 처리되도록 훈련에 대한 완벽한 평가 제공
- Story Cloze Test로 평가했다.
- 두가지 선택지로부터 올바른 multi-sentence를 고르는 문제이다.
- SOTA 달성
- Semantic Similarity
- 두 개의 문장이 의미론적으로 동일한지 예측하는 task
- 개념의 변형을 인식하고, 부정을 이해하고, 구문적 모호성을 처리
- 세 가지 dataset 사용
- MRPC(Microsoft Paraphrase Corpus), Quora Question Pairs(QQP), Semantic Textual Similarity benchmark(STS-B)
- Classification
- Corpus of Linguistic Acceptability(CoLA)
- 문장이 문법적으로 옳은지 전문성 판단
- 모델의 타고난 언어적 편향을 테스트
- Stanford Sentiment Treebank(SST-2)
- SOTA 달성
- 12개의 dataset 중 9개에서 SOTA 달성
- dataset의 서로 다른 크기에서도 잘 작동한다.
Analysis
Impact of number of layers transferred
- 전이 학습된 레이어 수의 성능에 대한 영향을 살펴보았다.
- 전이학습된 embedding이 성능을 향상시킨다.
- 각 transformer 계층은 9%까지 이득을 준다.
- 사전 훈련된 각 계층이 task를 해결하는데 유용한 기능성을 포함한다.
Zero-shot Behaviors(train set에 없는 class 예측?)
- 기본적인 언어 생성 모델은 언어 모델 능력을 향상시키기 위해 우리가 평가하는 많은 task를 수행하는 방법을 배운다.
- transformer의 구조화된 attention memory가 전이 학습을 지원하기 때문이다.
- 지도학습 없이 모델을 설계하면?
- 사전학습된 생성 모델을 사용할 시성능은 안정적이고 꾸준히 증가한다.
- generative 사전 훈련이 다양한 task 관련 기능을 학습한다는 것을 의미
- LSTM은 zero-shot 성능에서 높은 분산을 갖는다.
- transformer 구조에서 inductive 편향이 전이학습에 도움이 되는 것을 의미
- CoLA(linguistic acceptability), SST-2(감성분석), RACE(Q&A), DPRD(winograd schemas)에서 모두 사전학습된 생성 모델이 LSTM보다 더욱 높은 성능 발휘
Ablation studies
- 3가지의 다른 ablation study(요소를 제거하여 연구)를 진행
- fine-tuning에서 auxiliary LM objective 없이 수행
- NLI와 GGP에 도움이 됨
- 전반적으로 커다란 dataset에서 이득을 보고 작은 것에서는 x
- transformer의 효과를 분석(2048 unit의 LSTM과 비교)
- LSTM을 사용하면 5.6의 평균 점수가 하락
- MRPC에서만 LSTM이 더 성능이 높았다.
- 사전 학습 없이 지도학습만 진행
- 모든 task에서 성능 감소 발생(14.8% 감소)
Conclusion
- 비지도 사전학습을 사용하는 것은 성능 향상에 매우 도움이 됐다.