1. NLP에서의 사전 훈련(Pre-training)

1) 사전 훈련된 워드 임베딩


임베딩을 사용하는 방법으로는 두 가지가 있습니다. 임베딩 층(Embedding layer)를 랜덤 초기화해서 처음부터 학습하는 방법과 방대한 데이터로 Word2Vec 등과 같은 임베딩 알고리즘으로 이미 학습된 임베딩 벡터들을 사용하여 학습시키는 방법입니다. 만약에 데이터가 적은 테스크에서 사전 훈련된 임베딩을 사용하면 성능을 높일 수 있습니다.

기존 임베딩 벡터는 아래 그림과 같이 하나의 단어가 각각 하나의 벡터값으로 맵핑되므로 문맥을 고려하지 못하는 문제점이 있었습니다. 또한, 다의어나 동음이의어를 구분하지는 못하는 문제점도 있었습니다. 예를 들어, 한국어에는 '사과🍎'라는 단어가 먹는 과일의 의미도 있고, 용서를 빈다는 의미로도 사용됩니다. 그러나 기존 임베딩 벡터는 '사과'라는 벡터에 벡터값 한개를 맵핑하므로 두 가지 의미를 구분할 수 없었습니다.

1.PNG

이러한 Embedding 기법의 단점을 해소 할 수 있는 방법 Text Embedding입니다. ELMo, BERT 등의 언어모델의 문장 기반 임베딩 기법이 이에 해당되며 먹는 과일의 사과🍎와 용서를 빈다는 의미인 사과를 각각 다른 벡터 표현값을 가지게하여 단어, 문장의 순서와 위치 정보, 주변 단어들을 학습시킬 수 있습니다.

2) 사전 훈련된 언어 모델


BERT.PNG

BERT는 트랜스포머의 encoder를 기반으로 수많은 어텐션 헤드를 가진 레이어로 사전학습, 전이학습을 통해 여러 자연어 처리에 사용되는 취지에서 처음에 Google AI Research 팀에서 개발하였습니다. 사전학습의 경우에는 레이블되지않은 대량의 데이터를 학습하는데 학습 시에 데이터의 일부를 마스킹하여 모델이 마스킹한 부분을 맞추게하는 Masked Language Modeling과 질의응답에 중요한 문장별 관계를 학습하는 Next Sentence Prediction이 적용되었고, Birectional Encoder를 이용하여 모든 토큰에 양방향으로 어텐션이 적용되도록 설계되어있습니다.

Fine-tuning은 사전학습된 모델을 다른 Task에 사용하기 위해 학습시키는 과정입니다. 사전학습된 데이터와 유사한 특징을 가진 데이터 양이 적어도 Fine-tuning 하여 모델을 도메인에 최적화 시키고 보다 좋은 성능을 얻을 수 있습니다. 예를들어, 데이터 증식, 하이퍼 파라미터 튜닝, 파인튜닝 네트워크 추가 같은 방법이 있습니다.

11.PNG