기존에 우리는 모델에 사전학습을 하지 않고 모델을 바로 Small labeled data 에 적용을 시켰다. 모델의 성능을 더 좋게하기 위해서 semi-supervised approach를 이용하자는 내용으로 Pre-ELMo(Train NLM on large unlabeled corpus for NER)이 등장했다. Pre-ELMo는 총 3가지 과정을 거친다.
step1. Pretrain language model
step2. Word embedding and Char-CNN
step3. Use both word embedding and LM for NER
ELMo : Embeddings from Language Models
ELMo는 모든 문장을 이용해 Contextualized word vector를 학습한다. 기존의 word embedding이 window를 이용해 주변 context만 이용한 것과 대조되는 방법이며, 단어 임베딩은 Char CNN만을 이용했다. ( Word2Vec X ) 학습한 LM들의 레이어들을 concat한 후(Forward, Backward) task에 맞게 linear combination해서 이용한다. 기존에 비슷한 방법론들이 LSTM의 top layer만 이용했던 것과 대조된다.
ULMFit and Onward : Unversal Language Model Fine-tuning for Text Classfication
ELMo를 기점으로 여러 모델들이 등장하기 시작했다. NLP에서 본격적으로 transfer learning을 도입했다. 기존에는 이미지에서 많이 사용되는 기법을 ULMFit이 가지고 온 것이다. transfer learning은 큰 데이터를 학습시키고, 그 후 작은 데이터에 fine-tuning을 하는 기법을 말한다. ULMFit은 1개의 GPU로 학습을 할 수 있는 정도의 사이즈를 가지고 pre-training을 했다는 것이 특징이다.
step1. 3-layer Bi-LSTM Language Model pre-training
step2. target task에 맞춰 LM fine-tuning
step3. target task의 classfier를 fine-tuning
'Deep Learning > CS224N' 카테고리의 다른 글
[CS224N] Subword Model - BPE, Wordpiece (0) | 2021.09.14 |
---|---|
[CS224N] ConvNets for NLP (0) | 2021.09.06 |
[CS224N] Machine Translation (MT), Attention (0) | 2021.09.03 |
[CS224N] Language Model (n-gram, NNLM, RNN) (0) | 2021.09.01 |
[CS224N] Parsing (0) | 2021.08.31 |